Hadoop+spark集群搭建
說明:
本文檔主要講述hadoop+spark的集群搭建,linux環境是centos,本文檔集群搭建使用兩個節點作為集群環境:一個作為Master節點,另一個作為Slave節點,由於spark依賴scala,所以需要安裝scala
搭建步驟:
一:安裝jdk
二:安裝hadoop集群(http://www.powerxing.com/install-hadoop-cluster/也可參考這個大家hadopp集群)
1:選定一台機器作為 Master
2:在 Master 節點上配置 hadoop 用戶、安裝 SSH server、安裝 Java 環境(java環境安裝參考一:安裝jdk)
3:在 Master 節點上安裝 Hadoop,並完成配置
4:在其他 Slave 節點上配置 hadoop 用戶、安裝 SSH server、安裝 Java 環境(java環境安裝參考一:安裝jdk)
5:將 Master 節點上的 /usr/local/hadoop 目錄復制到其他 Slave 節點上
6:在 Master 節點上開啟 Hadoop
7:執行分布式實例
三:安裝Scala
四:安裝Spark
一:安裝jdk(每個節點都需要安裝)
Java 環境可選擇 Oracle 的 JDK,或是 OpenJDK,現在一般 Linux 系統默認安裝的基本是 OpenJDK,如centos6.4就默認安裝了OpenJDK1.7.
按 http://wiki.apache.org/hadoop/HadoopJavaVersions 中說的,Hadoop 在 OpenJDK 1.7 下運行是沒問題的。需要注意的是,CentOS 6.4 中默認安裝的只是 Java JRE,而不是 JDK,為了開發方便,我們還是需要通過 yum 進行安裝 JDK,安裝過程中會讓輸入 [y/N],輸入 y 即可:
sudo yum install java-1.7.0-openjdk java-1.7.0-openjdk-devel
通過上述命令安裝 OpenJDK,默認安裝位置為 /usr/lib/jvm/java-1.7.0-openjdk(該路徑可以通過執行 rpm -ql java-1.7.0-openjdk-devel | grep '/bin/javac' 命令確定,執行后會輸出一個路徑,除去路徑末尾的 "/bin/javac",剩下的就是正確的路徑了)。OpenJDK 安裝后就可以直接使用 java、javac 等命令了。
接着需要配置一下 JAVA_HOME 環境變量,為方便,我們在 ~/.bashrc 中進行設置
vim ~/.bashrc
在文件最后面添加如下單獨一行(指向 JDK 的安裝位置),並保存:
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk
使環境變量生效
source ~/.bashrc
檢驗是否設置正確
echo $JAVA_HOME # 檢驗變量值
java -version
$JAVA_HOME/bin/java -version # 與直接執行 java -version 一樣
如果設置正確的話,$JAVA_HOME/bin/java -version 會輸出 java 的版本信息,且和 java -version 的輸出結果一樣,如下圖所示:
二:安裝hadoop集群
1:創建hadoop用戶(每個節點都需要安裝)
useradd -m hadoop -s /bin/bash #創建hadoop用戶,並使用/bin/bash 作為shell
passwd hadoop #修改hadoop密碼
按提示輸入兩次密碼,可簡單的設為 "123456"(密碼隨意指定,若提示"無效的密碼,過於簡單"則再次輸入確認就行)
可為 hadoop 用戶增加管理員權限,方便部署,避免一些對新手來說比較棘手的權限問題,執行:
visudo
如下圖,找到 root ALL=(ALL) ALL 這行(應該在第98行,可以先按一下鍵盤上的 ESC 鍵,然后輸入 :98 (按一下冒號,接着輸入98,再按回車鍵),可以直接跳到第98行 ),然后在這行下面增加一行內容:hadoop ALL=(ALL) ALL (當中的間隔為tab),如下圖所示:
2:安裝ssh、配置ssh無密碼登陸(每個節點都需要安裝)
集群、單節點模式都需要用到 SSH 登陸(類似於遠程登陸,你可以登錄某台 Linux 主機,並且在上面運行命令),一般情況下,CentOS 默認已安裝了 SSH client、SSH server,打開終端執行如下命令進行檢驗:
返回結果若如上圖,表示包含了SSH client 跟 SSH server,則不需要再安裝。
若需要安裝,則可以通過 yum 進行安裝(安裝過程中會讓你輸入 [y/N],輸入 y 即可):
- sudo yum install openssh-clients
- sudo yum install openssh-server
接着執行如下命令測試一下 SSH 是否可用:
- ssh localhost
此時會有如下提示(SSH首次登陸提示),輸入 yes 。然后按提示輸入密碼 123456,這樣就登陸到本機了
但這樣登陸是需要每次輸入密碼的,我們需要配置成SSH無密碼登陸比較方便。
首先輸入 exit 退出剛才的 ssh,就回到了我們原先的終端窗口,然后利用 ssh-keygen 生成密鑰,並將密鑰加入到授權中:
- exit # 退出剛才的 ssh localhost
- cd ~/.ssh/ # 若沒有該目錄,請先執行一次ssh localhost
- ssh-keygen -t rsa # 生成密鑰對,會有提示,都按回車就可以
- cat id_rsa.pub >> authorized_keys # 加入授權
- chmod 600 ./authorized_keys # 修改文件權限
http://www.powerxing.com/install-hadoop-in-centos/javascript:void(0);http://www.powerxing.com/install-hadoop-in-centos/javascript:void(0);注:
含義在 Linux 系統中, 代表的是用戶的主文件夾,即 "/home/用戶名" 這個目錄,如你的用戶名為 hadoop,則 ~ 就代表 "/home/hadoop/"。 此外,命令中的 # 后面的文字是注釋。
此時再用 ssh localhost 命令,無需輸入密碼就可以直接登陸了,如下圖所示。
3:安裝java環境(參考一:安裝jdk,每個節點都需要安裝)
4:安裝hadoop2(Master節點安裝)
Hadoop 2 可以通過 http://mirror.bit.edu.cn/apache/hadoop/common/ 或者http://mirrors.cnnic.cn/apache/hadoop/common/ 下載,本教程選擇的是 2.7.2 版本,下載時請下載 hadoop-2.x.y.tar.gz這個格式的文件,這是編譯好的,另一個包含 src 的則是 Hadoop 源代碼,需要進行編譯才可使用。
下載時強烈建議也下載 hadoop-2.x.y.tar.gz.mds 這個文件,該文件包含了檢驗值可用於檢查 hadoop-2.x.y.tar.gz 的完整性,否則若文件發生了損壞或下載不完整,Hadoop 將無法正常運行。
進入opt目錄執行下面命令,下載hadoop2
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz.mds
判斷文件的完整性:
- Cat /opt/hadoop-2.7.2.tar.gz.mds # 列出md5檢驗值
- # head -n 6 ~/下載/hadoop-2.7.1.tar.gz.mds # centos2.7.1版本格式變了,可以用這種方式輸出
- md5sum hadoop-2.7.2.tar.gz | tr "a-z" "A-Z" # 計算md5值,並轉化為大寫,方便比較
若文件不完整則這兩個值一般差別很大,可以簡單對比下前幾個字符跟后幾個字符是否相等即可,如下圖所示,如果兩個值不一樣,請務必重新下載
我們選擇將 Hadoop 安裝至 /usr/local/ 中:
- sudo tar -zxf /opt/hadoop-2.7.2.tar.gz -C /usr/local # 解壓到/usr/local中
- cd /usr/local/
- sudo mv ./hadoop-2.7.2/ ./hadoop # 將文件夾名改為hadoop
- sudo chown -R hadoop:hadoop ./hadoop # 修改文件權限
注:
相對路徑與絕對路徑的區別
請務必注意命令中的相對路徑與絕對路徑,本文后續出現的 ./bin/...,./etc/... 等包含 ./ 的路徑,均為相對路徑,以 /usr/local/hadoop 為當前目錄。例如在 /usr/local/hadoop 目錄中執行 ./bin/hadoop version 等同於執行 /usr/local/hadoop/bin/hadoop version。可以將相對路徑改成絕對路徑來執行,但如果你是在主文件夾 ~ 中執行./bin/hadoop version,執行的會是/home/hadoop/bin/hadoop version,就不是我們所想要的了。
到此單機式hadoop就配置完了,可以執行以下例子來感受一下hadoop的運行,Hadoop 附帶了豐富的例子(運行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar 可以看到所有例子),包括 wordcount、terasort、join、grep 等。
在此我們選擇運行 grep 例子,我們將 input 文件夾中的所有文件作為輸入,篩選當中符合正則表達式 dfs[a-z.]+ 的單詞並統計出現的次數,最后輸出結果到 output 文件夾中。
- cd /usr/local/hadoop
- mkdir ./input
- cp ./etc/hadoop/*.xml ./input # 將配置文件作為輸入文件
- ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
- cat ./output/* # 查看運行結果
若運行出錯,如出現如下圖提示:
運行Hadoop實例時可能會報錯
若出現提示 "WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable",該 WARN 提示可以忽略,不會影響 Hadoop 正常運行(可通過編譯 Hadoop 源碼解決,解決方法請自行搜索)。
若出現提示 "INFO metrics.MetricsUtil: Unable to obtain hostName java.net.UnknowHostException",這需要執行如下命令修改 hosts 文件,為你的主機名增加IP映射:
- sudo vim /etc/hosts
主機名在終端窗口標題里可以看到,或執行命令 hostname 查看,如下圖所示,在最后面增加一行 "127.0.0.1 dblab":
設置主機名的IP映射
保存文件后,重新運行 hadoop 實例,若執行成功的話會輸出很多作業的相關信息,最后的輸出信息如下圖所示。作業的結果會輸出在指定的 output 文件夾中,通過命令 cat ./output/* 查看結果,符合正則的單詞 dfsadmin 出現了1次:
注意,Hadoop 默認不會覆蓋結果文件,因此再次運行上面實例會提示出錯,需要先將 ./output 刪除。
- rm -r ./output
到此單機的hadoop已經配置完成,接下來配置集群
5:集群配置
Master 節點上完成准備工作后,關閉 Hadoop (/usr/local/hadoop/sbin/stop-dfs.sh),進行后續集群配置。
(1)修改各節點主機名
為了便於區分,可以修改各個節點的主機名(在終端標題、命令行中可以看到主機名,以便區分)。在 Ubuntu/CentOS 7 中,我們在 Master 節點上執行如下命令修改主機名(即改為 Master,注意是區分大小寫的):
- sudo vim /etc/hostname
或者用下面的命令修改主機名
如果是用 CentOS 6.x 系統,則是修改 /etc/sysconfig/network 文件
然后執行如下命令修改自己所用節點的IP映射:
- sudo vim /etc/hostshttp://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
例如本教程使用兩個節點的名稱與對應的 IP 關系如下:
192.168.1.121 Master
192.168.1.122 Slave1
我們在 /etc/hosts 中將該映射關系填寫上去即可,如下圖所示(一般該文件中只有一個 127.0.0.1,其對應名為 localhost,如果有多余的應刪除,特別是不能有 "127.0.0.1 Master" 這樣的記錄):
Hadoop中的hosts設置
CentOS 中的 /etc/hosts 配置則如下圖所示:
修改完成后需要重啟一下,重啟后在終端中才會看到機器名的變化。接下來的教程中請注意區分 Master 節點與 Slave 節點的操作。
注:
需要在所有節點上完成網絡配置
如上面講的是 Master 節點的配置,而在其他的 Slave 節點上,也要對 /etc/hostname(修改為 Slave1、Slave2 等) 和 /etc/hosts(跟 Master 的配置一樣)這兩個文件進行修改!
配置好后需要在各個節點上執行如下命令,測試是否相互 ping 得通,如果 ping 不通,后面就無法順利配置成功:
- ping Master -c 3 # 只ping 3次,否則要按 Ctrl+c 中斷
- ping Slave1 -c 3http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
例如我在 Master 節點上 ping Slave1,ping 通的話會顯示 time,顯示的結果如下圖所示:
繼續下一步配置前,請先完成所有節點的網絡配置,修改過主機名的話需重啟才能生效。
(2)ssh無密碼登陸節點
這個操作是要讓 Master 節點可以無密碼 SSH 登陸到各個 Slave 節點上。
首先實現各個slave節點自己的ssh無密碼登陸
然后生成 Master 節點的公匙,在 Master 節點的終端中執行(因為改過主機名,所以還需要刪掉原有的再重新生成一次):
- cd ~/.ssh # 如果沒有該目錄,先執行一次ssh localhost
- rm ./id_rsa* # 刪除之前生成的公匙(如果有)
- ssh-keygen -t rsa # 一直按回車就可以http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
讓 Master 節點需能無密碼 SSH 本機,在 Master 節點上執行:
- cat ./id_rsa.pub >> ./authorized_keyshttp://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
完成后可執行 ssh Master 驗證一下(可能需要輸入 yes,成功后執行 exit 返回原來的終端)。接着在 Master 節點將上公匙傳輸到 Slave1 節點:
- scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/
scp 是 secure copy 的簡寫,用於在 Linux 下進行遠程拷貝文件,類似於 cp 命令,不過 cp 只能在本機中拷貝。執行 scp 時會要求輸入 Slave1 上 hadoop 用戶的密碼(hadoop),輸入完成后會提示傳輸完畢,如下圖所示:
通過scp向遠程主機拷貝文件
接着在 Slave1 節點上,將 ssh 公匙加入授權:
- mkdir ~/.ssh # 如果不存在該文件夾需先創建,若已存在則忽略
- cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
- rm ~/id_rsa.pub # 用完就可以刪掉了
http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
如果有其他 Slave 節點,也要執行將 Master 公匙傳輸到 Slave 節點、在 Slave 節點上加入授權這兩步。
這樣,在 Master 節點上就可以無密碼 SSH 到各個 Slave 節點了,可在 Master 節點上執行如下命令進行檢驗,如下圖所示:
- ssh Slave1
http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
注:
如果在執行ssh無密碼登陸時,出現設置完還需要輸入密碼,修改authorized_keys權限 chown 600
(3)配置path環境
Vim ~/.bashrc
加入一行
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
如下圖所示:
保存后執行 source ~/.bashrc 使配置生效。
(4)配置集群/分布式環境
集群/分布式模式需要修改 /usr/local/hadoop/etc/hadoop 中的5個配置文件,更多設置項可點擊查看官方說明,這里僅設置了正常啟動所必須的設置項: slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 。
1): 文件 slaves,將作為 DataNode 的主機名寫入該文件,每行一個,默認為 localhost,所以在偽分布式配置時,節點即作為 NameNode 也作為 DataNode。分布式配置可以保留 localhost,也可以刪掉,讓 Master 節點僅作為 NameNode 使用。
本教程讓 Master 節點僅作為 NameNode 使用,因此將文件中原來的 localhost 刪除,只添加一行內容:Slave1。
2):文件 core-site.xml 改為下面的配置:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
- :文件 hdfs-site.xml,dfs.replication 一般設為 3,但我們只有一個 Slave 節點,所以 dfs.replication 的值還是設為 1
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.acls.enabled</name>
<value>true</value>
</property>
</configuration>
- :文件 mapred-site.xml (可能需要先重命名,默認文件名為 mapred-site.xml.template),然后配置修改如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master:19888</value>
</property>
</configuration>
- :文件yarn-site.xml 改為下面的配置:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- Site specific YARN configuration properties -->
</configuration>
(5)將Master 上的 /usr/local/Hadoop 文件夾復制到各個節點上
配置好后,將 Master 上的 /usr/local/Hadoop 文件夾復制到各個節點上。(如果之前有跑過偽分布式模式,建議在切換到集群模式前先刪除之前的臨時文件)。在 Master 節點上執行:
- cd /usr/local
- sudo rm -r ./hadoop/tmp # 刪除 Hadoop 臨時文件
- sudo rm -r ./hadoop/logs/* # 刪除日志文件
- tar -zcf ~/hadoop.master.tar.gz ./hadoop # 先壓縮再復制
- cd ~
- scp ./hadoop.master.tar.gz Slave1:/home/hadoop
在 Slave1 節點上執行:
- sudo rm -r /usr/local/hadoop # 刪掉舊的(如果存在)
- sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
- sudo chown -R hadoop /usr/local/hadoop
http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
同樣,如果有其他 Slave 節點,也要執行將 hadoop.master.tar.gz 傳輸到 Slave 節點、在 Slave 節點解壓文件的操作。
(6)啟動hadoop
首次啟動需要先在 Master 節點執行 NameNode 的格式化:
- hdfs namenode -format # 首次運行需要執行初始化,之后不需要
CentOS系統需要關閉防火牆
CentOS系統默認開啟了防火牆,在開啟 Hadoop 集群之前,需要關閉集群中每個節點的防火牆。有防火牆會導致 ping 得通但 telnet 端口不通,從而導致 DataNode 啟動了,但 Live datanodes 為 0 的情況。
在 CentOS 6.x 中,可以通過如下命令關閉防火牆:
- sudo service iptables stop # 關閉防火牆服務
- sudo chkconfig iptables off # 禁止防火牆開機自啟,就不用手動關閉了
http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
若用是 CentOS 7,需通過如下命令關閉(防火牆服務改成了 firewall):
- systemctl stop firewalld.service # 關閉firewall
- systemctl disable firewalld.service # 禁止firew
如下圖,是在 CentOS 6.x 中關閉防火牆:
CentOS6.x系統關閉防火牆
接着可以啟動 hadoop 了,啟動需要在 Master 節點上進行:
- start-dfs.sh
- start-yarn.sh
- mr-jobhistory-daemon.sh start historyserver
http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
通過命令 jps 可以查看各個節點所啟動的進程。正確的話,在 Master 節點上可以看到 NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 進程,如下圖所示:
在 Slave 節點可以看到 DataNode 和 NodeManager 進程,如下圖所示:
缺少任一進程都表示出錯。
(7)執行分布式實例
執行分布式實例過程與偽分布式模式一樣,首先創建 HDFS 上的用戶目錄:
- hdfs dfs -mkdir -p /user/hadoop
Shell 命令http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
將 /usr/local/hadoop/etc/hadoop 中的配置文件作為輸入文件復制到分布式文件系統中:
- hdfs dfs -mkdir input
- hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml input
Shell 命令http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
通過查看 DataNode 的狀態(占用大小有改變),輸入文件確實復制到了 DataNode 中,如下圖所示:
接着就可以運行 MapReduce 作業了:
- hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'
Shell 命令http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
運行時的輸出信息與偽分布式類似,會顯示 Job 的進度。
可能會有點慢,但如果遲遲沒有進度,比如 5 分鍾都沒看到進度,那不妨重啟 Hadoop 再試試。若重啟還不行,則很有可能是內存不足引起,建議增大虛擬機的內存,或者通過更改 YARN 的內存配置解決。
同樣可以通過 Web 界面查看任務進度 http://master:8088/cluster,在 Web 界面點擊 "Tracking UI" 這一列的 History 連接,可以看到任務的運行信息,如下圖所示:
執行完畢后的輸出結果:
MapReduce作業的輸出結果
關閉 Hadoop 集群也是在 Master 節點上執行的:
- stop-yarn.sh
- stop-dfs.sh
- mr-jobhistory-daemon.sh stop historyserver
Shell 命令http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);http://www.powerxing.com/install-hadoop-cluster/javascript:void(0);
此外,同偽分布式一樣,也可以不啟動 YARN,但要記得改掉 mapred-site.xml 的文件名。
三:安裝scala
wget http://downloads.typesafe.com/scala/2.11.4/scala-2.11.4.tgz?_ga=1.248348352.61371242.1418807768 下載scala tar包到/opt目錄下
tar -zxf scala-2.11.4.tgz -C /usr/local/spark #解壓到/usr/local/spark目錄下
配置環境變量:
vim /etc/profile 在后面添加
- set scala environment
export SCALA_HOME=/usr/local/spark/scala-2.11.4
export PATH=$PATH:$SCALA_HOME/bin
保存,然后執行source /etc/profile 使其立即生效
scala -version #查看版本,驗證是否安裝成功
四:安裝spark
1:下載spark,解壓spark
2:配置環境變量
# set spark environment
export SPARK_HOME=/usr/local/spark/spark-1.6.0-bin-hadoop2.6
export PATH=$PATH:$SPARK_HOME/bin
export SPARK_EXAMPLES_JAR=$SPARK_HOME/examples/target/scala-2.11.4/spark-examples_2.11.4-1.6.0.jar
3:修改配置文件
1):cd /usr/local/spark/spark-1.6.0-bin-hadoop2.6
2):mv spark-env.sh.template spark-env.sh
3):vi spark-env.sh
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.99-2.6.5.0.el7_2.x86_64
export SPARK_HOME=/usr/local/spark/spark-1.6.0-bin-hadoop2.6
export SPARK_WORKER_DIR=/usr/local/spark/spark-1.6.0-bin-hadoop2.6/work
export SPARK_LOG_DIR=/usr/local/spark/spark-1.6.0-bin-hadoop2.6/logs/
export SPARK_MASTER_WEBUI_PORT=8070
export SPARK_WORKER_CORES=2
export SPARK_WORKER_INSTANCES=2
export SPARK_WORKER_MEMORY=4g
4:修改slaves文件 - :mv slaves.template slaves
- :vi slaves
添加以下內容:
Master
Slave1
5:啟動spark
cd /usr/local/spark/spark-1.6.0-bin-hadoop2.6/sbin
執行./start-all.sh命令
對應的關閉spark也是在sbin目錄下,執行
./stop-all.sh 即可
5:驗證
- :在master節點上執行jps
30859 jps
30172 Master
- :在slave1節點上執行jps
30302 worker
30859 jps

1 評論
使用HortonWorks 的打包版本HDP, 安裝起來更方便.