1. 程式人生 > >在Linux叢集上部署Spark之前準備

在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或更高版本)

。另外,Spark計算框架基於持久化層,如Hadoop HDFS,因此本章也會簡述Hadoop的安裝配置。

安裝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免密碼登入。