hadoop+spark集羣搭建入門

忽略元數據末尾
回到原數據開始處

Hadoop+spark集羣搭建 

說明:

本文檔主要講述hadoop+spark的集羣搭建,linux環境是centos,本文檔集羣搭建使用兩個節點做爲集羣環境:一個做爲Master節點,另外一個做爲Slave節點,因爲spark依賴scala,因此須要安裝scalajavascript

搭建步驟:

一:安裝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
四:安裝Sparkjava

一:安裝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 的輸出結果同樣,以下圖所示:
  node

二:安裝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),以下圖所示:
linux

2:安裝ssh、配置ssh無密碼登錄(每一個節點都須要安裝)

集羣、單節點模式都須要用到 SSH 登錄(相似於遠程登錄,你能夠登陸某臺 Linux 主機,而且在上面運行命令),通常狀況下,CentOS 默認已安裝了 SSH client、SSH server,打開終端執行以下命令進行檢驗:

返回結果若如上圖,表示包含了SSH client 跟 SSH server,則不須要再安裝。
若須要安裝,則能夠經過 yum 進行安裝(安裝過程當中會讓你輸入 [y/N],輸入 y 便可):web

  1. sudo yum install openssh-clients
  2. sudo yum install openssh-server

接着執行以下命令測試一下 SSH 是否可用:正則表達式

  1. ssh localhost


此時會有以下提示(SSH首次登錄提示),輸入 yes 。而後按提示輸入密碼 123456,這樣就登錄到本機了

但這樣登錄是須要每次輸入密碼的,咱們須要配置成SSH無密碼登錄比較方便。
首先輸入 exit 退出剛纔的 ssh,就回到了咱們原先的終端窗口,而後利用 ssh-keygen 生成密鑰,並將密鑰加入到受權中:shell

  1. exit # 退出剛纔的 ssh localhost
  2. cd ~/.ssh/ # 若沒有該目錄,請先執行一次ssh localhost
  3. ssh-keygen -t rsa # 生成密鑰對,會有提示,都按回車就能夠
  4. cat id_rsa.pub >> authorized_keys # 加入受權
  5. 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 命令,無需輸入密碼就能夠直接登錄了,以下圖所示。
apache

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
判斷文件的完整性:vim

  1. Cat /opt/hadoop-2.7.2.tar.gz.mds # 列出md5檢驗值
  2. # head -n 6 ~/下載/hadoop-2.7.1.tar.gz.mds # centos2.7.1版本格式變了,能夠用這種方式輸出
  3. md5sum hadoop-2.7.2.tar.gz | tr "a-z" "A-Z" # 計算md5值,並轉化爲大寫,方便比較

