我创建了一个udf translatetext(),它调用api来翻译给定的文本,并在select子句中返回正确的结果,但是当我应用insert into表时,如下所示:
INSERT OVERWRITE TABLE gl_staging_eve.header_text select header_text, translateText(header_text) from gl_staging_eve.header_text_only;
查询失败,输出如下:
失败:执行错误,从org.apache.hadoop.hive.ql.exec.tez.teztask返回代码2。vertex失败,vertexname=map 1,vertexid=vertex\u 1543885299280\u 8715\u 1\u 00,diagnostics=[任务失败,taskid=task\u 1543885299280\u 8715\u 1\u 00\u 000040,diagnostics=[任务尝试0失败,信息=[容器容器\u e14\u 1543885299280\u 8715\u 01\u 000042完成,诊断设置为[容器完成],任务尝试1失败,信息=[容器容器\u e14 \u 1543885299280 \u 8715 \u 01 \u 000043已完成,诊断设置为[容器已完成],任务尝试2失败,信息=[容器容器\u e14 \u 1543885299280 \u 8715 \u 01 \u 000087已完成,诊断设置为[容器已完成],任务尝试3失败,信息=[container container\u e14\u 1543885299280\u 8715\u 01\u 000137已完成,诊断设置为[container completed.]],由于自身任务失败,vertex未成功,failedtasks:1 killedtasks:40,vertex vertex_1543885299280_8715_1_00[map 1]已终止/失败,原因是:own_task_failure]由于vertex_失败,dag未成功。失败dvertices:1 killedvertices:019/02/12 06:54:58[ats logger 0]:info hooks.atshaked:收到的挂接后通知:bduser\u 20190212065438\u 6cf35096-aa74-48d1-a8ae-6d76b0049099 19/02/12 06:54:58[main]:错误ql.driver:失败:执行错误,从org.apache.hadoop.hive.ql.exec.tez.teztask返回代码2。vertex失败,vertexname=map 1,vertexid=vertex\u 1543885299280\u 8715\u 1\u 00,diagnostics=[任务失败,taskid=task\u 1543885299280\u 8715\u 1\u 00\u 000040,diagnostics=[任务尝试0失败,信息=[容器容器\u e14\u 1543885299280\u 8715\u 01\u 000042完成,诊断设置为[容器完成],任务尝试1失败,信息=[容器容器\u e14 \u 1543885299280 \u 8715 \u 01 \u 000043已完成,诊断设置为[容器已完成],任务尝试2失败,信息=[容器容器\u e14 \u 1543885299280 \u 8715 \u 01 \u 000087已完成,诊断设置为[容器已完成],任务尝试3失败,信息=[container container\u e14\u 1543885299280\u 8715\u 01\u 000137已完成,诊断设置为[container completed.]],由于自身任务失败,vertex未成功,failedtasks:1 killedtasks:40,vertex vertex_1543885299280_8715_1_00[map 1]已终止/失败,原因是:own_task_failure]由于vertex_失败,dag未成功。失败dvertices:1 killedvertices:0 19/02/12 06:54:58[ats logger 0]:调试security.usergroupinformation:privilegedaction as:bduser(auth:simple) from:org.apache.hadoop.yarn.client.api.impl.timelinewriter.doposting(timelinewriter。java:112)
基本上插入到表中是不起作用的。
1条答案
按热度按时间1bqhqjot1#
在hive1.2.x中,默认情况下hive.execution.engine是tez。
当我提交insert into表查询时,select有udf,查询失败。
但是当我把执行引擎改成mapreduce时:
set hive.execution.engine=mr;
然后,插入查询成功运行。希望这对其他人也有帮助!