我从spark开始,从未使用过Hadoop。我有10个iMac,我已经用Hadoop 2.6安装了Spark 1.6.1。我下载了预编译版本,并将提取的内容复制到/usr/local/spark/
。我做了所有环境变量设置SCALA_HOME
,更改为PATH
和其他火花conf。我能够运行spark-shell
和pyspark
(带有anaconda的python)。Spark RDD问题
我已经设置了独立群集;所有节点都显示在我的Web用户界面上。现在,通过使用python shell(在本地群集上运行),我跟着this link's python interpreter word count example。
这是我用过
from operator import add
def tokenize(text):
return text.split()
text = sc.textFile("Testing/shakespeare.txt")
words = text.flatMap(tokenize)
wc = words.map(lambda x: (x,1))
counts = wc.reduceByKey(add)
counts.saveAsTextFile("wc")
这是给我的错误,该文件shakespeare.txt
上的从节点没有被发现的代码。在周围搜索我明白,如果我不使用HDFS,那么文件应该出现在同一路径上的每个从节点上。这里是堆栈跟踪 - github gist
现在,我有几个问题 -
是不是RDD应该被分配?也就是说,它应该在所有节点上分发(当操作在RDD上运行时)该文件,而不是要求我分发它。
我用Hadoop 2.6下载了spark,但是没有任何Hadoop命令可用于制作HDFS。我提取了在
spark/lib
中找到的Hadoop jar文件,希望找到一些可执行文件,但没有任何内容。那么,火花下载中提供了哪些Hadoop相关文件?最后,我如何在群集上运行分布式应用程序(spark-submit)或分布式分析(使用pyspark)?如果我必须创建一个HDFS,那么需要额外的步骤?另外,我怎样才能在这里创建一个HDFS?
你能告诉我们你的代码吗? –
我已经添加了代码和堆栈跟踪。 – TrigonaMinima
RDD不会为您分发文件,这就是为什么您通常会使用HDFS等分布式文件系统的原因。 – femibyte