学习spark之spark编译部署

按照前面两篇博文《学习spark之基础环境搭建》《学习spark之hadoop编译部署》终于把spark的前置所需环境配置好了,接下来终于可以开始编译部署spark了。

util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

上述warning,具体解决方法见《WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...

1、下载源文件

从spark官网下载页http://spark.apache.org/downloads.html下载spark源文件,本文使用的是最新的1.6.2版本,选择source code,下载链接:http://d3kbcqa49mib13.cloudfront.net/spark-1.6.2.tgz

下载完成后,将源文件解压缩到目标目录

tar -xvf spark-1.6.2.tgz -C /usr/local/sinasrv2/spark/source

2、编译代码

为了防止在编译过程中出现java outofmemory的错误,需要在编译之前设置MaxPermSize,如下:

export MAVEN_OPTS='-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m'
需要注意的是该参数在jdk8之后已经不再支持,如果尝试在jdk8环境下设置上述参数,编译的时候会得到如下warning:

Java HotSpot(TM) Client VM warning: ignoring option MaxPermSize=1024m; support was removed in 8.0
进入源码根目录,执行如下编译命令:

mvn -Pyarn -Phadoop-2.6 -PHive -Dhadoop.version=2.6.4 -DskipTests clean package
整个编译过程耗时比较久,本文大约执行了2.5个小时。如无异常,会提示编译成功。

3、生成部署包

执行如下命令:

./make-distribution.sh --name hadoop2.6.4 --tgz -Phadoop-2.6 -Phive -Phive-thriftserver -Pyarn

同样耗时略久,如无异常,会在源码包根目录生成安装包

spark-1.6.2-bin-hadoop2.6.4.tgz


4、解压spark安装包至目标目录

tar -xvf spark-1.6.2-bin-hadoop2.6.4.tgz -C /usr/local/sinasrv2/spark/

5、将spark加入到环境变量

在/etc/profile加入

export SINASRV=/usr/local/sinasrv2
export JAVA_HOME=$SINASRV/java/jdk1.7.0_80
#export PATH=$JAVA_HOME/bin:$HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export SCALA_HOME=$SINASRV/scala/scala-2.11.8
export SPARK_HOME=$SINASRV/spark/spark-1.6.2-bin-hadoop2.6.4
export HADOOP_HOME=$SINASRV/hadoop/hadoop-2.6.4
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$SPARK_HOME/bin:$SCALA_HOME/bin:$JAVA_HOME/bin:$HOME/bin:$PATH
export PATH=$HADOOP_HOME/bin:$PATH

6、配置conf

进入conf目录 cd $SPARK_HOME/conf

# cp slaves.template slaves

vim slaves 添加hadoop1

# cp spark-env.sh.template spark-env.sh

vim  spark-env.sh 添加

export SPARK_MASTER_IP=hadoop1
export SPARK_LOCAL_IP=hadoop1
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=512M
export LD_LIBRARY_PATH=$JAVA_LIBRARY_PATH



# cp spark-defaults.conf.template spark-defaults.conf

vim spark-defaults.conf

 spark.master                     spark://master:7077
 spark.serializer                 org.apache.spark.serializer.KryoSerializer
 spark.driver.memory              512m
 spark.executor.extraJavaOptions  -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"


更改日志级别:

# cp log4j.properties.template log4j.properties

vim log4j.properties.template

19 log4j.rootCategory=WARNING, console

7、启动hdfs

cd $HADOOP_HOME/sbin

./start-dfs.sh

8、启动spark

cd $SPARK_HOME/sbin

./start-all.sh


浏览器访问http://hadoop1:8080/就可以访问到spark集群的主页,注意:需要将防火墙关闭service iptables stop

验证启动:

$ jps
1837 NameNode
2113 SecondaryNameNode
2311 Master
1936 DataNode
2383 Worker
3241 CoarseGrainedExecutorBackend
4204 Jps
3153 SparkSubmit

验证客户端连接:

spark-shell --master spark://hadoop1:7077 --executor-memory 500m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值