在Linux叢集上部署Spark之前準備
在Linux叢集上部署Spark
Spark安裝部署比較簡單,
使用者可以登入其官方網站(http://spark.apache.org/downloads.html)
下載Spark最新版本或歷史版本,也可以查閱Spark相關文件作為參考。本書開始寫作時,本章所述的環境搭建均以Spark 1.5.0版為例。
Spark使用了Hadoop的HDFS作為持久化儲存層,因此安裝Spark時,應先安裝與Spark版本相相容的Hadoop。
本節以阿里雲Linux主機為例,描述叢集環境及Spark開發環境的搭建過程。
Spark計算框架以Scala語言開發,因此部署Spark首先需要安裝Scala及JDK(Spark1.5.0需要JDK1.7.0或更高版本)
安裝OpenJDK
Spark1.5.0要求OpenJDK1.7.0或更高版本。以本機Linux X86機器為例,OpenJDK的安裝步驟如下所示:
1)查詢伺服器上可用的JDK版本。在終端輸入如下命令:
yum list "*JDK*"
yum會列出伺服器上的JDK版本。
2)安裝JDK。在終端輸入如下命令:
yum install java-1.7.0-openjdk-devel.x86cd /usr/lib/jvmln -s java-1.7.0-openjdk.x86 java-1.7
3)JDK環境配置。
① 用編輯器開啟/etc/profile檔案,加入如下內容:
export JAVA_HOME=/usr/lib/jvm/java-1.7
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
關閉並儲存profile檔案。
② 輸入命令source /etc/profile
讓配置生效。
安裝Scala
登入Scala官網(http://www.scala-lang.org/download/)下載最新版本: scala-2.11.7.tgz
1)安裝。
tar zxvf scala-2.11.7.tgz -C /usr/localcd /usr/localln -s scala-2.11.7 scala
2)配置:開啟/etc/profile,加入如下語句:
export SCALA_HOME=/usr/local/scala
export PATH=$PATH:$SCALA_HOME/bin
配置SSH免密碼登入
在分散式系統中,如Hadoop與Spark,通常使用SSH(安全協議,Secure Shell)服務來啟動Slave節點上的程式,當節點數量比較大時,頻繁地輸入密碼進行身份認證是一項非常艱難的體驗。為了簡化這個問題,可以使用”公私鑰”認證的方式來達到SSH免密碼登入。
首先在Master節點上建立一對公私鑰(公鑰檔案:~/.ssh/id_rsa.pub;私鑰檔案:~/.ssh/id_rsa),然後把公鑰拷貝到Worker節點上(~/.ssh/authorized_keys)。
二者互動步驟如下:
1)Master通過SSH連線Worker時,Worker生成一個隨機數然後用公鑰加密後,發回給Master。
2)Master收到加密數後,用私鑰解密,並將解密數回傳給Worker。
3)Worker確認解密數正確之後,允許Master連線。
如果配置好SSH免密碼登入之後,在以上互動中就無須使用者輸入密碼了。下面介紹安裝與配置過程。
1)安裝SSH: yum install ssh
2)生成公私鑰對: ssh-keygen -t rsa
一直按回車鍵,不需要輸入。執行完成後會在~/.ssh目錄下看到已生成
id_rsa.pub與id_rsa兩個金鑰檔案。其中id_rsa.pub為公鑰。
3)拷貝公鑰到Worker機器:
scp ~/.ssh/id_rsa.pub <使用者名稱>@<worker機器ip>:~/. ssh
4)在Worker節點上,將公鑰檔案重新命名為authorized_keys:
mv id_rsa.pub auth-orized_keys
類似地,在所有Worker節點上都可以配置SSH免密碼登入。