安裝環境: 虛擬機: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控制台: