• CDH6.3整合Carbondata


    环境准备

                Maven 版本: 3.5.4
                Scala 版本 : 2.11.12 
                Spark版本: 2.4.0
                Hadoop版本: 3.0.0 
                carbondata 2.3.0 (当前最新)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    源码修改

    1: 将源码中的files.toArray 改为 files.toSeq 否则编译报错

     polymorphic expression cannot be instantiated to expected type
    
    • 1
      def createFilePartition(index: Int, files: ArrayBuffer[PartitionedFile]): FilePartition = {
          FilePartition(index, files.toSeq)
      }
    
    • 1
    • 2
    • 3

    2: 编译spark的时由于将pom文件仓库改为了cloudrea 的仓库 编译时有一个类找不到

    org.apache.spark.sql.execution.datasources.orc.OrcFileFormat 
    
    • 1

    OrcFileFormat 在原生spark-sql依赖中有该类 在spark-sql-cdh6.3.2中没有
    3: 编译hive模块时 由于将pom文件仓库改为了cloudrea 的仓库 编译时有一个类找不到

       org.apache.hadoop.hive.ql.metadata.StorageHandlerInfo 
    
    • 1

    StorageHandlerInfo 类 在原生hive-exce 依赖 而在hive-exce-cdh6.3.2中找不到该类
    4: 编译时遇到findbugs-maven-plugin插件的问题:

     Failed to execute goal org.codehaus.mojo:findbugs-maven-plugin:3.0.4:check (analyze-compile) on project carbondata-core: failed with 1 bugs and 0 errors 
    
    • 1

    解决方案:
    1: 将 maven-duplicate-finder-plugin 插件的版本设置为1.0.9
    2: 将findbugs-maven-plugin 插件的阈值改为 High
    在这里插入图片描述
    5:Carbon-processing模块报错
    解决方案: 添加依赖

    <dependency>
      <groupId>org.apache.htrace</groupId>
      <artifactId>htrace-core</artifactId>
      <version>3.1.0-incubating</version>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    6: 找到hive-jdbc 依赖 添加exclusion

    <exclusions>
        <exclusion>
            <groupId>org.glassfish</groupId>
            <artifactId>javax.el</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-runner</artifactId>
        </exclusion>
    </exclusions>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    编译

    mvn  -DskipTests -Pspark-2.4 clean package
    
    • 1

    编译后产生的jar包路径

    在这里插入图片描述
    在这里插入图片描述

    cdh hive集成 carbondata

         1: 第一步 :将编译后产生的jar包放到hive auxlibs  目录中  并将 spark  jars 目录 中的spark-catalyst*.jar 和  scala*.jar  也复制到 hive auxlibs 目录中 
         (hive auxlibs 目录可以在cdh cm-web 控制台中找到)
         2: 复制编译后产生的jar包 放到 hive/lib/  和yarn/lib/ 
         
         第二步:修改hive-site.xml 配置
    
              在cm-web管理界面找到hive-site.xml 并添加如下的配置
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
     <property>
      <name>hive.metastore.pre.event.listeners</name>
      <value>org.apache.carbondata.hive.CarbonHiveMetastoreListener</value>
    </property>
    
    • 1
    • 2
    • 3
    • 4

    编译后的源码地址:

    https://github.com/liutaobigdata/cdh_integrate_carbondata2.3

  • 相关阅读:
    关于pdf.js获取不到文本的问题
    Django笔记十一之外键查询优化select_related和prefetch_related
    .net core微服务之服务发现
    性能优化:JIT即时编译与AOT提前编译
    思腾云计算
    numpy矩阵画框框
    九、计算机视觉-形态学基础概念
    使用Postman进行压力测试
    Java通过System类获取当前系统属性名称列表
    可以实现2路(4通道)FlexRay总线
  • 原文地址:https://blog.csdn.net/IT_liuzhiyuan/article/details/125441248