1. 程式人生 > >在阿里雲上搭建spark分散式環境。

在阿里雲上搭建spark分散式環境。

參考資料:(我覺的參考資料比我的更重要,所以它在前面。)http://www.mak-blog.com/spark-on-yarn-setup-multinode.html張丹陽. 阿里雲實現Spark的分散式計算https://www.cnblogs.com/freeweb/p/5773619.html三臺EMC伺服器,ubentu系統。下載一個putty,做遠端連線。第一步:修改/etc/hostname   master slave1 slave2             修改/etc/hosts  格式:IP hostname第二步:做ssh免密登陸。
# sudo apt-get install openssh-server
# sudo apt-get update
# ssh-keygen -t rsa -P ""   //提示選擇目錄時,按 Enter 鍵,那麼 id_rsa 和 id_rsa.pub 會生成到 root/.ssh 目錄下。在根目錄下使用 ls -a 命令可以看到該目錄。

在三臺伺服器上執行:cd root/.ssh,cat id_rsa.pub>>authorized_keys,將 id_rsa.pub 追加到 authorized_keys。將 slave1 和 slave2 的 id_rsa.pub 拷貝到 master(傳輸檔案可用 scp),並將其內容追加到 master 的 root/.ssh/authorized_keys 中。同理,處理另外倆個機子。可以通過阿里雲的EMC控制檯,執行上面的操作,很方便。也可以自己貼上複製 id_rsa.pub到 authorized_keysssh master ssh slave1ssh slave2驗證成功,是不需要輸入密碼的。如果不成功,可能是.ssh資料夾和authorized_keys的許可權問題。
chmod 700 /root/.ssh chmod 600 /root/.ssh/authorized_keys第三步:安裝jdk和Scala這裡儘量避免使用apt-get install的命令安裝。因為如果這樣,JAVA_HOME和JRE_HOME,配置起來比較麻煩。可以看我的這篇文件:http://blog.csdn.net/qq_36801710/article/details/79306319wget url安裝jdk:# cd /usr/local/java
#
sudotar xzvf jdk-8u77-linux-x64.tar.gz在/etc/profile 或者/~/bash.bashrc,配置jdk的環境變數。export JAVA_HOME=/usr/local/java/jdk1.
8.0_77
export JRE_HOME
=/usr/local/java/jdk1.8.0_77/jre
export CLASSPATH
=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH
=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
export JDK_HOME
=/usr/local/java/jdk1.8.0_77安裝scala:# tar xvzf scala-2.11.8.tgz# ln -s scala-2.11.8 scala配置Scala的環境變數。export SCALA_HOME=/usr/local/scalaexport PATH=$PATH:$SCALA_HOME/bin最後,修改了的配置檔案,source filename ,儲存一下。第四步:安裝spark下載,解壓。在配置檔案中配置:export SPARK_HOME=/usr/local/spark
export PATH
=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin對spark中的檔案進行配置:/usr/local/spark/conf/中:# mv spark-env.template spark-env.sh
#
mv log4j.properties.template log4j.properties
#
mv slaves.template slaves開啟spark-env.sh,這是spark的環境配置檔案,裡面加上Java和Scala的地址。SCALA_HOME=/usr/local/scalaexport JAVA_HOME=/usr/local/java修改slaves:slave1
slave2
可以修改日誌的級別:修改 spark/conf/log4j.properties,把 log4j.rootCategory=INFO,console 改為 log4j.rootCategory=WARN,console然後傳送Spark到叢集其他節點scp -r spark/ slave1:/bigdata/scp -r spark/ slave2:/bigdata/啟動spark叢集:start-all.sh輸入 # jps 命令看 master 下是否出現 master 和 worker,在 slave 節點下是否出現 worker,出現則說明 Spark 叢集啟動成功。 總結:Hadoop,spark的儲存是用的是HDFS,需要Hadoop,叢集的資源管理可以通過yarn管理,master的調控通過zookeeper。所以這次的分散式是不完整的。有時間,我把Hadoop的環境的搭建也記錄一下。
參考文件:http://blog.csdn.net/ttomchy/article/details/52305134