若文件不完整則這兩個值通常差異很大,能夠簡單對比下前幾個字符跟後幾個字符是否相等便可,以下圖所示,若是兩個值不同,請務必從新下載 


 
咱們選擇將 Hadoop 安裝至 /usr/local/ 中:centos

  1. sudo tar -zxf /opt/hadoop-2.7.2.tar.gz -C /usr/local # 解壓到/usr/local中
  2. cd /usr/local/
  3. sudo mv ./hadoop-2.7.2/ ./hadoop # 將文件夾名改成hadoop
  4. 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 文件夾中。

  1. cd /usr/local/hadoop
  2. mkdir ./input
  3. cp ./etc/hadoop/*.xml ./input # 將配置文件做爲輸入文件
  4. ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
  5. 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映射:

  1. sudo vim /etc/hosts

主機名在終端窗口標題裏能夠看到,或執行命令 hostname 查看,以下圖所示,在最後面增長一行 "127.0.0.1 dblab":
 設置主機名的IP映射
保存文件後,從新運行 hadoop 實例,若執行成功的話會輸出不少做業的相關信息,最後的輸出信息以下圖所示。做業的結果會輸出在指定的 output 文件夾中,經過命令 cat ./output/* 查看結果,符合正則的單詞 dfsadmin 出現了1次:

注意,Hadoop 默認不會覆蓋結果文件,所以再次運行上面實例會提示出錯,須要先將 ./output 刪除。

  1. rm -r ./output







到此單機的hadoop已經配置完成,接下來配置集羣

5:集羣配置

Master 節點上完成準備工做後,關閉 Hadoop (/usr/local/hadoop/sbin/stop-dfs.sh),進行後續集羣配置。

(1)修改各節點主機名

爲了便於區分,能夠修改各個節點的主機名(在終端標題、命令行中能夠看到主機名,以便區分)。在 Ubuntu/CentOS 7 中,咱們在 Master 節點上執行以下命令修改主機名(即改成 Master,注意是區分大小寫的):

  1. sudo vim /etc/hostname

或者用下面的命令修改主機名

若是是用 CentOS 6.x 系統,則是修改 /etc/sysconfig/network 文件
而後執行以下命令修改本身所用節點的IP映射:

  1. 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(修改成 Slave一、Slave2 等) 和 /etc/hosts(跟 Master 的配置同樣)這兩個文件進行修改!
配置好後須要在各個節點上執行以下命令,測試是否相互 ping 得通,若是 ping 不通,後面就沒法順利配置成功:

  1. ping Master -c 3 # 只ping 3次,不然要按 Ctrl+c 中斷
  2. 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 節點的終端中執行(由於改過主機名,因此還須要刪掉原有的再從新生成一次):

  1. cd ~/.ssh # 若是沒有該目錄,先執行一次ssh localhost
  2. rm ./id_rsa* # 刪除以前生成的公匙(若是有)
  3. 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 節點上執行:

  1. 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 節點:

  1. scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/

scp 是 secure copy 的簡寫,用於在 Linux 下進行遠程拷貝文件,相似於 cp 命令,不過 cp 只能在本機中拷貝。執行 scp 時會要求輸入 Slave1 上 hadoop 用戶的密碼(hadoop),輸入完成後會提示傳輸完畢,以下圖所示:
 經過scp向遠程主機拷貝文件
接着在 Slave1 節點上,將 ssh 公匙加入受權:

  1. mkdir ~/.ssh # 若是不存在該文件夾需先建立,若已存在則忽略
  2. cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
  3. 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 節點上執行以下命令進行檢驗,以下圖所示:

  1. 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.xmlhdfs-site.xmlmapred-site.xmlyarn-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>

  1. :文件 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>

  1. :文件 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>

  1. :文件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 節點上執行:

  1. cd /usr/local
  2. sudo rm -r ./hadoop/tmp # 刪除 Hadoop 臨時文件
  3. sudo rm -r ./hadoop/logs/* # 刪除日誌文件
  4. tar -zcf ~/hadoop.master.tar.gz ./hadoop # 先壓縮再複製
  5. cd ~
  6. scp ./hadoop.master.tar.gz Slave1:/home/hadoop


在 Slave1 節點上執行:

  1. sudo rm -r /usr/local/hadoop # 刪掉舊的(若是存在)
  2. sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
  3. 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 的格式化:

  1. hdfs namenode -format # 首次運行須要執行初始化,以後不須要


CentOS系統須要關閉防火牆
CentOS系統默認開啓了防火牆,在開啓 Hadoop 集羣以前,須要關閉集羣中每一個節點的防火牆。有防火牆會致使 ping 得通但 telnet 端口不通,從而致使 DataNode 啓動了,但 Live datanodes 爲 0 的狀況。
在 CentOS 6.x 中,能夠經過以下命令關閉防火牆:

  1. sudo service iptables stop # 關閉防火牆服務
  2. 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):

  1. systemctl stop firewalld.service # 關閉firewall
  2. systemctl disable firewalld.service # 禁止firew

以下圖,是在 CentOS 6.x 中關閉防火牆:
 CentOS6.x系統關閉防火牆
接着能夠啓動 hadoop 了,啓動須要在 Master 節點上進行:

  1. start-dfs.sh
  2. start-yarn.sh
  3. 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 上的用戶目錄:

  1. 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 中的配置文件做爲輸入文件複製到分佈式文件系統中:

  1. hdfs dfs -mkdir input
  2. 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 做業了:

  1. 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 節點上執行的:

  1. stop-yarn.sh
  2. stop-dfs.sh
  3. 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 在後面添加

  1. 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文件 
  2. mv slaves.template  slaves
  3. :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:驗證

  1. :在master節點上執行jps

30859 jps
30172 Master

  1. :在slave1節點上執行jps

30302 worker
30859 jps 

2 people 讚了此內容.

1 評論


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

相關文章
相關標籤/搜索