目前CDH支持的spark版本都是1.x, 如果想要使用spark 2x的版本, 只能编译spark源码生成支持CDH的版本。

一、准备工作


找一台Linux主机, 由于spark源码编译会下载很多的第三方类库包, 因此需要主机能够联网。

1、安装Java, 配置环境变量, 版本为JDK1.7或者以上

export JAVA_HOME=/usr/java/default
export JRE_HOME=/usr/java/default/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

2、安装Maven, 版本为3.3.9或者以上

export MAVEN_HOME=/usr/local/apache-maven-3.3.9
export PATH=$MAVEN_HOME/bin:$PATH

二、编译Spark的源码包

1、下载spark 2.1.0的源码包


 

2、增加cdh的repository

解压spark的源码包,编辑pom.xml文件, 在repositories节点 加入如下配置:
    <repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
 
 

3、开始编译

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

在编译过程中, 可能会出现各种莫名其妙的原因导致中断, 只需要重新执行上面的编译命令即可, 第一编译可能需要几个小时,第一次编译成功后, 后面再编译就很快了。

编译成功后, 可以看到如下:
 

编译成功后, 可以看到生成了tar包:
 

三、测试


1、提交到yarn上面

 
需要配置HADOOP_CONF_DIR或者YARN_CONF_DIR环境变量:
# export HADOOP_CONF_DIR=/etc/hadoop/conf
 
val file=spark.sparkContext.textFile("/tmp/appveyor.yml")
val wc = file.flatMap(line => line.split(",")).map(word=>(word,1)).reduceByKey(_ + _)
 

2、访问hive的表

需要将hive的hive-site.xml复制到spark的conf目录下面。
scala> spark.sql("select * from iot.tp").collect().foreach(println)
 

















最新文章

  1. 项目vue2.0仿外卖APP(四)
  2. nodejs定义函数的方法
  3. Swiper教程 —— 使用方法
  4. .NET破解之google瓦片下载及拼接
  5. C#高级编程(第9版) -C#5.0&amp;.Net4.5.1 书上的示例代码下载链接
  6. UVA11983 - Weird Advertisement(扫描线)
  7. 第二章 《C++ Primer Plus》
  8. [MySQL Status] Queries,Questions,read/s区别,Com_Commit和handle_commit
  9. 雷林鹏分享:jQuery EasyUI 数据网格 - 条件设置行背景颜色
  10. React-classnames库
  11. oracle中查询当前系统时间用到的dual是什么?
  12. PHP用正则匹配字符串中的特殊字符防SQL注入
  13. BitDefender(比特梵德)特惠活动 免费获取9个月激活码
  14. C#拖拽操作
  15. POJ 3678 Katu Puzzle 2-SAT 强连通分量 tarjan
  16. BZOJ 1216 操作系统(堆)
  17. WINDOWS常用端口列表
  18. 20145312《Java第一次实验报告》
  19. display和overflow
  20. Python和xml简介

热门文章

  1. pyinstaller打包出错numpy.core.multiarray failed to import
  2. Python多进程的Join和daemon(守护)的用法
  3. C#数据结构_树
  4. Leetcode之回溯法专题-77. 组合(Combinations)
  5. Delphi - 通过WinAPI GetCursorPos实现鼠标位置的实时显示
  6. Jconsole/jvisualvm远程监控weblogic中间件配置
  7. Codeforces Round #483 (Div. 2) B. Minesweeper
  8. iphone不支持(格式:2016-02-26 09:12)的格式时间需要转换成:(格式:2016/02/26 09:12)
  9. yolo进化史之yolov2
  10. js获取一个月的天数