大數據平台搭建 - cdh5.11.1 - spark源碼編譯及集群搭建


 

一、spark簡介

Apache Spark 是專為大規模數據處理而設計的快速通用的計算引擎,Spark 是一種與 hadoop 相似的開源集群計算環境,但是兩者之間還存在一些不同之處,這些有用的不同之處使 Spark 在某些工作負載方面表現得更加優越,換句話說,Spark 啟用了內存分布數據集,除了能夠提供交互式查詢外,它還可以優化迭代工作負載。

二、spark編譯

為什么cdh提供了spark已經編譯好的包,還要自己手工編譯?因為從spark某個版本之后,就不再集成hadoop相關的jar包了,這些jar包需要自己來指定路徑,並且除了hadoop的jar包外,還有FastJson,Hbase等許許多多jar包需要自己指定,很麻煩,所以再三考量,決定還是自己手工編譯spark。

1.安裝scala 2.10.4

這個從scala官網上下載壓縮包到linux,解壓縮,配置好環境變量,即可,非常easy

2.下載spark1.6.0-cdh5.11.1源碼包

http://archive.cloudera.com/cdh5/cdh/5/

同樣是從這個網站下載源碼包

解壓

配置make-distribute.sh文件,修改:

把腳本里的VERSION,SCALA_VERSION,SPARK_HADOOP_VERSION,SPARK_HIVE四個參數的定義注釋掉,因為這會花費大量的時間來獲取到,並且添加下面的內容:

VERSION=1.6.0
SCALA_VERSION=2.10.4
SPARK_HADOOP_VERSION=2.6.0-cdh5.11.1
SPARK_HIVE=1

 3.修改pom.xml文件

修改一下最前面定義的scala.version的版本號,改成2.10.4

4.上傳必要的編譯的東西到build目錄下

一是scala解壓縮之后的包,zinc解壓縮后的包

zinc可在這個地址下下載:

http://downloads.typesafe.com/zinc/0.3.5.3/zinc-0.3.5.3.tgz

結果如下:

5.修改maven配置文件的settings.xml,加入阿里雲的鏡像

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

 

6.開始編譯

./make-distribution.sh --tgz \
--name 2.6.0-cdh5.11.1 \
-Phadoop-2.6.0-cdh5.11.1 \
-Dhadoop.version=2.6.0-cdh5.11.1 \
-Pyarn \
-Phive-1.1.0
 
7.可能遇到的問題:

說是找不到這個包,於是去maven倉庫中手動下載所有的文件,復制到本地的倉庫,即可:

1.把這個文件夾下的內容都下載到本地

https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.0.1/

之后,在本地maven倉庫中,建立org/eclipse/paho/org.eclipse.paho.client.mqttv3/1.0.1/這個目錄,把文件拷貝到這個目錄下

2.把這個文件夾下的內容下載到本地

https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/java-parent/1.0.1/

同樣在本地建立org/eclipse/paho/java-parent/1.0.1/文件夾,把下載的東西復制到這即可

重新編譯

8.漫長的等待,因為需要下載許多的jar包,務必這次編譯成功后,把maven庫打包備份一份,下次使用

9.之后,在本地可以看到一個編譯好的tar包,這個就是spark的安裝包

三.spark集群環境搭建

解壓縮spark包,配置conf

重命名spark-env.sh.template為spark-env.sh,加入以下配置

JAVA_HOME=/home/hadoop/app/jdk
SCALA_HOME=/home/hadoop/app/scala
HADOOP_CONF_DIR=/home/hadoop/app/hadoop/etc/hadoop
HADOOP_HOME=/home/hadoop/app/hadoop
## 這里不同的機器不同的配置
SPARK_LOCAL_IP=hadoop001
SPARK_MASTER_IP=hadoop001
SPARK_MASTER_PORT=7077
SPARK_WORKER_CORES=2
SPARK_WORKER_MEMORY=2g  

注意,SPARK_LOCAL_IP是本地的地址,不同的機器,這個配置需要改正哦

修改slaves

這里放入所有的worker節點

hadoop002

hadoop003

即可

 

先啟動本地

bin/spark-shell

如果沒有問題,那么可以啟動集群了

sbin/start-all.sh

 

進入hadoop001:7077訪問,即可看到spark的監控界面


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM