Spark從菜鳥到入門
- Spark初體驗——wordcount詞頻統計
- Spark基礎知識學習
- Spark單機版環境搭建
- Spark源碼學習
- Spark分布式環境搭建
- Spark基準測試平台BigDataBench使用教程
Spark分布式環境搭建
1. 叢集機器準備
(1) 在VMware 中安裝三台虛拟機,一台Ubuntu虛拟機作Master,一台Ubuntu虛拟機作slave01,一台Ubuntu虛拟機作slave02。
(2) Vmware網絡設定成NAT連接配接,即共享主機的IP位址,位于同一區域網路下。
(3) 一般來說會自動配置設定三個連續的IP位址,如果需要配置靜态IP,見此教程
2. 配置 ssh 無密碼通路叢集機器
(1) ifconfig 指令檢視目前虛拟機ip,記錄下三台機器的ip
(2)修改三台虛拟機的主機名 sudo vim /etc/hostname
分别改成master、slave01、slave02
(3)分别更改三台虛拟機下的配置檔案 /etc/hosts,統一配置如下:
(4) 三台主機電腦分别運作如下指令,測試能否連接配接到本地localhost
ssh localhost
在保證了三台主機電腦都能連接配接到本地localhost後,還需要讓master主機免密碼登入slave01和slave02主機。在master執行如下指令,将master的id_rsa.pub傳送給兩台slave主機。
scp ~/.ssh/id_rsa.pub [email protected]:/home/hadoop/
scp ~/.ssh/id_rsa.pub [email protected]:/home/hadoop/
Shell 指令
在slave01,slave02主機上分别運作ls指令
ls ~
Shell 指令
可以看到slave01、slave02主機分别接收到id_rsa.pub檔案
接着在slave01、slave02主機上将master的公鑰加入各自的節點上,在slave01和slave02執行如下指令:
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
rm ~/id_rsa.pub
如果master主機和slave01、slave02主機的使用者名一樣,那麼在master主機上直接執行如下測試指令,即可讓master主機免密碼登入slave01、slave02主機。
ssh slave01
即可免密登陸其他節點
3. hadoop叢集配置
(1)修改master主機修改Hadoop如下配置檔案,這些配置檔案都位于/usr/local/hadoop/etc/hadoop目錄下。
修改slaves:
這裡把DataNode的主機名寫入該檔案,每行一個。這裡讓master節點主機僅作為NameNode使用。
slave01
slave02
修改core-site.xml
修改hdfs-site.xml:
修改mapred-site.xml
修改yarn-site.xml
(2) 将 master 上的 /usr/local/Hadoop 檔案夾複制到各個節點上。
在 master 節點主機上執行:
cd /usr/local/
tar -zcf ~/hadoop.master.tar.gz ./hadoop
cd ~
scp ./hadoop.master.tar.gz slave01:/home/hadoop
scp ./hadoop.master.tar.gz slave02:/home/hadoop
在slave01,slave02節點上執行:
sudo rm -rf /usr/local/hadoop/
sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/hadoop
(3) 啟動hadoop叢集
在master主機上執行如下指令:
cd /usr/local/hadoop
bin/hdfs namenode -format
sbin/start-all.sh
運作後,在master,slave01,slave02運作jps指令,檢視:
說明Hadoop叢集成功啟動。
4.安裝Spark以及環境配置
(1)下載下傳安裝Spark
在Master節點機器上,通路Spark官方下載下傳位址,下載下傳所需版本。
sudo tar -zxf ~/下載下傳/spark-2.1.0-bin-without-hadoop.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-2.1.0-bin-without-hadoop/ ./spark
sudo chown -R hadoop ./spark
(2)配置環境變量
在Mster節點主機的終端中執行如下指令:
vim ~/.bashrc
在.bashrc添加如下配置:
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
(3)Spark配置
在Master節點主機上進行如下操作:
-
配置slaves檔案
将 slaves.template 拷貝到 slaves
cd /usr/local/spark/
cp ./conf/slaves.template ./conf/slaves
- slaves檔案設定Worker節點。編輯slaves内容,把預設内容localhost替換成如下内容:
slave01
slave02
-
配置spark-env.sh檔案
将 spark-env.sh.template 拷貝到 spark-env.sh
cp ./conf/spark-env.sh.template ./conf/spark-env.sh
- 編輯spark-env.sh,添加如下内容:
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SPARK_MASTER_IP=192.168.1.133
SPARK_MASTER_IP 指定 Spark 叢集 Master 節點的 IP 位址;
-
配置好後,将Master主機上的/usr/local/spark檔案夾複制到各個節點上。
在Master主機上執行如下指令:
cd /usr/local/
tar -zcf ~/spark.master.tar.gz ./spark
cd ~
scp ./spark.master.tar.gz slave01:/home/hadoop
scp ./spark.master.tar.gz slave02:/home/hadoop
- 在slave01,slave02節點上分别執行下面同樣的操作:
sudo rm -rf /usr/local/spark/
sudo tar -zxf ~/spark.master.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/spark
5 啟動Spark叢集
(1)先啟動Hadoop叢集:
cd /usr/local/hadoop/
sbin/start-all.sh
(2)啟動Master節點
在Master節點主機上運作如下指令:
cd /usr/local/spark/
sbin/start-master.sh
(3)啟動所有Slave節點
在Master節點主機上運作如下指令:
sbin/start-slaves.sh
運作jps指令
至此,spark分布式叢集搭建完畢。
如果您覺得有幫助,請點贊哦!
參考連結:林子雨編著-大資料軟體安裝和程式設計實踐指南