Spark Standalone集群无法读取本地文件系统中的文件

时间:2017-08-17 12:07:39

标签: apache-spark rdd

我有一个Spark独立集群,有2个工作节点和1个主节点。

使用spark-shell,我能够从本地文件系统上的文件中读取数据,然后进行一些转换并将最终的RDD保存在/ home / output中(比方说) RDD已成功保存,但仅在一个工作节点上,在主节点上仅存在_SUCCESS文件。

现在,如果我想从/ home / output读取这个输出数据,我没有得到任何数据,因为它在master上得到0数据然后我假设它没有检查其他工作节点。

如果有人能够了解为什么Spark没有从所有工作节点读取,或者Spark用于从工作节点读取数据的机制是什么,那将是很好的。

scala> sc.textFile("/home/output/")
res7: org.apache.spark.rdd.RDD[(String, String)] = /home/output/ MapPartitionsRDD[5] at wholeTextFiles at <console>:25

scala> res7.count
res8: Long = 0

2 个答案:

答案 0 :(得分:0)

SparkContext即sc默认指向HADOOP_CONF_DIR。这通常设置为hdfs://,这意味着当你说sc.textFile("/home/output/")时,它会搜索文件/目录为hdfs:///home/output,这在你的file://中HDFS上没有案例。 sc.textFile("file:///home/output")指向本地文件系统

尝试<div style="width: 55%; display: inline-block; vertical-align:top; background-color: #aaffaa"> <p style=" transform: rotate(-90deg); width: 130px; height: 50px; float: left; background: gray; color: #fff; text-align: center; padding-left: 10px; padding-top: 15px; margin: 40px 0 0 -40px">List1: {{ form.varList}} </p> <p> <span style="display: block;margin-left: 90px; "> {{ form.var1 }}</span> <span style="display: block;margin-left: 90px;"> {{ form.var2 }}</span> <span style="display: block;margin-left: 90px; "> {{ form.var3 }}</span> <span style="display: block;margin-left: 90px; "> {{ form.var4 }}</span> <span style="display: block;margin-left: 90px; "> {{ form.var5 }}</span> </p> </div> <div style=" width: 40%; display: inline-block; vertical-align:top; background-color: #00CC33; "> <p style=" transform: rotate(-90deg); width: 130px; height: 50px; float: left; background: gray; color: #fff; text-align: center; padding-left: 10px; padding-top: 15px; margin: 40px 0 0 -40px">Projects:{{.form.varprojects }} </p> <p> <span style="display: block;margin-left: 50px;"> {{ forme.var6 }} </span> <span style="display: block;margin-left: 50px;"> {{ form.var7}}</span> <span style="display: block;margin-left: 50px;"> {{ form.var8 }} </span> <span style="display: block;margin-left: 50px;"> {{ form.var9}}</span> <span style="display: block;margin-left: 50px;"> {{ form.var10 }} </span> </p> </div>,从而明确告诉Spark从本地文件系统中读取。

答案 1 :(得分:0)

您应该将文件放在具有相同路径和名称的所有工作机器上。