我有一个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
答案 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)
您应该将文件放在具有相同路径和名称的所有工作机器上。