安裝環境: 虛擬機器: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
如果提示:
則是因為yum服務被佔用,需要強制解鎖:
rm -rf /var/run/yum.pid
終端就會聯網下載安裝包並自行進行安裝。安裝完成後輸入下面指令驗證22埠是否開啟:
netstat -nat
確定22埠是開啟的,然後檢查SSH安裝正確否,輸入
ssh localhost
輸入當前使用者名稱和密碼按回車確認,說明安裝成功,同時ssh登陸需要密碼。
這裡重點說明一下:
Ssh配置實際上就是配置無密碼訪問,使用身份憑據代替密碼驗證,訪問時只需要提供一個身份憑據即可,不需要輸入密碼。那麼意思也就是說,每一個使用者都有一個獨一無二的憑據,要訪問誰,就將這個憑據交給誰(即複製到人家的目錄下即可)
接下來,在終端輸入命令進入Hadoop賬戶目錄:
cd /home/hadoop
再次輸入:
ssh-keygen -t rsa
然後一路回車
然後我們再次進入.ssh資料夾,然後將id_rsa.pub追加到authorized_keys檔案,命令如下:
cd .ssh
順便檢視下本目錄下都有什麼檔案。Id_rsa是屬於該賬戶的私鑰,id_rsa.pub是屬於該賬戶的公鑰,就是要交出去的。
這裡需要多說一句,如果一個主伺服器有多個賬戶要配置無密碼訪問怎麼辦?
主伺服器下面應該有一個叫authorized_keys 的檔案,誰需要配置無密碼訪問,就把你的公鑰追加在這個檔案裡即可。
cp id_rsa.pub authorized_keys
再次測試無密碼登入
ssh localhost
最好是多開啟幾次終端,測試ssh登入,也可以重啟服務測試:
service sshd restart 重啟服務
service sshd start 啟動服務
service sshd stop 停止服務
netstat -antp | grep sshd 檢視是否啟動22埠
任何時候遇到許可權拒絕在命令前加上sudo 即可,如下就被拒絕了:
chkconfig sshd on設定開機啟動
chkconfig sshd off 禁止SSH開機啟動
第二步:配置Java、Scala、Saprk
我們們一次性將需要的軟體全部複製到/home/data目錄下備用。需要登出使用root登入,其他使用者許可權不夠。
Root使用者可以直接在UI下面操作,順便解壓好。
然後切換回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
看到這個說明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
看到下圖說明成功:
接下來配置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檔案應該如下圖:
然後重新整理系統配置:
source /etc/profile
進入spark的conf目錄:
備份檔案:
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目錄:
然後在瀏覽器中訪問:localhost:8080
從頁面上可以看到一個Worker節點的資訊。
我們進入spark的bin目錄,使用“spark-shell”控制檯:
應該無錯出現下面介面:
測試下:
通過訪問"http://localhost:4040",進入spark-shell web控制檯頁面:
輸入:
hello world
hello hadoop
pls say hello
然後在Scala命令列輸入讀取程式:
val readFile = sc.textFile("file:///home/file/test1.txt")
再執行:
readFile.collect
檢視spark-shell web控制檯: