Spark On Yarn部署

本文使用的軟件環(huán)境同第一篇,另增加了hadoop的環(huán)境:

  1. Linux 4.4.0-62-generic #83-Ubuntu x86_64 GNU/Linux
  2. java version "1.8.0_101" Java(TM) SE Runtime Environment (build 1.8.0_101-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
  3. Spark 2.1.0 built for Hadoop 2.7.3
  4. Hadoop 2.7.3

另外扯一句題外話,由于hadoop體系的復(fù)雜,我會從最簡單的層級來配置,多余的配置項不會列出。
所有機器的jdk、spark、hadoop版本,目錄位置都相同。

1 hadoop配置

配置的基礎(chǔ)是集群主機到從機的無密碼ssh登錄,spark需要hdfs和yarn集群同時運行。在官方文檔上一句話提及了這一點:

These configs are used to write to HDFS and connect to the YARN ResourceManager.

這是一個坑,很多文章都沒有強調(diào)hdfs集群配置的重要性。

1.1 hadoop核心配置

這一步主要參考Hadoop集群配置官方文檔
進入<HADOOP_DIR>/etc/hadoop/目錄,為了讓hadoop系列服務(wù)能夠啟動,首先需要修改hadoop-env.sh文件,指定JDK的目錄所在。JAVA_HOME這個變量如果在.bashrcexport了,hadoop執(zhí)行腳本時還是不行的,所以要在hadoop自己的配置文件中指定。無論主從機都需要。
接著修改hadoop的一些核心配置,修改同目錄下的core-site.xml文件,指定hdfs的NameNode的位置:


這個配置也是主從機都需要的。

1.2 hdfs集群配置

接著配置hdfs集群,需要修改同目錄下的hdfs-site.xml文件,這個主從機有所不同,對于namenode,需要指定namenode存放文件的路徑:


對于datanode,需要指定datanode存放文件的路徑:

然后需要在各個機器上建立好指定的目錄。

修改同目錄下的slaves文件,將從機名稱一機一行寫入。
在主機<HADOOP_DIR>下執(zhí)行Name Node的初始化及集群的啟動腳本:

./bin/hdfs namenode -format
./sbin/start-dfs.sh

需要檢驗一下hdfs集群是否成功,這里再次說明,不要相信jps的輸出,即便jps的輸出完備,各種角色都列出了,也不一定說明集群能正常運行了,只有從web控制臺看到主從機的信息才算配置正常了。
hdfs的默認web端口在50070,用瀏覽器訪問Name Node的50070端口就可以看到結(jié)果:


Live Nodes可以點開看每個slave機器的信息。

1.3 yarn集群配置

修改同目錄下的yarn-site.xml文件,設(shè)定yarn.resourcemanager.hostname為Resource Manager主機名,主從機都需要:

在主機<HADOOP_DIR>下執(zhí)行Yarn的啟動腳本

./sbin/start-yarn.sh

yarn的web控制臺默認端口是8088,訪問Resouce Manager所在主機的8088端口就可以看到y(tǒng)arn的集群情況:


2 spark配置

修改<SPARK_DIR>/conf目錄下的spark-env.sh文件,將HADOOP_CONF_DIR變量指定到hadoop配置文件目錄并導(dǎo)出。


這個配置的修改是所有spark所在主機都要的。
由于之前已經(jīng)搭建過了獨立模式的集群,也為了控制臺執(zhí)行spark命令行時少輸入點參數(shù),還需要修改同目錄下的spark-defaults.conf文件,將spark.master指定為yarn,同時修改默認的部署方式,將spark.submit.deployMode指定為cluster。這個修改也要應(yīng)用到所有的spark中:

3 運行

在集群中任意機器上執(zhí)行以下測試看看結(jié)果:


在spark-submit運行過程中,yarn的web控制臺Applications界面會進行展示:

點擊Tracking UI欄中的鏈接,就可以看到熟悉的spark作業(yè)運行界面,這個界面只有spark作業(yè)運行期可以看到。

如果需要中止運行,需要在yarn的web控制臺Applications界面通過Application ID一列中的鏈接進入Application的詳情界面,在左上角有個Kill Application按鈕:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容