我们可以访问 Apache-Hadoop 中的 HDFS 文件系统和 YARN 调度程序。但 Spark 的编码水平更高。是否也可以在 Apache-Spark 中访问 HDFS 和 YARN?
谢谢
我们可以访问 Apache-Hadoop 中的 HDFS 文件系统和 YARN 调度程序。但 Spark 的编码水平更高。是否也可以在 Apache-Spark 中访问 HDFS 和 YARN?
谢谢
高密度文件系统
Spark 是作为 MapReduce 的替代品而构建的,因此支持其大部分功能。特别是,它意味着“Spark 可以从 Hadoop 支持的任何存储源创建分布式数据集,包括您的本地文件系统、HDFS、Cassandra、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 种集群管理器/模式:
Standalone 模式使用 Spark 自己的主服务器并且仅适用于 Spark,而 YARN 和 Mesos 模式旨在在多个框架(例如 Spark、MapReduce、Impala 等)之间共享同一组系统资源。YARN 和 Mesos 的比较可以在这里找到,在 YARN 上的 Spark 的详细描述在这里。
而且,按照 Spark 的最佳传统,您只需更改主 URL即可在不同模式之间切换。
是的。
spark官方文档中有示例:https ://spark.apache.org/examples.html 只需将您的HDFS文件uri放在您的输入文件路径中,如下所示(scala语法)。
val file = spark.textFile("hdfs://train_data")