源码编译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中查看
![]()