Java 使用UDF调试信息';它在蜂箱里

Java 使用UDF调试信息';它在蜂箱里,java,hive,Java,Hive,我想让GeoIP和hive一起工作。我发现了这个:,这似乎正是我想要的 我构建了JAR(我没有java经验,所以我只希望我正确地完成了这一部分),将它们添加到我的查询中,得到以下结果: hive> ADD jar hive-udf-geo-ip-jtg.jar; Added hive-udf-geo-ip-jtg.jar to class path Added resource: hive-udf-geo-ip-jtg.jar hive> ADD jar geo-ip-java.ja

我想让GeoIP和hive一起工作。我发现了这个:,这似乎正是我想要的

我构建了JAR(我没有java经验,所以我只希望我正确地完成了这一部分),将它们添加到我的查询中,得到以下结果:

hive> ADD jar hive-udf-geo-ip-jtg.jar;
Added hive-udf-geo-ip-jtg.jar to class path
Added resource: hive-udf-geo-ip-jtg.jar
hive> ADD jar geo-ip-java.jar;
Added geo-ip-java.jar to class path
Added resource: geo-ip-java.jar
hive> ADD file GeoIPCity.dat;
Added resource: GeoIPCity.dat
hive> create temporary function geoip as 'com.jointhegrid.hive.udf.GenericUDFGeoIP';
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.FunctionTask

有没有办法找出到底出了什么问题<代码>返回代码1没有告诉我多少。。。某个地方有日志文件吗?

如果您想查看配置单元的日志,可以使用控制台
$hive\u HOME/bin/hive-hiveconf hive.root.logger=INFO
。您还可以更改级别(调试、信息、警告、错误或致命)以查看是否可以获得足够的信息

尝试使用以下命令执行配置单元UDF

hive --hiveconf hive.root.logger=DRFA --hiveconf hive.log.dir=./logs --hiveconf hive.log.level=DEBUG -e "query"

or

hive --hiveconf hive.root.logger=DRFA --hiveconf hive.log.dir=./logs --hiveconf hive.log.level=DEBUG -f queryscript.hql
日志将被捕获到日志文件夹(当前目录)下的文件中。请确保日志文件夹存在


尝试调整日志级别以获得正确的详细信息。

如果您转到“作业跟踪器”,作业中的每个任务都有一个日志文件。谢谢@Steve,我忘记了向下搜索!刚刚在一次任务尝试的系统日志中发现了我的UDF错误(希望它出现在失败步骤的stderr中)。