2016-03-08 74 views
0

我第一次使用spark。我已經在具有10個節點的羣集上安裝了Hadoop 2.7。在我的主節點,以下是流程運行:如何在10個節點集羣上運行Spark SqlSql數據庫

[email protected]:~$ jps 
20102 ResourceManager 
19736 DataNode 
20264 NodeManager 
24762 Master 
19551 NameNode 
24911 Worker 
25423 Jps 

現在,我想寫星火SQL以1 GB的文件,這是在HDFS已經存在做了一定的計算。

如果我進入火花貝殼我的主節點上: spark-shell

,並編寫以下查詢,將它只是在我的主機上運行,​​還是會使用所有10個節點的工人呢?

scala> sqlContext.sql("CREATE TABLE sample_07 (code string,description string,total_emp int,salary int) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TextFile") 

如果不是,我需要做些什麼才能使我的Spark Sql使用完整羣集?

+0

取決於您的Spark環境是如何設置的。 – morfious902002

+0

Hi @ morfious902002: 我使用下面的鏈接進行設置。 https://www.quora.com/How-do-I-install-Apache-Spark-on-Yarn-Cluster –

回答

1

您需要集羣管理器來管理主人和工人。您可以選擇單獨的火花或紗線或mesos集羣管理器。我會建議引發獨立的集羣管理器而不是紗線來啓動這些事情。

只需啓動它, 在所有節點上下載spark分發(爲hadoop預編譯),並在spark-env.sh中設置Hadoop類路徑和其他重要配置。

1)使用/sbin/start-master.sh

它將創建與端口(默認爲8080)的網絡界面啓動主。打開火花大師網頁並收集頁面中提到的火花大師uri。 2)去所有節點,包括機器啓動主機,並運行從機。

./sbin/start-slave.sh。

再次檢查主網頁。它應該列出頁面上的所有工作人員。如果它沒有列出,那麼你需要從日誌中找出錯誤。 3)請檢查機器所具有的核心&,並在每個工作人員的主網頁上顯示相同的內存。如果它們不匹配,您可以使用命令分配它們。

轉到火花1.5.2或更高版本 請遵循細節here

正如它只是一個起點,讓我知道如果u面對任何錯誤,我可以幫你出來。

+0

@Thanks作者Srini, 我已經安裝了所有節點上的Spark,開始了集羣,現在在網頁上我可以看到我的主人和所有工人都活着。 我有一套Spark Sql查詢需要在HDFS上存在的文件上並行執行,並且需要將組合輸出寫入文件中。你能告訴我該怎麼辦? –

+0

嗨,mayank。請接受答案,如果它解決了你的問題,這樣它就不會存在未解決的問題。所以,要完成SQL語句有2種方法1)打開spark-sql並創建外部表並運行所有查詢。在啓動spark-sql時,請確保給出了 - 您可以在主網頁中看到的。並根據需要執行 - 執行程序 - 內存和內核。這將做2)創建火花Scala/Java程序。讀取程序中的文件並創建數據框並執行所需的查詢。這需要從你身邊進行更多的調查,你可以檢查火花SQL網頁的最好 – Srini

相關問題