- 环境准备
- 源码修改
- 编译
- 编译后产生的jar包路径
- cdh hive集成 carbondata
- 编译后的源码地址:
Maven 版本: 3.5.4
Scala 版本 : 2.11.12
Spark版本: 2.4.0
Hadoop版本: 3.0.0
carbondata 2.3.0 (当前最新)
源码修改
1: 将源码中的files.toArray 改为 files.toSeq 否则编译报错
polymorphic expression cannot be instantiated to expected type
def createFilePartition(index: Int, files: ArrayBuffer[PartitionedFile]): FilePartition = {
FilePartition(index, files.toSeq)
}
2: 编译spark的时由于将pom文件仓库改为了cloudrea 的仓库 编译时有一个类找不到
org.apache.spark.sql.execution.datasources.orc.OrcFileFormat
OrcFileFormat 在原生spark-sql依赖中有该类 在spark-sql-cdh6.3.2中没有
3: 编译hive模块时 由于将pom文件仓库改为了cloudrea 的仓库 编译时有一个类找不到
org.apache.hadoop.hive.ql.metadata.StorageHandlerInfo
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: 将 maven-duplicate-finder-plugin 插件的版本设置为1.0.9
2: 将findbugs-maven-plugin 插件的阈值改为 High
5:Carbon-processing模块报错
解决方案: 添加依赖
org.apache.htrace htrace-core 3.1.0-incubating
6: 找到hive-jdbc 依赖 添加exclusion
编译org.glassfish javax.el org.eclipse.jetty jetty-runner
mvn -DskipTests -Pspark-2.4 clean package编译后产生的jar包路径
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 并添加如下的配置
编译后的源码地址:hive.metastore.pre.event.listeners org.apache.carbondata.hive.CarbonHiveMetastoreListener
https://github.com/liutaobigdata/cdh_integrate_carbondata2.3



