大家好,我是不溫卜火,是一名計算機學院大數據專業大二的學生,暱稱來源於成語—
不溫不火
,本意是希望自己性情溫和
。作爲一名互聯網行業的小白,博主寫博客一方面是爲了記錄自己的學習過程,另一方面是總結自己所犯的錯誤希望能夠幫助到很多和自己一樣處於起步階段的萌新。但由於水平有限,博客中難免會有一些錯誤出現,有紕漏之處懇請各位大佬不吝賜教!暫時只有csdn這一個平臺,博客主頁:https://buwenbuhuo.blog.csdn.net/
此篇爲大家帶來的是Spark環境搭建—standalone(1) 集羣的搭建。
構建一個由 Master + Slave 構成的 Spark 集羣,Spark 運行在集羣中。
這個要和 Hadoop 中的 Standalone 區別開來. 這裏的 Standalone 是指只用 Spark 來搭建一個集羣, 不需要藉助其他的框架.是相對於 Yarn 和 Mesos 來說的.
一. 集羣角色的簡單介紹
Spark是基於內存計算的大數據並行計算框架,實際中運行計算任務肯定是使用集羣模式,那麼我們先來學習Spark自帶的standalone集羣模式瞭解一下它的架構及運行機制。
- Standalone集羣使用了分佈式計算中的master-slave模型
- master是集羣中含有master進程的節點
- slave是集羣中的worker節點含有Executor進程
二. 集羣規劃
假設集羣中有三臺節點,hadoop002,hadoop003,hadoop004
hadoop002 | master |
hadoop003 | slave/worker |
hadoop004 | slave/worker |
三. 修改配置
- 1. 複製 spark, 並命名爲spark-standalone
[bigdata@hadoop002 module]$ cp -r spark-2.1.1-bin-hadoop2.7 spark
- 2. 進入配置文件目錄conf, 配置spark-evn.sh
[bigdata@hadoop002 spark-standalone]$ cd conf/
[bigdata@hadoop002 conf]$ cp spark-env.sh.template spark-env.sh
[bigdata@hadoop002 conf]$ vim spark-env.sh
#指定默認master的ip或主機名
export SPARK_MASTER_HOST=hadoop002
#指定maaster提交任務的默認端口爲7077
export SPARK_MASTER_PORT=7077
- 3. 修改 slaves 文件, 添加 worker 節點
[bigdata@hadoop002 conf]$ cp slaves.template slaves
[bigdata@hadoop002 conf]$ vim slaves
# 在slaves文件中配置如下內容:
hadoop002
hadoop003
hadoop004
- 4. 在
sbin/spark-config.sh
中添加入JAVA_HOME
變量
export JAVA_HOME=/opt/module/jdk1.8.0_144
此處如果不添加會出現如下錯誤:
- 5. 分發
spark
通過scp 命令將配置文件分發到其他機器上
scp -r /opt/module/spark hadoop003:/opt/module/
scp -r /opt/module/spark hadoop004:/opt/module/
- 6. 啓動 Spark 集羣
[bigdata@hadoop002 spark]$ sbin/start-all.sh
- 7. 在Web端查看Spark集羣情況
地址
: http://hadoop002:8080
- 8. 測試運行
[bigdata@hadoop002 spark]$ bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop002:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
./examples/jars/spark-examples_2.11-2.1.1.jar \
100
完成上述的操作 standalone集羣模式就算是大概完成了。
四. 修改事項(修改記得所有的都要哦)
- 1. 如果配置的有HADOOP_HOME的話
[bigdata@hadoop002 spark]$ sudo vim /etc/profile
配置spark環境變量(建議不添加,避免和Hadoop的命令衝突)
export SPARK_HOME=/opt/module/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
[bigdata@hadoop002 spark]$ source /etc/profile
解決方案
:
- 1.把其中一個框架的sbin從環境變量中去掉
- 2.改名 hadoop/sbin/start-all.sh 改爲: start-all-hadoop.sh
// 通過scp 命令將配置文件分發到其他機器上
scp /etc/profile root@hadoop003:/etc
scp /etc/profile root@hadoop004:/etc
source /etc/profile
五. 集羣的啓動和停止
- 1. 集羣的啓動和停止
在主節點上啓動Spark集羣
/export/servers/spark/sbin/start-all.sh
在主節點上停止spark集羣
/export/servers/spark/sbin/stop-all.sh
- 2. 單獨啓動和停止
在 master 安裝節點上啓動和停止 master:
start-master.sh
stop-master.sh
在 Master 所在節點上啓動和停止worker(work指的是slaves 配置文件中的主機名)
start-slaves.sh
stop-slaves.sh
本次的分享就到這裏了,
好書不厭讀百回,熟讀課思子自知。而我想要成爲全場最靚的仔,就必須堅持通過學習來獲取更多知識,用知識改變命運,用博客見證成長,用行動證明我在努力。
如果我的博客對你有幫助、如果你喜歡我的博客內容,請“點贊” “評論”“收藏”
一鍵三連哦!聽說點讚的人運氣不會太差,每一天都會元氣滿滿呦!如果實在要白嫖的話,那祝你開心每一天,歡迎常來我博客看看。
碼字不易,大家的支持就是我堅持下去的動力。點贊後不要忘了關注
我哦!