搭建Spark需要先配置好scala環(huán)境。三種Spark環(huán)境搭建互不關(guān)聯(lián),都是從零開始搭建。
如果將文章中的配置文件修改內(nèi)容復制粘貼的話,所有配置文件添加的內(nèi)容后面的注釋記得刪除,可能會報錯。保險一點刪除最好。
Scala環(huán)境搭建
上傳安裝包解壓并重命名
rz上傳
如果沒有安裝rz可以使用命令安裝:
yum install -y lrzsz
這里我將scala解壓到/opt/module目錄下:
tar -zxvf /opt/tars/scala-2.12.0.tgz -C /opt/module
重命名:
mv scala-2.12.0 scala
2、vi /etc/profile
在最后添加:
export SCALA_HOME=/opt/module/scala
export PATH=$PATH:$SCALA_HOME/bin
刷新使文件生效:
source /etc/profile
搭建單機偽分布式環(huán)境(單機)
spark單機偽分布是在一臺機器上既有Master,又有Worker進程。spark單機偽分布式環(huán)境可以在hadoop偽分布式的基礎(chǔ)上進行搭建
上傳安裝包解壓并重命名
rz上傳
解壓:
tar -zxvf /opt/tars/spark-3.1.1-bin-hadoop3.2.tgz -C /opt/module
重命名:
mv spark-3.1.1-bin-hadoop3.2 spark
進入spark/conf,將spark-env.sh.template 重命名為spark-env.sh
cd /opt/module/spark/conf
mv spark-env.sh.template spark-env.sh
打開spark-env.sh:
vi spark-env.sh
在末尾添加:
export JAVA_HOME=/opt/module/jdk # java的安裝路徑
export HADOOP_CONF_DIR=/opt/module/hadoop/etc/hadoop # hadoop的安裝路徑
export HADOOP_HOME=/opt/module/hadoop # hadoop配置文件的路徑
export SPARK_MASTER_IP=master # spark主節(jié)點的ip或機器名
export SPARK_LOCAL_IP=master # spark本地的ip或機器名
4、vi /etc/profile
export SPARK_HOME=/opt/module/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
刷新:
source /etc/profile
5、切換到/sbin目錄下,啟動集群:
cd /opt/module/spark/sbin
./start-all.sh
6、通過jps查看進程,既有Master進程又有Worker進程

搭建完全分布式環(huán)境
搭建Spark完全分布式環(huán)境的前提是已經(jīng)搭建好了hadoop完全分布式,如果沒有搭建hadoop完全分布式且不會搭建,可以前往博主主頁尋找hadoop完全分布式搭建的文章進行搭建。
博主的三臺機器名:主節(jié)點:master,從節(jié)點:slave1,slave2
1、上傳安裝包解壓并重命名(前面已經(jīng)講解過,就不多說了)
2、進入spark/conf,將spark-env.sh.template 重命名 spark-env.sh
cd /opt/module/spark/conf
mv spark-env.sh.template spark-env.sh
3、vi spark-env.sh,在末尾添加:
export JAVA_HOME=/opt/module/jdk # java的安裝路徑
export HADOOP_CONF_DIR=/opt/module/hadoop/etc/hadoop # hadoop配置文件的路徑
export SPARK_MASTER_IP=master # spark主節(jié)點的ip或機器名
export SPARK_MASTER_PORT=7077 # spark主節(jié)點的端口號
export SPARK_WORKER_MEMORY=512m # Worker節(jié)點能給予Executors的內(nèi)存數(shù)
export SPARK_WORKER_CORES=1 # 每臺節(jié)點機器使用核數(shù)
export SPARK_EXECUTOR_MEMORY=512m # 每個Executors的內(nèi)存
export SPARK_EXCUTOR_CORES=1 # Executors的核數(shù)
export SPARK_WORKER_INSTANCES=1 # 每個節(jié)點的Worker進程數(shù)
4、spark2.x是配置slaves文件,將slaves.template重命名為slaves
mv slaves.template slaves
添加三個節(jié)點的機器名(如果只要兩個work的話可以不寫master):
vi slaves
master
slave1
slave2
spark3.x是配置works文件:
mv works.template works
vi works
master
slave1
slave2
5、配置spark-default.conf文件,將spark-defaults.conf.template重命名為spark-default.conf:
mv spark-defaults.conf.template spark-default.conf
修改配置文件:
vi /opt/module/spark/conf/spark-default.conf
spark.master spark://master:7077 <!--spark主節(jié)點所在機器及端口,默認寫法是spark://-->
spark.eventLog.enabled true <!--是否打開任務(wù)日志功能,默認為false,即打不開-->
spark.eventLog.dir hdfs://master:8020/spark-logs <!--任務(wù)日志默認存放位置,配置一個HDFS路徑即可-->
spark.history.fs.logDirectory hdfs://master:8020/spark-logs <!--存放歷史應(yīng)用日志文件的目錄-->
注意:8020是HDFS的連接端口,需要填自己的,可以去hadoop的webui查看,hadoop2.x端口是50070,hadoop3.x端口是9870
6、分發(fā):
scp -r /opt/module/spark slave1:/opt/module
scp -r /opt/module/spark slave2:/opt/module
7、創(chuàng)建spark-logs目錄
hdfs dfs -mkdir /spark-logs
8、vi /etc/profile
export SPARK_HOME=/opt/module/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
刷新:
source /etc/profile
9、分發(fā):
scp -r /etc/profile slave1:/etc
scp -r /etc/profile slave2:/etc
刷新使文件生效:
source /etc/profile
進入Spark的/sbin目錄下,啟動Spark獨立集群
cd /opt/module/spark/sbin
sbin/start-all.sh
啟動歷史服務(wù)器(可以不啟動,不啟動則沒有HistoryServer進程)
sbin/start-history-server.sh
通過jps查看進程:
master節(jié)點:

slave1/slave2節(jié)點:


完成以上步驟,Spark環(huán)境則搭建完成。
可以通過http://master:8080訪問主節(jié)點,可以看到webui的監(jiān)控畫面
http://master:18080可以看到歷史任務(wù)
啟動Spark交互頁面:
bin/spark-shell
啟動YARN客戶端模式:bin/spark-shell --master yarn-client
啟動YARN集群模式:bin/spark-shell --master yarn-cluster
Spark on Yarn模式
1、解壓并重命名:
tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module
cd /opt/module
mv spark-3.0.0-bin-hadoop3.2 spark-yarn
2、修改hadoop配置文件yarn-site.xml并分發(fā)
vi /opt/module/hadoop/etc/hadoop/yarn-site.xml
<!--是否啟動一個線程檢查每個任務(wù)正使用的物理內(nèi)存量,
如果任務(wù)超出分配值,則直接將其殺掉,默認是 true -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!--是否啟動一個線程檢查每個任務(wù)正使用的虛擬內(nèi)存量,
如果任務(wù)超出分配值,則直接將其殺掉,默認是 true -->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
分發(fā):
scp -r /opt/module/hadoop/etc/hadoop/yarn-site.xml slave1:/opt/module/hadoop/etc/hadoop/
scp -r /opt/module/hadoop/etc/hadoop/yarn-site.xml slave2:/opt/module/hadoop/etc/hadoop/
3、修改spark-yarn/conf/spark-env.sh配置文件:
vi /opt/module/spark-yarn/conf/spark-env.sh
export JAVA_HOME=/opt/module/jdk
YARN_CONF_DIR=/opt/module/hadoop/etc/hadoop
4、vi /etc/profile
export SPARK_HOME=/opt/module/spark-yarn
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
刷新:
source /etc/profile
5、分發(fā):
scp -r /etc/profile slave1:/etc
scp -r /etc/profile slave2:/etc
刷新使文件生效:
source /etc/profile
完成以上步驟,Spark-on-yarn便搭建完成了
時間同步
在跑任務(wù)時可能會報錯:
Note: System times on machines may be out of sync. Check system time and time zones.
這個是因為三臺機子時間不同步的原因
安裝NTP服務(wù)(三個機子都要):
yum install ntp
手動同步時間(三個機子都要):文章來源:http://www.zghlxwxcb.cn/news/detail-739414.html
ntpdate -u ntp1.aliyun.com文章來源地址http://www.zghlxwxcb.cn/news/detail-739414.html
到了這里,關(guān)于Spark單機偽分布式環(huán)境搭建、完全分布式環(huán)境搭建、Spark-on-yarn模式搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!