我正在编写一个配置单元脚本来从源中提取数据并将其添加到不同的目的地。存储在源中的数据采用自定义格式。因此,我使用 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/