1.spark的下载
打开网址spark.apache.org,点击download,选择想要下载的版本,我这里选择了最新的2.2.0版本
在choose a package type 中选择source code,获取spark2.2.0的下载镜像,即可完成下载。
(官网有时候版本切换会有问题,可以在download spark下方的signatures and checksums中选择想要的版本)
2.spark的编译
spark2.2.0的maven版本要求3.3.9以上,jdk要求8以上。scala最好选择2.11版本,内存要求2-8个G(重要)
编译这部分主要看官网,spark.apache.org
官网给了两种编译方式,个人喜欢打包的方式,因为打包完成后可以根据自己的需要去部署spark环境,所以也推荐打包编译方式
spark源码中提供了一个脚本,是根目录dev下的make-distribution,我们可以通过这个脚本对spark进行编译
命令是这样的:./dev/make-distribution.sh --name 2.6.0-cdh5.7.0 --tgz -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.7.0
--name 是指定编译完成后的文件名的,用版本号即可,清晰明了,文件名的格式可以在make-distribution.sh源码中找到:spark-$VERSION-bin-$NAME.tgz
--tgz 就是说要打包成tgz格式
-P 对应的是pom.xml源码中的
-D 是用来更改版本的,我们更改hadoop的版本为2.6.0-cdh5.7.0,也能在pom.xml中找到
第一次编译时间会很慢,内存和网速够用的话1个小时也许就能编译完成,我第一次编译整整编译了一个通宵,这里有一个提高编译速度的小tip
我们看make-distribution.sh的源码,找到这部分
VERSION=$("$MVN" help:evaluate -Dexpression=project.version $@ 2>/dev/null | grep -v "INFO" | tail -n 1)
SCALA_VERSION=$("$MVN" help:evaluate -Dexpression=scala.binary.version $@ 2>/dev/null\
| grep -v "INFO"\
| tail -n 1)
SPARK_HADOOP_VERSION=$("$MVN" help:evaluate -Dexpression=hadoop.version $@ 2>/dev/null\
| grep -v "INFO"\
| tail -n 1)
SPARK_HIVE=$("$MVN" help:evaluate -Dexpression=project.activeProfiles -pl sql/hive $@ 2>/dev/null\
| grep -v "INFO"\
| fgrep --count "
# Reset exit status to 0, otherwise the script stops here if the last grep finds nothing\
# because we use "set -o pipefail"
echo -n)
这部分是检测我们的环境变量以确定我们的spark,scala,hadoop和hive的版本,我们可以通过直接将我们的版本加上去来提速
VERSION = 2.2.0 #spark的版本为2.2.0
SCALA_VERSION = 2.11 #scala的版本为2.11
SPARK_HADOOP_VERSION = 2.6.0-cdh5.7.0 #hadoop的版本为2.6.0-cdh5.7.0
SPARK_HIVE = 1 #支持hive
最后我编译完成后的文件为spark2.2.0-bin-2.6.0-cdh5.7.0.tgz,我们就可以用这个包进行部署啦
---------------------
作者:BornZhu
来源:CSDN
原文:https://blog.csdn.net/BornZhu/article/details/78542620
版权声明:本文为博主原创文章,转载请附上博文链接!
===============================================================
前期准备
maven3.3.9+安装
jdk1.7+jdk安装
scala安装
下载
http://spark.apache.org/downloads.html
这里是下载源码,根据我们生成的环境自己编译
官网编译源码介绍
创建目录
mkdir /app/spark
cd /app/spark
解压
tar -zxvf spark-2.2.0.tgz
使用dev中的make-distribution.sh命令编译
cd /app/spark/spark-2.2.0
./dev/make-distribution.sh --name 2.9.0 --tgz -Psparkr -Phadoop-2.9 -Phive -Phive-thriftserver -Pmesos -Pyarn -Dhaoop.version=2.9.0
参数介绍
-Dhaoop.version=2.9.0
--name 编译后spark安装包的名字
--tgz 以tgz方式压缩
-Psparkr 编译出来的spark支持R语言
-Phive 编译出来的spark支持对hive的操作
-Phive-thriftserver 编译出来的spark支持对hive的操作
-Pmesos 编译出来的spark支持在mesos运行
-Pyarn 编译出来的spark支持在yarn运行
编译成功
生成的包就在spark源码的根目录下
生成的名称可能不一样。
先要安装scala
解压
tar -zxvf spark-2.2.0-bin-2.9.0.tgz
移动
mv spark-2.2.0-bin-2.9.0 /app/spark
配置环境变量
vi ~/.bashrc
export SPARK_HOME=/app/spark/spark-2.2.0-bin-2.9.0
export PATH=:$PATH:$SPARK_HOME/bin
使配置立刻生效
source ~/.bashrc
进入目录
cd /app/spark/spark-2.2.0-bin-2.9.0/bin
检验是否安装成功
./spark-shell --version
./spark-shell --master local[2]
图形用户界面
http://node1:4040/jobs/
---------------------
作者:jy02268879
来源:CSDN
原文:https://blog.csdn.net/jy02268879/article/details/81009217
版权声明:本文为博主原创文章,转载请附上博文链接!
=========================================================
这几天在学习Spark,考虑到以后会涉及到修改源码,就干脆重源码编译开始学习了,不料编译过程中遇到了各种奇奇怪怪的坑,网上也没找到解决方案,所幸最后在错误日志的帮助下成功解决,这里做个记录,方便自己查看,也希望能帮到有需要的伙伴,第一次写博客,有写得不合理或者不对的地方,欢迎大家批评指正。
注意:很抱歉,未对该编译方法打的包进行测试就发了博文,最后测试该方法打的包是不能正常运行的,但没删该博文的原因在于,这算是一种解决问题的思路吧。另外在文章末尾新增编译成功且运行正常的编译方法.
废话不多说,直接进入正题
一、环境准备
1) JDK 1.8+
2) Maven 3.3.9+
3) Scala 2.10 /Scala 2.11.8
4) 下载解压Spark-2.2.0源码并
vim ./dev/make-distribution.sh
二、编译
1)根据你本地的Scala版本: ./dev/change-scala-version.sh 2.10 或者 ./dev/change-scala-version.sh 2.11
2)./dev/make-distribution.sh –name 2.6.0-cdh5.7.0 –tgz -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.7.0 -Phive -Phive-thriftserver
三、可能遇到的坑及解决办法
解决步骤1:
按错误提示,加-rf :spark-hive-thriftserver_2.10从失败的地方重试,加-X显示详细错误信息
./dev/make-distribution.sh –name 2.6.0-cdh5.7.0 –tgz -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.7.0 -Phive -Phive-thriftserver -rf :spark-hive-thriftserver_2.10 -X
解决步骤2:
1) cd 解压后的spark-2.2.0源码根目录
2) vim pom.xml
3) vim 命令搜索jetty
4)查找jetty版本
5)将jetty-servlet和jetty-server依赖新增到报错提示的/opt/package/spark-2.2.0/sql/hive-thriftserver模块下的pom文件,版本直接写上
cd /opt/package/spark-2.2.0/sql/hive-thriftserver
6)重新从失败的地方编译
./dev/make-distribution.sh –name 2.6.0-cdh5.7.0 –tgz -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.7.0 -Phive -Phive-thriftserver -rf :spark-hive-thriftserver_2.10 -X
OK,一波三折,总算成功了
总结一下:遇到错误不要怕,首先百度,百度不到谷歌,谷歌不到自己再看看日志,源码之下无秘密,只要思想不滑坡,办法总比困难多,坑是踩不完的,当你是第一个踩坑的人时,更应该静下来分析问题、解决问题。
该方法打的包运行报错:
显然,上面的方法虽然编译成功了,但是最终的包是不能用的,最后附上编译成功且能用的编译组合
一、环境准备
1) JDK 1.8u152
2) Maven 3.5.2
3)Scala 2.11.8
4) 下载解压Spark-2.2.0源码并
vim ./dev/make-distribution.sh
5)添加cloudera的maven仓库:
1
2
3
4
二、编译
1) ./dev/change-scala-version.sh 2.11
2)
./dev/make-distribution.sh \
--name 2.6.0-cdh5.7.0 \
--tgz \
-Pyarn \
-Phadoop-2.6 \
-Dhadoop.version=2.6.0-cdh5.7.0 \
-Phive \
-Phive-thriftserver
1
2
3
4
5
6
7
8
运行成功:
---------------------
作者:琪琪qiqi_77
来源:CSDN
原文:https://blog.csdn.net/suisongtiao1799/article/details/80223068
版权声明:本文为博主原创文章,转载请附上博文链接!