spark读写HBase之使用hortonworks的开源框架shc(一):源码编译以及测试工程创建


软件准备

  • shc源码包
    下载地址:https://github.com/hortonworks-spark/shc/releases
    spark读写HBase之使用hortonworks的开源框架shc(一):源码编译以及测试工程创建_第1张图片

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包

spark读写HBase之使用hortonworks的开源框架shc(一):源码编译以及测试工程创建_第2张图片

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各版本的兼容性对照表:


spark读写HBase之使用hortonworks的开源框架shc(一):源码编译以及测试工程创建_第3张图片

(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主程序文件夹和测试文件夹


    spark读写HBase之使用hortonworks的开源框架shc(一):源码编译以及测试工程创建_第4张图片
  • 配置了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
                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之前的全部准备工作就做好了!

你可能感兴趣的:(spark读写HBase之使用hortonworks的开源框架shc(一):源码编译以及测试工程创建)