摘要: Apache Spark是專為大規模資料處理而設計的快速通用的計算引擎,可以完成各種各樣的運算,包括SQL 查詢、文字處理、機器學習服務等。通過ROS大家可以在阿裡雲上一鍵部署Spark集群。
Apache Spark是專為大規模資料處理而設計的快速通用的計算引擎,可以完成各種各樣的運算,包括 SQL 查詢、文字處理、機器學習服務等,而在 Spark 出現之前,我們一般需要學習各種各樣的引擎來分別處理這些需求。本文主要目的是為大家提供一種非常簡單的方法,在阿裡雲上部署Spark集群。
通過<阿裡雲ROS資源編排服務>,將VPC、NATGateway、ECS建立,Hadoop和Spark部署程序自動化,使大家能夠非常方便地部署一個Spark集群。本文建立的Spark集群包含三個節點:master.hadoop,slave1.hadoop,slave2.hadoop。
急速部署Spark集群
一鍵部署Spark集群>>
注意:
·必須確保可以正確下載Jdk,Hadoop,Scala和Spark安裝包,我們可以選擇類似如下的URL:
ohttp://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz(Must set 'Cookie:oraclelicense=accept-securebackup-cookie' in Header, when download.)
ohttp://mirrors.hust.edu.cn/apache/hadoop/core/hadoop-2.7.1/hadoop-2.7.1.tar.gz
ohttps://downloads.lightbend.com/scala/2.12.1/scala-2.12.1.tgz
ohttp://d3kbcqa49mib13.cloudfront.net/spark-2.1.0-bin-hadoop2.7.tgz
·利用該範本建立時,只能選擇CentOS系統;
·為了防止Timeout 失敗,可以設定為120分鐘;
·我們選擇的資料中心在上海/北京。
ROS範本安裝Spark四部曲
Spark的依賴環境比較多,一般安裝Spark可分為四步:安裝設定Hadoop集群,安裝設定Scala,安裝設定Spark包和啟動測試集群。
1. 安裝設定Hadoop
安裝Hadoop比較複雜,我們在上一篇部落格《阿裡雲一鍵部署Hadoop 分散式集群》中已經做過詳細介紹,這裡不再贅述。
2. 安裝設定Scala
Spark 是在Scala 語言中實現的,它將 Scala 用作其應用程式架構,Scala可以像動作本地集合物件一樣輕鬆地動作分散式資料集。
"aria2c $ScalaUrl
",
"mkdir -p $SCALA_HOME
tar zxvf scala-*.tgz -C $SCALA_HOME
cd $SCALA_HOME
mv scala-*.** ./
rmdir spark-*hadoop*
",
"echo >> /etc/profile
",
"echo export SPARK_HOME=$SPARK_HOME >> /etc/profile
",
"echo export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin >> /etc/profile
",
"source /etc/profile
",
"
",
"cp $SPARK_HOME/conf/slaves.template $SPARK_HOME/conf/slaves
",
"echo $ipaddr_slave1 > $SPARK_HOME/conf/slaves
",
"echo $ipaddr_slave2 >> $SPARK_HOME/conf/slaves
",
"cp $SPARK_HOME/conf/spark-env.sh.template $SPARK_HOME/conf/spark-env.sh
",
"echo export SCALA_HOME=$SCALA_HOME > $SPARK_HOME/conf/spark-env.sh
",
"echo export JAVA_HOME=$JAVA_HOME>> $SPARK_HOME/conf/spark-env.sh
",
"scp -r $SPARK_HOME/*root@$ipaddr_slave1:$SPARK_HOME
",
"scp -r $SPARK_HOME/*root@$ipaddr_slave2:$SPARK_HOME
",
"
",
"ssh root@$ipaddr_slave1 "echo >> /etc/profile;echo export SCALA_HOME=$SCALA_HOME >> /etc/profile;echo export PATH=$PATH:$SCALA_HOME/bin >> /etc/profile;echo export SPARK_HOME=$SPARK_HOME >> /etc/profile;echo export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin >> /etc/profile;exit"
",
"ssh root@$ipaddr_slave2 "echo >> /etc/profile;echo export SCALA_HOME=$SCALA_HOME >> /etc/profile;echo export PATH=$PATH:$SCALA_HOME/bin >> /etc/profile;echo export SPARK_HOME=$SPARK_HOME >> /etc/profile;echo export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin >> /etc/profile;exit"
",
4. 啟動測試集群
最後格式化HDFS,關閉防火牆,啟動集群。
"hadoop namenode -format
",
"systemctl stopfirewalld
",
"$HADOOP_HOME/sbin/start-dfs.sh
",
"$HADOOP_HOME/sbin/start-yarn.sh
",
"$SPARK_HOME/sbin/start-all.sh
",
測試部署結果
建立完成後,查看資源棧概況:
瀏覽器中輸入圖中的的SparkWebsiteURL,得到如下結果,則部署成功:
ROS樣本範本
Spark_Hadoop_Distributed_Env_3_ecs.json:通過該範本可以一鍵部署上面的集群。
Spark_Hadoop_ecsgroup.json:該範本允許用戶指定slaves節點的數量。
相關產品:
- 資源編排ROS