如何构建集成hbase-spark的HBase 2.0.0正式版?是否存在限制?
解决HBase 2.0.0适配Spark 2.x的hbase-spark正式版构建问题
首先得跟你说清楚核心原因:Apache HBase在2.0.x的正式发布周期里,并没有把hbase-spark纳入核心模块的发布序列。当时hbase-spark还处于孵化验证阶段,官方只推出了2.0.0-alpha4这个预览版本,之后才把稳定的hbase-spark整合到HBase 2.3及更高版本的分支中,对应Spark 2.x的正式支持也是从这些后续分支开始的。
不过你想要构建适配HBase 2.0.0正式版、兼容Spark 2.x的hbase-spark是完全可行的,具体操作步骤如下:
1. 获取hbase-spark 2.0.0-alpha4的源码
官方的hbase-spark 2.0.0-alpha4代码是基于HBase 2.0预览版开发的,和正式版API几乎无差异,我们只需要调整依赖版本即可。直接拉取对应的tag代码:
git clone https://github.com/apache/hbase.git cd hbase git checkout tags/hbase-spark-2.0.0-alpha4
2. 修改依赖适配HBase 2.0.0正式版
进入hbase-spark模块目录,修改pom.xml文件:
- 将所有
<hbase.version>的值从2.0.0-SNAPSHOT替换为2.0.0 - 确认
<spark.version>的值匹配你实际使用的Spark 2.x版本(比如2.4.8,这是Spark 2.x的稳定终版)
3. 构建自定义的hbase-spark正式版
在hbase根目录执行构建命令,跳过测试以加快速度:
mvn clean package -DskipTests -Dhbase.version=2.0.0 -Dspark.version=2.4.8
构建完成后,你就能在hbase-spark/target目录下得到适配HBase 2.0.0、兼容Spark 2.x的JAR包,这个包完全可以作为正式版来使用。
补充:官方未发布正式hbase-spark 2.0.0的原因
核心是hbase-spark在HBase 2.0周期内还未达到稳定发布的标准,当时这个模块还在快速迭代,主要是验证Spark与HBase的整合逻辑,所以只推出了预览性质的alpha版本。后续HBase团队在2.3版本之后才将hbase-spark模块稳定化,并纳入官方正式发布序列,但这些版本对应的HBase核心版本已经高于2.0.0了。
内容的提问来源于stack exchange,提问作者VS_FF
相关产品推荐
相关产品推荐

