2017-02-21 84 views
1

我想從hadoop中讀取數據,在spark上處理數據,並在hadoop和彈性搜索上讀取數據。我有幾個工人節點來做到這一點。Spark集羣 - 在hadoop上讀寫

星火獨立羣集就足夠了嗎?或者我需要讓hadoop集羣使用紗線或mesos?

如果獨立集羣模式充足,應該在所有節點上設置jar文件,而不像yarn,mesos模式?

回答

2

首先,您不能在Hadoop中寫入數據或從Hadoop讀取數據。它是HDFS(Hadoop生態系統組件),負責數據的讀寫。 現在來到你的問題

  1. 是的,它可以讀取從HDFS數據和火花引擎進程,然後寫在HDFS輸出。

  2. YARN,mesos和spark standalone都是集羣管理器,您可以使用它們中的任何一個來管理集羣中的資源,它與hadoop無關。但是由於您想要從HDFS讀寫數據,因此您需要在集羣上安裝HDFS,因此最好在所有節點上安裝hadoop,以便在所有節點上安裝HDFS。現在您是否想要使用YARN,mesos或spark獨立式,都可以使用HDFS我自己使用spark獨立式進行集羣管理。

  3. 不清楚你正在與哪個jar文件通話,但我認爲它會是火花然後是你需要在每個節點上設置spark jar的路徑,這樣火花在路徑上不會有矛盾運行的。

+0

錯誤的問題,很好的答案。謝謝:)我決定在系統上使用紗線。如果是這樣,這是否能夠在單個hdfs上寫結果輸出數據,所以它可以用於另一個輸入數據? –

+0

是的,一旦寫入hdfs,它可以用作其他地圖縮減作業中的輸入。但通過單個hdfs,如果你的意思是單個輸出文件,那麼你需要採用單個reducer,因爲每個reducer創建它是單獨的輸出文件,儘管所有都保存在同一個目錄中。如果你的輸出文件太大,那麼它將被分割成多個輸出文件,但是你也可以通過覆蓋RecordWriter來控制它。 reduce任務的輸出通常通過TaskInputOutputContext.write(Object,Object)寫入RecordWriter。 –