CentOS 7.0下面安裝並配置Spark

石曼迪發表於2015-07-17
安裝環境:
虛擬機器:VMware® Workstation 8.0.1(網路橋接)
OS:CentOS 7
JDK版本:jdk-7u79-linux-x64.tar
Scala版本:scala-2.11.7
Spark版本:spark-1.4.0-bin-hadoop2.4
使用者:hadoop安裝Centos時建立的,屬於管理員組

第一步:配置SSH

使用hadoop登入系統,在終端執行:

yum install openssh-server

wpsE08F.tmp_thumb1

如果提示:

wpsE090.tmp_thumb2

則是因為yum服務被佔用,需要強制解鎖:

rm -rf /var/run/yum.pid

wpsE091.tmp_thumb2

終端就會聯網下載安裝包並自行進行安裝。安裝完成後輸入下面指令驗證22埠是否開啟:

netstat -nat

wpsE0A2.tmp_thumb2

wpsE0A3.tmp_thumb2

確定22埠是開啟的,然後檢查SSH安裝正確否,輸入

ssh localhost

輸入當前使用者名稱和密碼按回車確認,說明安裝成功,同時ssh登陸需要密碼。

wpsE0B3.tmp_thumb2

這裡重點說明一下:

Ssh配置實際上就是配置無密碼訪問,使用身份憑據代替密碼驗證,訪問時只需要提供一個身份憑據即可,不需要輸入密碼。那麼意思也就是說,每一個使用者都有一個獨一無二的憑據,要訪問誰,就將這個憑據交給誰(即複製到人家的目錄下即可)

接下來,在終端輸入命令進入Hadoop賬戶目錄:

cd /home/hadoop 

再次輸入:

ssh-keygen -t rsa

然後一路回車

wpsE0B4.tmp_thumb2

然後我們再次進入.ssh資料夾,然後將id_rsa.pub追加到authorized_keys檔案,命令如下:

cd .ssh

wpsE0B5.tmp_thumb2

順便檢視下本目錄下都有什麼檔案。Id_rsa是屬於該賬戶的私鑰,id_rsa.pub是屬於該賬戶的公鑰,就是要交出去的。

這裡需要多說一句,如果一個主伺服器有多個賬戶要配置無密碼訪問怎麼辦?

主伺服器下面應該有一個叫authorized_keys 的檔案,誰需要配置無密碼訪問,就把你的公鑰追加在這個檔案裡即可。

cp id_rsa.pub authorized_keys

wpsE0C6.tmp_thumb2

再次測試無密碼登入

ssh localhost

wpsE0C7.tmp_thumb2

最好是多開啟幾次終端,測試ssh登入,也可以重啟服務測試:

service sshd restart 重啟服務

service sshd start 啟動服務

service sshd stop 停止服務 

netstat -antp | grep sshd 檢視是否啟動22埠

wpsE0D7.tmp_thumb2

任何時候遇到許可權拒絕在命令前加上sudo 即可,如下就被拒絕了:

wpsE0D8.tmp_thumb2

chkconfig sshd on設定開機啟動

chkconfig sshd off 禁止SSH開機啟動

第二步:配置Java、Scala、Saprk

我們們一次性將需要的軟體全部複製到/home/data目錄下備用。需要登出使用root登入,其他使用者許可權不夠。

Root使用者可以直接在UI下面操作,順便解壓好。

wpsE0D9.tmp_thumb2

然後切換回hadoop使用者(*重要)

配置Java路徑:

sudo gedit /etc/profile

在最後一行回車加上:

#JAVA VARIABLES START

export JAVA_HOME=/home/data/jdk1.7.0_79

export PATH=$PATH:$JAVA_HOME/bin

#JAVA VARIABLES END

然後重新整理系統配置,檢查Java安裝情況:

source /etc/profile

java -version

wpsE0EA.tmp_thumb2

看到這個說明Java環境安裝成功。

接下來配置Scala環境:

sudo gedit /etc/profile

在最後一行加上:

#SCALA VARIABLES START

export SCALA_HOME=/home/data/scala-2.11.7

export PATH=$PATH:$SCALA_HOME/bin

#SCALA VARIABLES END

然後重新整理系統配置,檢查Java安裝情況:

source /etc/profile

scala -version

看到下圖說明成功:

wpsE0EB.tmp_thumb2

接下來配置Spark環境:

sudo gedit /etc/profile

在最後一行加上:

#SPARK VARIABLES START

export SPARK_HOME=/home/data/spark-1.4.0-bin-hadoop2.4

export PATH=$PATH:$SPARK_HOME/bin

#SPARK VARIABLES END

配置完成的profile檔案應該如下圖:

wpsE0FC.tmp_thumb2

然後重新整理系統配置:

source /etc/profile

進入spark的conf目錄:

wpsE0FD.tmp_thumb2

備份檔案:

sudo mv spark-env.sh.template spark-env.sh

然後編輯新建的檔案:

sudo gedit spark-env.sh

在檔案最下面加入:

export SCALA_HOME=/home/data/scala-2.11.7

export JAVA_HOME=/home/data/jdk1.7.0_79

export SPARK_MASTER_IP=localhost

export SPARK_WORKER_MEMORY=1024m

export master=spark://localhost 7070

最後還應該編輯該目錄下的slaves中機器名,因為我機器名就叫localhost,所以就不編輯了。

第三步:執行Spark

啟動Spark叢集。

進入sbin目錄:

wpsE10D.tmp_thumb2

然後在瀏覽器中訪問:localhost:8080

wpsE10E.tmp_thumb2

從頁面上可以看到一個Worker節點的資訊。

我們進入spark的bin目錄,使用“spark-shell”控制檯:

應該無錯出現下面介面:

wpsE11F.tmp_thumb2

測試下:

wpsE120.tmp_thumb2

通過訪問"http://localhost:4040",進入spark-shell web控制檯頁面:

wpsE130.tmp_thumb2

wpsE131.tmp_thumb2

輸入:

hello world

hello hadoop

pls say hello

然後在Scala命令列輸入讀取程式:

val readFile = sc.textFile("file:///home/file/test1.txt")

wpsE132.tmp_thumb2

再執行:

readFile.collect

wpsE143.tmp_thumb2

wpsE144.tmp_thumb2

檢視spark-shell web控制檯:

wpsE155.tmp_thumb2

wpsE156.tmp_thumb3

相關文章