笔者将自己编写的UDF函数集成到Hive编译过程中遇到了如下几个问题,如果你在编译过程中也遇到了类似的问题,可以参考下面的解决方法。
Hive 通过Maven来编译,命令如下
<span style="color:#000000"><code>$ mvn clean package -Phadoop<span style="color:#4f4f4f">-</span><span style="color:#006666">2</span>,dist -DskipTests</code></span>
1问题一
异常信息:
Failed to execute goal
org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project hive-metastore: Compilation failure
出现这个错误是因为编译级别低导致的,笔者安装的jdk版本为1.8,打开源码中的pom.xml文件
搜索maven-compiler-plugin,修改编译级别为1.8
然后复制箭头所指向的内容,在pom.xml文件中搜索,修改版本号为3.5.1,保存退出后,再次编译
问题二
异常信息:Java heap space
原因:jvm heap的分配不够
解决方法:修改.profile或.bashrc文件,添加如下配置,再次编译
<span style="color:#000000"><code><span style="color:#000088">export</span> MAVEN_OPTS=<span style="color:#009900">"-Xms1024m -Xmx1024m -Xss1m"</span></code></span>
1问题三
异常信息:
Failed to execute goal on project hive-exec:
Could not resolve dependencies for project org.apache.hive:hive-exec:jar:2.3.0:
Could not find artifact org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde
in alimaven (/nexus/content/groups/public/) -> [Help 1]
原因:引用jar包找不到
解决方法:从如下网址下载jar,上传到maven本地库路径org/pentaho/pentaho-aggdesigner-algorithm/5.1.5-jhyde下
https://public./content/groups/omni/org/pentaho/pentaho-aggdesigner-algorithm/5.1.5-jhyde/