Spark2.2.0 分布式离线搭建
1、Spark簡介
Apache Spark 是專為大規(guī)模數(shù)據(jù)處理而設(shè)計的快速通用的計算引擎。Spark是UC Berkeley AMP lab (加州大學(xué)伯克利分校的AMP實驗室)所開源的類Hadoop MapReduce的通用并行框架,Spark,擁有Hadoop MapReduce所具有的優(yōu)點;但不同于MapReduce的是——Job中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機器學(xué)習(xí)等需要迭代的MapReduce的算法。
Spark 是一種與 Hadoop 相似的開源集群計算環(huán)境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負(fù)載方面表現(xiàn)得更加優(yōu)越,換句話說,Spark 啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負(fù)載。
Spark 是在 Scala 語言中實現(xiàn)的,它將 Scala 用作其應(yīng)用程序框架。與 Hadoop 不同,Spark 和 Scala 能夠緊密集成,其中的 Scala 可以像操作本地集合對象一樣輕松地操作分布式數(shù)據(jù)集。
盡管創(chuàng)建 Spark 是為了支持分布式數(shù)據(jù)集上的迭代作業(yè),但是實際上它是對 Hadoop 的補充,可以在 Hadoop 文件系統(tǒng)中并行運行。通過名為 Mesos 的第三方集群框架可以支持此行為。Spark 由加州大學(xué)伯克利分校 AMP 實驗室 (Algorithms, Machines, and People Lab) 開發(fā),可用來構(gòu)建大型的、低延遲的數(shù)據(jù)分析應(yīng)用程序。
2、部署準(zhǔn)備
2.1、安裝包準(zhǔn)備
- spark-2.2.0-bin-hadoop2.6.tgz
- jdk-8u161-linux-x64.tar.gz
- scala-2.11.0.tgz
2.2、節(jié)點配置信息
2.3、節(jié)點資源配置信息
3、集群配置與啟動
3.1、安裝包上傳與解壓
操作節(jié)點:risen01
操作用戶:root
2、解壓JDK安裝包,Spark安裝包Scala安裝包和到/usr/local下
操作節(jié)點:risen01
操作用戶:root
解壓JDK命令:
tar -zxvf ~/packeages/jdk-8u161-linux-x64.tar.gz -C /usr/local解壓spark命令:
tar -zxvf ~/packages/spark-2.2.0-bin-hadoop2.6.tgz -C /usr/local解壓Scala命令:
tar -zxvf ~/packages/scala-2.11.0.tgz -C /usr/local3.2、啟動前準(zhǔn)備
操作節(jié)點:risen01,risen02,risen03
操作用戶:root
3.3、修改配置文件
3.3.1、編輯spark-env.sh文件
操作節(jié)點:risen01
操作用戶:root
說明:請根據(jù)實際集群的規(guī)模和硬件條件來配置每一項參數(shù)
進(jìn)入到/usr/local/spark-2.2.0-bin-hadoop2.6/conf目錄下執(zhí)行命令:
cp spark-env.sh.template spark-env.sh編輯spark-env.sh文件,添加以下內(nèi)容:
#設(shè)置spark的web訪問端口 SPARK_MASTER_WEBUI_PORT=18080#設(shè)置spark的任務(wù)處理日志存放目錄 SPARK_WORKER_DIR=/data/spark/work#設(shè)置spark每個worker上面的核數(shù) SPARK_WORKER_CORES=2#設(shè)置spark每個worker的內(nèi)存 SPARK_WORKER_MEMORY=1g#設(shè)置spark的啟動日志等目錄 SPARK_LOG_DIR=/log/spark#指定spark需要的JDK目錄 export JAVA_HOME=/usr/local/jdk1.8.0_161#指定spark需要的Scala目錄 export SCALA_HOME=/usr/local/scala-2.11.0#指定Hadoop的安裝目錄 export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop#指定Hadoop的配置目錄 export HADOOP_CONF_DIR=/opt/cloudera/parcels/CDH/lib/hadoop/etc/hadoop/#實現(xiàn)spark-standlone HA(因為我們HA實現(xiàn)的是risen01和risen02之間的切換不涉及risen03,所以這段配置risen03可有可無) export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=risen01:2181,risen02:2181,risen03:2181 -Dspark.deploy.zookeeper.dir=/data/spark"3.3.2、 編輯spark-defaults.conf文件
操作節(jié)點:risen01
操作用戶:root
說明:請根據(jù)實際集群的規(guī)模和硬件條件來配置每一項參數(shù)
進(jìn)入到/usr/local/spark-2.2.0-bin-hadoop2.6/conf目錄下執(zhí)行命令:
cp spark-defaults.conf.template spark-defaults.conf編輯spark-defaults.conf文件,添加以下內(nèi)容:
#設(shè)置spark的主節(jié)點 spark.master spark://risen01:7077#開啟eventLog spark.eventLog.enabled true#設(shè)置eventLog存儲目錄 spark.eventLog.dir /log/spark/eventLog#設(shè)置spark序列化方式 spark.serializer org.apache.spark.serializer.KryoSerializer#設(shè)置spark的driver內(nèi)存 spark.driver.memory 1g#設(shè)置spark的心跳檢測時間間隔 spark.executor.heartbeatInterval 20s#默認(rèn)并行數(shù) spark.default.parallelism 20#最大網(wǎng)絡(luò)延時 spark.network.timeout 3000s3.3.3、 編輯slaves文件
操作節(jié)點:risen01
操作用戶:root
說明:請根據(jù)實際集群的規(guī)模和硬件條件來配置每一項參數(shù)
進(jìn)入到/usr/local/spark-2.2.0-bin-hadoop2.6/conf目錄下執(zhí)行命令:
cp slaves.templete slaves編輯slaves文件,修改localhost為:
risen01 risen02 risen033.4、分發(fā)其他節(jié)點
操作節(jié)點:risen01
操作用戶:root
scp -r /usr/local/spark-2.2.0-bin-hadoop2.6 root@risen02:/usr/local scp -r /usr/local/scala-2.11.0 root@risen02:/usr/local scp -r /usr/local/jdk1.8.0_161 root@risen02:/usr/local scp -r /usr/local/spark-2.2.0-bin-hadoop2.6 root@risen03:/usr/local scp -r /usr/local/scala-2.11.0 root@risen03:/usr/local scp -r /usr/local/jdk1.8.0_161 root@risen03:/usr/local操作節(jié)點:risen01,risen02,risen03
操作用戶:root
修改/log/spark權(quán)限命令:
chown -R bigdata.bigdata /log/spark修改/data/spark權(quán)限命令:
chown -R bigdata.bigdata /data/spark修改spark的安裝目錄命令:
chown -R bigdata.bigdata /usr/local/spark-2.2.0-bin-hadoop2.6修改Scala的安裝目錄命令:
chown -R bigdata.bigdata /usr/local/scala-2.11.0修改JDK1.8的安裝目錄命令:(此步驟如果做過可不做)
chown -R bigdata.bigdata /usr/local/jdk1.8.0_161結(jié)果如圖下所示:
3.5、啟動集群
操作節(jié)點:risen01,risen02
操作用戶:bigdata
(1) 進(jìn)入到/usr/local/spark-2.2.0-bin-hadoop2.6/sbin目錄下執(zhí)行./start-all.sh,查看web界面如下圖所示:
然后在進(jìn)入到risen02機器的spark安裝目錄下/usr/local/spark-2.2.0-bin-hadoop2.6/sbin執(zhí)行命令./start-master.sh啟動spark集群的備用主節(jié)點。(記得一定要啟動備用主節(jié)點的進(jìn)程,這里我們只用risen02做備用主節(jié)點,risen03雖然也配置了有資格,但是暫時我們不需要)
(2) 進(jìn)入到/usr/local/spark-2.2.0-bin-hadoop2.6/bin目錄下執(zhí)行spark-shell,并測試統(tǒng)計詞頻的測試,結(jié)果如下圖所示:
截止到此,spark-standlone模式便安裝成功了!
推薦閱讀:https://www.roncoo.com/course/view/c4e0130ea2354c71a2cb9ba24348746c
文章來源:https://my.oschina.net/blogByRzc/blog/1800450
總結(jié)
以上是生活随笔為你收集整理的Spark2.2.0 分布式离线搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全新视角:用变分推断统一理解生成模型(V
- 下一篇: MyBatis超详细介绍——SQL语句构