Spark Cluster 建置環境

本建置透過Apache提供的Ambari建置Spark叢集環境,並利用Ipython與Jupyter提供簡易的叢集測試環境,讓使用者得以透過撰寫Python語言操作Spark Cluster。本測試環境網絡架構圖如下所示。

本測試環境使用3台實體機器皆採用CentOS 6.5版本64bit之作業系統建立叢集,其中一台扮演Master以及兩台扮演Slave。建置過程中所有的節點皆須安裝Python2.7以上版本並設定SSH免金鑰登入。Master需安裝Ambari-ServerIpythonJupyterAmbari-Server會將Ambari- Agent部屬至各個子節點之中,部屬完畢後透過Ambari-Server建置Spark叢集環境。本建置之配置如表所示。

名稱

作業系統

安裝軟體

Master

CentOS 6.5 64bit

  • Python2.7.8
  • Ipython4.0.0
  • Jupyter
  • Ambari-Server

Slave1

CentOS 6.5 64bit

  • Python2.7.8
  • Ambari-Agent

Slave2

CentOS 6.5 64bit

  • Python2.7.8
  • Ambari-Agent

 


Spark Cluster 安裝

本建置報告係透過apache ambari快速建置Spark叢集。

  1. 建立SSH免認證金鑰
  2. Python版本更新
  3. 安裝IpythonJupyter
  4. 安裝Ambari-Server
  5. 建置Spark叢集
  6. 快速啟動Spark叢集

 

建立SSH免認證金鑰

ssh-keygen
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

 

 

編輯HostName

設定叢集各節點的IP、名稱,並在本機後面加上localhost標記,此Hostname設定檔,所節點都須有一份。

vim /etc/hosts

 

 

更新Yum

更新yum套件包

yum update -y

 

關閉防火牆

chkconfig iptables off
/etc/init.d/iptables stop

 

安裝開發套件

編譯Python只要有gcc編譯器就足夠了,但一些擴展模組需要額外的庫,否則一些Python模組將不可用(比如Python的zlib模組需要zlib-devel,ssl模組需要openssl-devel)。使用者可以根據需要,選擇性的安裝這些擴展模組。這裡我們安裝zlib、ssl和sqlite3的套件。

yum install zlib-devel openssl-devel sqlite-devel –y
yum groupinstall "Development tools" -y

 

 

 

下载新版Python

wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
tar zxvf Python-2.7.8.tgz

 

 

編譯安裝

cd Python-2.7.8 
./configure --prefix=/usr/local/python
make
make install

 

替換系統預設Python

mv /usr/bin/python /usr/bin/python2.6.6
ln -sf /usr/local/python/bin/python2.7 /usr/bin/python

 

修正yum

系統執行yum時因預設調用Python 2.7.8因此出現錯誤(如下圖),透過修改/usr/bin/yum文件,使yum使用python2.6執行。

vim /usr/bin/yum

 

 

安装setuptools和pip

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
ln -sf /usr/local/python/bin/pip /usr/bin/pip
ln -sf /usr/local/python/bin/easy_install /usr/bin/easy_install

 

安裝IPython

pip install ipython
ln -s /usr/local/python/bin/ipython /usr/bin/ipython

 

 

安裝readline擴充模組

yum install readline-devel
yum install patch
pip install readline

 

 

安裝Jupyter

pip install jupyter

 

啟動jupyter

ipython notebook

 

 

安裝Ambari-Server

cd /etc/yum.repos.d/
wget http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.1.0/ambari.repo

 

設定並啟用Ambari-Server

設定ambari-server時若無其他配置,按照預設即可安裝完成(持續輸入Enter即可),安裝完畢後啟動服務,可使用瀏覽器輸入http://<ambari-server-host>:8080,進入Ambari管理介面。

ambari-server setup
ambari-server start

 

建置Spark Cluster

在網址列輸入{MasterIP}:8080,可進入Ambari管理介面(如下圖),愈設帳號為admin,密碼admin。

點選畫面中間的launch install wizar開始建立Cluster,並輸入Cluster名稱(此處可隨意命名),本文命名為lungspark

設定叢集節點,於Target Hosts輸入從結節點名稱,並登入Masterssh private Key私鑰,複製至下方的空白處,此處ssh連線必須有root權限。

安裝相關套件,此處安裝Spark(1.3.1)HDFSYARNZooKeeper,其餘相關套件可依需求另外加選。

 

 

 

此處安裝須等待數十分鐘至數小時(依照安裝套件、叢集數量及網路速度決定),安裝完成後點選Next

 

 

 

設定HDFS權限

cp -r .ipython /home/hdfs/
chown -R hdfs:hdfs /home/hdfs/.ipython

 

 

設定快速啟動之Shell檔

為方便並快速透過jupyter啟動Spark叢集,建立pyspark-dev-env.sh與ipyspark.sh兩個Shell檔,pyspark-dev-env.sh設定環境變數,ipyspark.sh負責透過ipython notebook 啟用jupyter並調用Spark資源,其shell檔設定如下。

pyspark-dev-env.sh

#!/bin/bash
export SPARK_HOME=/usr/hdp/current/spark-client
export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
export PYTHONPATH="$SPARK_HOME/python/lib/py4j-0.8.2.1-src.zip:$PYTHONPATH"
source $SPARK_HOME/bin/utils.sh
source $SPARK_HOME/bin/load-spark-env.sh
source /etc/spark/conf/spark-env.sh
export PYSPARK_PYTHON=python

ipyspark.sh

#!/bin/bash
source pyspark-dev-env.sh
IPYTHON_OPTS="notebook --profile=pyspark" pyspark $1 $2

為方便執行,將ipyspark.sh給予執行權限。

chmod +x ipyspark.sh

 

快速啟動Spark Cluster

如啟動單機版本則執行./ipyspark.sh即可,若欲啟動叢集模式則輸入./ipyspark.sh --master yarn-client,啟動完成下圖所示,預設為{MasterIP:8888}。

./ipyspark.sh --master yarn-client

 

 

arrow
arrow
    文章標籤
    spark big data platform Install
    全站熱搜

    Lung-Yu,Tsai 發表在 痞客邦 留言(0) 人氣()