本文使用的軟件環(huán)境同第一篇鲫尊,另增加了hadoop的環(huán)境:
- Linux 4.4.0-62-generic #83-Ubuntu x86_64 GNU/Linux
- 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)
- Spark 2.1.0 built for Hadoop 2.7.3
- Hadoop 2.7.3
另外扯一句題外話昆稿,由于hadoop體系的復雜绊率,我會從最簡單的層級來配置缀台,多余的配置項不會列出。
所有機器的jdk魔吐、spark祷愉、hadoop版本,目錄位置都相同湖雹。
1 hadoop配置
配置的基礎是集群主機到從機的無密碼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系列服務能夠啟動溪胶,首先需要修改hadoop-env.sh
文件,指定JDK的目錄所在稳诚。JAVA_HOME
這個變量如果在.bashrc
中export
了哗脖,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
文件驶兜,設定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配置文件目錄并導出。
這個配置的修改是所有spark所在主機都要的驰后。
由于之前已經(jīng)搭建過了獨立模式的集群肆资,也為了控制臺執(zhí)行spark命令行時少輸入點參數(shù),還需要修改同目錄下的
spark-defaults.conf
文件灶芝,將spark.master
指定為yarn
郑原,同時修改默認的部署方式,將spark.submit.deployMode
指定為cluster
夜涕。這個修改也要應用到所有的spark中:3 運行
在集群中任意機器上執(zhí)行以下測試看看結(jié)果:
在spark-submit運行過程中犯犁,yarn的web控制臺
Applications
界面會進行展示:點擊
Tracking UI
欄中的鏈接,就可以看到熟悉的spark作業(yè)運行界面女器,這個界面只有spark作業(yè)運行期可以看到酸役。如果需要中止運行,需要在yarn的web控制臺
Applications
界面通過Application ID一列中的鏈接進入Application的詳情界面驾胆,在左上角有個Kill Application
按鈕: