自己编译的原因是因为spark 中的hive 可能与自己安装的hive 有冲突
参考 文章 编译spark
# 进入spark/dev 目录
# 修改 make-distribution.sh 中的 MVN 使用为 自己安装的mvn (配置国内源)
# 这里不带hive 的编译是为了兼容 我们自己安装 的hive, 避免冲突
./dev/change-scala-version.sh 2.11 # 修改 scala 版本
# 在 ./dev/make-distribution.sh 头添加一句
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
这里有两种编译方式.
支持 hive on spark 的编译, 自己编译的原因是因为spark 中的hive 可能与自己安装的hive 有冲突
./dev/make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.7,parquet-provided,-Dscala-2.11"
支持spark on hive 的编译
./dev/make-distribution.sh --name "hadoop2-with-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.7,hive,hive-thriftserver,parquet-provided" "-Dscala-2.11,hadoop.version=2.8.5,parquet"
编译完成之后可以执行 ./bin/run-example SparkPi 2>&1 | grep "Pi is"
做个测试,看到 Pi的值就说明成功了。