编译Spark报错

来源:5-6 -Spark环境搭建

KeepFoolish的小白菜

2019-03-08

图片描述
什么也没干,只是运行了编译命令,出现这样的问题该怎么改呐。感觉是两个包不匹配?

写回答

2回答

Michael_PK

2019-03-08

你的JDK,scala,maven版本都OK吗?非上课的版本就有可能不对。请使用上课的版本

0
1
KeepFoolish的小白菜
找到问题了 不能用慕客手札里的那个命令./build/mvn -Phadoop-2.7 -Pyarn -Dhadoop.version=2.7.3 -Phive -Phive-thriftserver clean package -Dmaven.test.skip=true 这个适用于hadoop2.7.0以上版本。 因为我们hadoop版本是2.6.X,所以用build/mvn -Pyarn -DskipTests clean package 这行命令即可
2019-03-09
共1条回复

KeepFoolish的小白菜

提问者

2019-03-09

一开始是命令使用错误,应用dev/make-distribution.sh --name 2.6.0-cdh5.7.0 --tgz -Pyarn -Pscala-2.11 -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.7.0 而不是./build命令,hadoop的version说明也不能省,否则默认匹配为2.6.5版本。

编译过程中遇到四个问题:

  1. Spark源码默认版本为scala2.12 ,需改为2.11,需先运行dev/change-scala-version.sh 2.11,再在make命令行里添加 -Pscala-2.11(不能写2.11.8,否则仍会报错)

  2. 找不到Hadoop cdh版本的仓库,需要修改pom.xml,将cloudera引入仓库,参考https://blog.csdn.net/lemonzhaotao/article/details/78495006

  3. 截图所示问题,原因为hadoop2.6.4增加了新方法,造成2.6.0-2.6.3版本编译错误,所以需要修改Client.scala文件,具体修改参考https://github.com/apache/spark/pull/16884/files

  4. 运行./shell-spark --master local[2] 报错zsh no matches found local,原因是我的terminal是zsh,不是bash,需运行setopt nonomatch改回bash模式,参考https://zpjiang.me/2015/10/17/zsh-no-match-found-local-spark/

0
0

Spark Streaming实时流处理项目实战

Flume+Kafka+Spark Streaming 构建通用实时流处理平台

1404 学习 · 571 问题

查看课程