参考资料
让cloudera manager装的spark支持hql
Apache Spark学习:将Spark部署到Hadoop 2.2.0上
CDH内嵌spark版本不支持spark-sql,可能是因为cloudera在推自己的impala;如果上线spark却不能使用sql这种结构化语言,对于大部分分析人员其实是有一定的门槛的
准备环境
maven等相关环境安装
scala安装
下载spark源码
cdh5.5.0中使用的spark-1.5.0,下载对应源码
http://archive.apache.org/dist/spark/spark-1.5.0/spark-1.5.0.tgz
解压文件到/pwl/code/spark-1.5.0
编译获取assembly的jar包
修改maven的内存配置,防止内存溢出,在$mavn_home/bin下的mvn增加下面这一行
MAVEN_OPTS="$MAVEN_OPTS -Xms256m -Xmx1024m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=128m"
对spark进行编译,进入spark解压目录 /pwl/code/spark-1.5.0 运行以下命令,指定yarn、thrift、cdh,注意hadoop.version和scala版本
mvn -Pyarn -Dhadoop.version=2.6.0-cdh5.5.0 -Dscala-2.10.3 -Phive -Phive-thriftserver -DskipTests clean package
这是我编译过程中遇到错误调整过后根目录下的pom.xml文件,存放在百度网盘中供参考:spark源码中的pom.xml
编译时间比较长,结果如下
目标是需要一个新的加入了hive相关的jar包spark-assembly.jar,编译结果的路径为
/pwl/code/spark-1.5.0/assembly/target/scala-2.10
,如下图,其中/pwl/code/spark-1.5.0为源码的解压路径
编译后,有200M大小…如果下载到win下修改后缀名为rar或者zip打开进入org/apache目录有hive和thrift相关的目录,下图为编译前后org/apache下目录结果对比