java - 在 HIVE 中运行 UDF 以进行自定义反序列化时出现 OWN_TASK_FAILURE。

标签 java hadoop hive udf

我正在编写一个配置单元脚本来从源中提取数据并将其添加到不同的目的地。存储在源中的数据采用自定义格式。因此,我使用 Hive UDF 获取数据,反序列化并返回 List<String> (我试过 List<org.apache.hadoop.io.Text> )。

我创建了一个包含 4 个字符串参数的 Hive 表 (HIVE_TABLE) 并运行以下配置单元查询。

> INSERT OVERWRITE TABLE HIVE_TABLE SELECT udfFunction(colName)[0], udfFunction(colName)[1], udfFunction(colName)[2], udfFunction(colName)[3] from sourceTable;

其中“udfFunction”是我的返回 List<String> 的自定义函数, 'colName' 将序列化数据存储在 sourceTable(另一个 hive 表)中。

执行上述脚本后,出现以下异常。

Container exited with a non-zero exit code 255 ]]], Vertex did not succeed due to OWN_TASK_FAILURE, failedTasks:1 killedTasks:0, Vertex vertex_1489044803200_0651_1_00 [Map 1] killed/failed due to:OWN_TASK_FAILURE]DAG did not succeed due to VERTEX_FAILURE. failedVertices:1 killedVertices:0

有人能解释一下我们什么时候得到 OWN_TASK_FAILURE 异常以及上述策略出了什么问题吗?

最佳答案

尝试将mr设置为执行引擎:

set hive.execution.engine=mr;

有时很难用 tez 进行调试。

关于java - 在 HIVE 中运行 UDF 以进行自定义反序列化时出现 OWN_TASK_FAILURE。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44027235/

相关文章:

hadoop - Hadoop应用程序中Avro的用例

java - 线程 "main"StackoverFlow 错误中的异常

java - 了解 Jeprofile 输出

hadoop - 集群可用内存空间

hadoop - 如何使用配置单元计算由 "|"分隔符分隔的每列中的单词数?

hadoop - Hive:如何转换毫秒时间戳?

java - Web 服务将参数传递到另一个类/项目

java - hibernate、jpa 和 c3p0 的连接异常

hadoop - 在Hadoop环境中,谁在HDFS中创建数据拆分?

architecture - HBase 反模式