源碼編譯apache
個人測試環境:
app
- 系統:Centos 6.4 - 64位
- Java:1.7.45
- Scala:2.10.4
- Hadoop:2.2.0
Spark 1.0.0 源碼地址:http://d3kbcqa49mib13.cloudfront.net/spark-1.0.0.tgzide
解壓源碼,在根去根目錄下執行如下命令(sbt編譯我沒嘗試)
oop./make-distribution.sh --hadoop 2.2.0 --with-yarn --tgz --with-hive
測試幾個重要參數ui
--hadoop :指定Hadoop版本 url
--with-yarn yarn支持是必須的spa
--with-hive 讀取hive數據也是必須的,反正我很討厭Shark,之後開發們能夠在Spark上本身封裝SQL&HQL客戶端,也是個不錯的選擇。
.net# --tgz: Additionally creates spark-$VERSION-bin.tar.gz
# --hadoop VERSION: Builds against specified version of Hadoop.
# --with-yarn: Enables support for Hadoop YARN.
# --with-hive: Enable support for reading Hive tables.
# --name: A moniker for the release target. Defaults to the Hadoop verison.scala不想本身編譯的話直接下載二進制包吧:
Spark 1.0.0 on Hadoop 1 / CDH3, CDH4 二進制包:http://d3kbcqa49mib13.cloudfront.net/spark-1.0.0-bin-hadoop1.tgz
Spark 1.0.0 on Hadoop 2 / CDH5, HDP2 二進制包:http://d3kbcqa49mib13.cloudfront.net/spark-1.0.0-bin-hadoop2.tgz
進過漫長的等待,在源碼跟目錄下會生成一個tgz壓縮包
![]()
把這個包copy到你想部署的目錄並解壓。
環境變量:
export SCALA_HOME=/opt/scala-2.10.4
export PATH=$PATH:$SCALA_HOME/bin
export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
特別注意:只須要把解壓包copy到yarn集羣中的任意一臺。一個節點就夠了,不須要在全部節點都部署,除非你須要多個Client節點調用spark做業。
在這裏咱們不須要搭建獨立的Spark集羣,利用Yarn Client調用Hadoop集羣的計算資源。
- cp 解壓後的目錄/conf/log4j.properties.template 解壓後的目錄/conf/log4j.properties
- cp 解壓後的目錄/conf/spark-env.sh.template 解壓後的目錄/conf/spark-env.sh
編輯spark-env.sh
![]()
export HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop
export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077
export SCALA_HOME=/opt/scala-2.10.4
export JAVA_HOME=/opt/jdk1.7.0_45
編輯History Server
經過配置conf/spark-defaults.conf能夠查看已完成job的歷史記錄
spark.eventLog.enabled=true
spark.eventLog.dir=hdfs://XX
具體配置參見Spark1.0.0 history server 配置。
這是個人配置,配置和以前的幾個版本略有不一樣,但大差不差。
用Yarn Client調用一下MR中的經典例子:Spark版的word count
這裏要特別注意,SparkContext有變更,以前版本wordcount例子中的的第一個參數要去掉。
- SPARK_JAR=./lib/spark-assembly-1.0.0-hadoop2.2.0.jar \
- ./bin/spark-class org.apache.spark.deploy.yarn.Client \
- --jar ./lib/spark-examples-1.0.0-hadoop2.2.0.jar \
- --class org.apache.spark.examples.JavaWordCount \
- --args hdfs://master:9000/user/hadoop/README.md \
- --num-executors 2 \
- --executor-cores 1 \
- --driver-memory 1024M \
- --executor-memory 1000M \
- --name "word count on spark"
運行結果在stdout中查看
![]()