上一篇寫了Hadoop分布式集群的安裝以及配置過程,這一篇來繼續spark的安裝與配置,具體步驟如下:
一、准備工作
spark官網下載地址:http://spark.apache.org/downloads.html,選擇spark版本和對應的hadoop版本,然后點擊下面對應的下載鏈接。
我這里由於安裝的hadoop版本是2.8.5,所以選擇了Pre-built for Apache Hadoop 2.7 and later,然后默認給我下載spark-2.3.2-bin-hadoop2.7.tgz版本.
配置環境變量並進行刷新,之后對slave1和slave2進行修改
#編輯profile文件 [root@spark-master ~]# vi /etc/profile #在文件的最后面添加下面的內容,SPARK-HOME以實際安裝為准 export SPARK_HOME=/opt/spark/spark-2.3.2-bin-hadoop2.7 export PATH=$PATH:$SPARK_HOME/bin #刷新配置使環境變量生效 [root@spark-master ~]# source /etc/profile
二、hadoop分布式安裝與配置
1.安裝與配置
把下載的安裝包拷貝到服務器上,並解壓到安裝目錄,通常應該對解壓出來的文件夾重命名的,便於后面配置,我這里就偷懶直接用解壓后的文件名。
然后切換到conf目錄下看到有一些模板文件,我們把其中帶spark-env.sh.template 、spark-defaults.conf.template和slaves.template的文件進行復制並重命名(主要是把后面的template后綴去掉),然后修改里面的內容。
#解壓安裝包到安裝目錄
[root@spark-master ~]# tar -xvf /opt/spark/spark-2.3.2-bin-hadoop2.7.tgz -C /opt/spark/ [root@spark-master ~]# cd /opt/spark/spark-2.3.2-bin-hadoop2.7/ [root@spark-master spark-2.3.2-bin-hadoop2.7]# cd conf
#拷貝slaves和spark-env.sh文件 [root@spark-master conf]# cp slaves.template slaves [root@spark-master conf]# cp spark-env.sh.template spark-env.sh [root@spark-master conf]# vim slaves
#修改slaves配置文件如下
spark-slave1
spark-slave2
[root@spark-master conf]# vim spark-env.sh
#修改spark-env.sh配置文件如下
export JAVA_HOME=/usr/java/jdk1.8.0_152
export SCALA_HOME=/opt/scala/scala-2.12.7
export HADOOP_HOME=/opt/hadoop/hadoop-2.8.5
export HADOOP_CONF_DIR=/opt/hadoop/hadoop-2.8.5/etc/hadoop
#定義管理端口
export SPARK_MASTER_WEBUI_PORT=8066
#定義master域名和端口
export SPARK_MASTER_HOST=spark-master
export SPARK_MASTER_PORT=7077
#定義master的地址slave節點使用
export SPARK_MASTER_IP=spark-master
#定義work節點的管理端口.work節點使用
export SPARK_WORKER_WEBUI_PORT=8077
#每個worker節點能夠最大分配給exectors的內存大小
export SPARK_WORKER_MEMORY=4g
#拷貝spark-defaults.conf配置文件
[root@spark-master conf]# cp spark-defaults.conf.template spark-defaults.conf
[root@spark-master conf]# vim spark-defaults.conf
#修改spark-default.conf配置文件如下
spark.eventLog.enabled=true
spark.eventLog.compress=true
#保存在本地
#spark.eventLog.dir=file://usr/local/hadoop-2.8.5/logs/userlogs
#spark.history.fs.logDirectory=file://usr/local/hadoop-2.8.5/logs/userlogs
#保存在hdfs上
spark.eventLog.dir=hdfs://spark-master:9000/tmp/logs/root/logs
spark.history.fs.logDirectory=hdfs://spark-master:9000/tmp/logs/root/logs
spark.yarn.historyServer.address=spark-master:18080
注意:在修改slaves文件的時候里面默認有個localhost項要去掉,不然啟動的時候會提示Permanently added 'localhost' (ECDSA) to the list of known hosts.
以上都修改完成后把安裝目錄分別拷貝到slave1和slave2服務器上。
[root@spark-master conf]# scp -r /opt/spark/spark-2.3.2-bin-hadoop2.7 root@spark-slave1:/opt/spark/ [root@spark-master conf]# scp -r /opt/spark/spark-2.3.2-bin-hadoop2.7 root@spark-slave2:/opt/spark/
三、啟動與測試
切換到spark安裝目錄下的sbin目錄,這里可以看到spark為我們貼心的准備了很多命令執行腳本,我們執行start-all.sh啟動集群。
[root@spark-master conf]# cd ../sbin/ [root@spark-master sbin]# ./start-all.sh starting org.apache.spark.deploy.master.Master, logging to /opt/spark/spark-2.3.2-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.master.Master-1-VM_10_45_centos.out spark-slave2: starting org.apache.spark.deploy.worker.Worker, logging to /opt/spark/spark-2.3.2-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-VM_21_17_centos.out spark-slave1: starting org.apache.spark.deploy.worker.Worker, logging to /opt/spark/spark-2.3.2-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-VM_20_8_centos.out
查看web管理界面,地址:http://10.10.10.88:8066/
以上就是spark完全分布式集群的安裝及配置過程,接下來開始繼續探索spark的神奇功能。