Spark 2.2.0下载安装及源码编译

31 篇文章 2 订阅
23 篇文章 9 订阅

1.官网

2.下载地址

3.所需环境

  1. jdk1.8+ 参考地址
  2. maven3.3.9 参考地址,下载maven后进行环境变量的设置,设置maven的内存使用,在环境变量中加入如下命令export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
  3. scala2.11.8 参考地址
  4. git:直接输入命令:sudo yum install git下载git
4.源码编译

为什么选择源码编译呢,如果直接选择官网下载好的会少一些jar包,重要的时很多组件的版本可能并不是我们想要的
- 官网参考地址

4.1方式一:
mvn -Pyarn -Phive -Phive-thriftserver -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.7.0 -DskipTests clean package
命令解释:
-Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.7.0:指定Hadoop版本和启用线程
-Phive -Phive-thriftserver:JDBC支持的构建

第一次编译的话可能会报错,报错内容如下:

[ERROR] Failed to execute goal on project spark-launcher_2.11: 
Could not resolve dependencies for project org.apache.spark:spark-launcher_2.11:jar:2.2.0: 
Could not find artifact org.apache.hadoop:hadoop-client:jar:2.6.0-cdh5.7.0 in central (https://repo1.maven.org/maven2) -> [Help 1]

这个错误很明显,https://repo1.maven.org/maven2 该连接是默认的中央仓库地址,使用maven下载jar包但是默认的连接着并没有找到,所以我们要修改pom.xml的设置,在pom.xml添加如下内容:

<repositories>
<repository>
  <id>cloudera</id>
  <name>cloudera Repository</name>
  <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
</repositories>
  • 再次输入编译命令,即可。
4.2方式二:

建议使用该方式,会把源码编译成tar.gz包

./dev/make-distribution.sh \
--name 2.6.0-cdh5.7.0 \
--tgz \
-Dhadoop.version=2.6.0-cdh5.7.0 \
-Phadoop-2.6 \
-Phive -Phive-thriftserver \
-Pyarn

这里可能又会遇到一个情况,编译很慢,所以我们要进行如下修改:

  • make-distribution.sh(修改dev目录下的make-distribution.sh文件)
dev/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 "<id>hive</id>";\
#    # Reset exit status to 0, otherwise the script stops here if the last grep finds nothing\
#    # because we use "set -o pipefail"
#    echo -n)
加入下面的内容:
VERSION=2.2.0
SCALA_VERSION=2.11
SPARK_HADOOP_VERSION=2.6.0-cdh5.7.0
SPARK_HIVE=1
  • 编译:
Building with...
+ echo -e '$ /opt/sourcecode/spark-2.2.0/build/mvn' -T 1C clean package -DskipTests --tgz-Dhadoop.version=2.6.0-cdh5.7.0 -Phadoop-2.6 -Phive -Phive-thriftserver '-Pyarn\n'
$ /opt/sourcecode/spark-2.2.0/build/mvn -T 1C clean package -DskipTests --tgz-Dhadoop.version=2.6.0-cdh5.7.0 -Phadoop-2.6 -Phive -Phive-thriftserver -Pyarn

+ /opt/sourcecode/spark-2.2.0/build/mvn -T 1C clean package -DskipTests --tgz-Dhadoop.version=2.6.0-cdh5.7.0 -Phadoop-2.6 -Phive -Phive-thriftserver -Pyarn
exec: curl --progress-bar -L https://downloads.typesafe.com/zinc/0.3.11/zinc-0.3.11.tgz
  • spark-2.2.0-bin-2.6.0-cdh5.7.0.tgz的生成
[hadoop@zhangyu spark-2.2.0]$ ll
在该目录下会生成:
-rw-rw-r--.  1 hadoop hadoop 198982482 Jan 22 18:50 spark-2.2.0-bin-2.6.0-cdh5.7.0.tgz

该目录的由来:我们可以查看make-distribution.sh文件中可以查看如下的脚本命令

生成的目标文件由来:
if [ "$MAKE_TGZ" == "true" ]; then
  TARDIR_NAME=spark-$VERSION-bin-$NAME
  TARDIR="$SPARK_HOME/$TARDIR_NAME"
  rm -rf "$TARDIR"
  cp -r "$DISTDIR" "$TARDIR"
  tar czf "spark-$VERSION-bin-$NAME.tgz" -C "$SPARK_HOME" "$TARDIR_NAME"
  rm -rf "$TARDIR"
fi
  • 解压
[hadoop@zhangyu software]$ sudo tar -zxvf spark-2.2.0-bin-2.6.0-cdh5.7.0.tgz
5 Spark安装包目录结构说明
  1. bin:存放客户端相关的脚本
  2. conf:存放配置文件
  3. data:存放测试数据
  4. examples:Spark自带的测试用例,里面有很多好的例子**
  5. jars:存放Spark相关的jar包(最佳实践)
  6. sbin:存放服务端相关的脚本,启动停止集群。。。
  7. yarn:存放yarn相关的jar包
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值