我從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