请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

编译Spark报错

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

正在回答

2回答

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

0 回复 有任何疑惑可以回复我~
  • 找到问题了 不能用慕客手札里的那个命令./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 07:59:33
提问者 KeepFoolish的小白菜 2019-03-09 15:42:08

一开始是命令使用错误,应用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 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信