我们可以在Apache-Hadoop中访问HDFS文件系统和纱线调度程序。但是Spark具有更高的编码水平。是否也可以在Apache Spark中访问HDF和纱线?

谢谢

有帮助吗?

解决方案

是的。

Spark官方文件中有示例: https://spark.apache.org/examples.html只需将您的HDFS文件URI放入下面的输入文件路径(Scala语法)即可。

val file = spark.textFile("hdfs://train_data")

其他提示

HDFS

Spark是作为MapReduce的替代品构建的,因此支持其大部分功能。特别是,这意味着“ Spark可以从Hadoop支持的任何存储源创建分布式数据集,包括您的本地文件系统,HDFS,Cassandra,HBase,HBase,Amazon S3等。”1. 。对于大多数常见的数据源(例如HDFS或S3),Spark会自动识别模式,例如:

val sc = SparkContext(...)
val localRDD = sc.textFile("file://...")
val hdfsRDD  = sc.textFile("hdfs://...")
val s3RDD    = sc.textFile("s3://...")

对于更复杂的情况,您可能需要使用较低级别的功能 newAPIHadoopFile:

val hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], 
      classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable],
      classOf[org.apache.hadoop.hbase.client.Result])
val customRDD = sc.newAPIHadoopRDD(conf, classOf[MyCustomInputFormat], 
      classOf[MyCustomKeyClass],
      classOf[MyCustomValueClass]) 

但是一般规则是,如果某些数据源可用于MAPREDUCE,则可以轻松地在Spark中重复使用。

当前SPARK支持3个集群经理 /模式:

  • 独立
  • Mesos

独立模式使用Spark自己的主服务器,仅适用于SPARK,而YARN和MESOS模式旨在在几个框架之间共享相同的系统资源集(例如Spark,MapReduce,Impala等)。可能会发现纱线和介体的比较 这里, ,以及纱线上火花的详细描述 这里.

而且,在火花的最佳传统中,您可以简单地通过更改来切换不同的模式 大师URL.

许可以下: CC-BY-SA归因
scroll top