spark常见操作系列
做数据处理有一段时间了,现把工作中遇到的问题和处理思路做个整理.文章分为5块,依次是:
1. spark hadoop,hbase 版本划分, 以及spark1.5.2,scala2.10.4 与spark2.0, scala2.11版本区别
2. spark读写hadoop
3. spark读写hbase
4. spark广播变量的应用
5. spark,scala程序的调优几种思路
本人之前用spark1.5 和spark2.1 做开发,的时候,两个版本的切换, 所使用的spark api不一样,带来了一些麻烦.现把发现的spark 不同版本区别记录一下, 供大家做个参考.
Jdk版本 Spark版本 Scala版本 Hadoop版本 Hbase版本
1.7以上 Spark1.5/1.6 Scala2.10 Hadoop2.5/2.6 Hbase0.98及以上
1.7以上 Spark2.x Scala2.11 Hadoop2.7 Hbase0.98及以上
当然,hbase 连接会依赖zookeeper,在使用hadoop文件读写的时候,在消息流的处理上,我们使用的kafka的版本都要保持一致.
之前听同事说过,kafka对spark1.5 支持不是太好.
版本一致,在应用具体api的时候,
(1)遇到的不明报错会少很多;
(2)程序运行比较稳定
一般在maven里面管理依赖包的版本.实际上,具体加载依赖也要仔细,比如,hadoop使用client jar包;而hbase 在使用较新版本的api,比如rdd.saveAsNewAPIHadoopDataset() ,反而需要使用hbase server jar包.