软件准备
- shc源码包
下载地址:https://github.com/hortonworks-spark/shc/releases
1. 编译源码包
(1) 解压源码包,修改项目根目录下的pom文件
根据自己使用的版本修改各组件的版本号,以下是我修改后的pom文件:
com.hortonworks
shc
spark-2.3.0-hbase-1.2.6
pom
2.3.0
1.2.6
4.14.0-HBase-1.2
1.8
说明:
- 以上内容只是我修改的部分,没有修改的我没有贴出来
- 我修改了version,那么在子模块的pom中,也要修改为一样的version
以下是我修改后的两个子模块core和examples中的pom文件,只修改了version
com.hortonworks
shc
spark-2.3.0-hbase-1.2.6
../pom.xml
shc-core
spark-2.3.0-hbase-1.2.6
jar
HBase Spark Connector Project Core
com.hortonworks
shc
spark-2.3.0-hbase-1.2.6
../pom.xml
shc-examples
spark-2.3.0-hbase-1.2.6
jar
HBase Spark Connector Project Examples
(2) 编译源码
在源码包根目录下执行mvn命令:
mvn install -DskipTests
执行成功后,你的本地maven仓库中已经有了这个项目的jar包
2. 创建测试shc的maven工程
(1) 新建maven工程,在pom中引入我们编译好的shc-core的依赖
注意,我们只需要shc-core的依赖
com.hortonworks
shc-core
spark-2.3.0-hbase-1.2.6
(2) 导入spark相关的依赖,并解决依赖冲突
# 以下spark的依赖包排除了hadoop-client包,因为与shc-core中的hadoop-client有版本冲突
org.apache.spark
spark-core_2.11
2.3.0
org.apache.hadoop
hadoop-client
org.apache.spark
spark-sql_2.11
2.3.0
org.apache.hadoop
hadoop-client
org.apache.spark
spark-streaming_2.11
2.3.0
org.apache.hadoop
hadoop-client
org.apache.spark
spark-streaming-kafka-0-10_2.11
2.3.0
# 手动引入hadoop-client的依赖
org.apache.hadoop
hadoop-client
2.7.6
这里选择引入hadoop2.7.6版本的hadoop-client是因为2.7版本的hadoop可以兼容全部版本的hbase,下图为hbase官网的hadoop与hbase各版本的兼容性对照表:
(3) 引入hbase相关的依赖并解决依赖冲突
这里只需要排除掉冲突的依赖就可以了
org.apache.hbase
hbase-client
1.2.6
org.apache.hadoop
hadoop-auth
org.apache.hadoop
hadoop-common
org.apache.hadoop
hadoop-mapreduce-client-core
io.netty
netty-all
org.apache.hbase
hbase-server
1.2.6
io.netty
netty-all
(4) 把hdfs-site.xml、core-site.xml和hbase-site.xml放到项目的resources目录下
(5) 其他
- 我在ideal中创建的这个maven工程,加入了scala-sdk,不再赘述
-
修改了项目架构,加入了scala主程序文件夹和测试文件夹
- 配置了maven相关的插件,加入了scala编译插件
net.alchim31.maven
scala-maven-plugin
3.4.2
scala-compile-first
process-resources
add-source
compile
2.11.8
incremental
true
-unchecked
-deprecation
-feature
-source
1.8
-target
1.8
org.apache.maven.plugins
maven-compiler-plugin
3.8.0
compile
compile
true
1.8
UTF-8
org.apache.maven.plugins
maven-resources-plugin
3.1.0
UTF-8
org.apache.maven.plugins
maven-shade-plugin
3.1.1
package
shade
*:*
META-INF/*.SF
META-INF/*.DSA
META-INF/*.RSA
至此,开始测试shc之前的全部准备工作就做好了!