365
技术社区[云栖]
MaxCompute常见错误汇总(更新ing)
从今天开始,小编会为大家陆续解读MaxCompute常见问题,帮助大家快速上手MaxCompute,玩转大数据计算平台,同时,也欢迎大家一起补充。
十大常见错误码
No1.FAILED: ODPS-0130131
报错信息:FAILED: ODPS-0130131:[1,15] Table not found - table test0517.dual cannot be resolved
用户场景:用虚拟表计算,select sum(1+1) from dual
问题分析:表不存在,MaxCompute分布式系统不支持dual虚拟表。
解决方案:可以自建dual表。
No2.FAILED: ODPS-0130071
报错信息:FAILED: ODPS-0130071:Semantic analysis exception - Cannot insert into target table because column
number/types are different : line 1:23 ''20170903'': Table insclause-0 has 6 columns, but query has 7 columns.
用户场景:向新表导入数据,insert overwrite table demo_target_0722 PARTITION ( dt = '20170903' ) select a,b,c,d,e,f,g from demo_src_0722;
问题分析:向目标表插入数据时,源表和目标表的列数量或类型不匹配。
解决方案:检查源表字段,增加相应字段,或者用create table demo_0722 as
报错信息:FAILED: ODPS-0130071:Semantic analysis exception - Project: a not found.
用户场景:创建表,create table if not exists a.sale_detail(
shop_name string,
customer_id string,
total_price double)
partitioned by (sale_date string,region string);
问题分析:Project不存在。
解决方案:输入正确的Project名称,可以使用大数据开发套件查看所有Project 名称。
No3.FAILED: ODPS-0110061
错误信息:FAILED: ODPS-0110061: Failed to run ddltask - AlreadyExistsException(message:Partition already exists, existed values: ["2017-09-05"])
用户场景:并发添加分区,ALTER TABLE demo.d1 ADD PARTITION (pt='2017-09-05')
问题分析:分区2017-09-05已存在,目前MaxCompute对操作的表没有加锁,这个错误是由Meta产生竞争导致,即向同一个分区同时多次操作读写操作容易产生此类错误。
解决方案:在MaxCompute还没有锁机制的情况下,先不要同时对一个表做操作。
错误信息:FAILED: ODPS-0110061: Failed to run ddltask - SimpleLock conflict failure, add partition is already on-going : demo.d1:pt=20170904
用户场景:并发添加分区,alter table demo.d1 add if not exists partition (pt='20170904')
问题分析:分区20170904已存在,当用户批量添加统一分区时,会出现此错误。MaxCompute仅会执行接收到的第一个添加分区命令,并忽略后续请求。
解决方案:取消批量重复任务执行。
No4.FAILED: ODPS-0010000
错误信息:ODPS-0010000:System internal error - fuxi job failed, caused by: WorkerRestart errCode:11,errMsg:WorkerCrashedWithCorefile
用户场景:写SQL。
问题分析:内部错误错误导致jvm coredump。
解决方案:通常由java udf的实现问题引起,如果排除udf问题,请提交运行日志到工单提问。
错误信息:ODPS-0010000:System internal error - translate plan failed
问题分析:一般是在做plan时出错了。
解决方案:请提交运行日志到工单提问。
错误信息:ODPS-0010000:System internal error - fuxi JobMaster error
错误原因:
fuxi JobMaster error是job master重启引起,可能是运行主机或者网络超时响应的原因,也可能是语句中union all太多,job master内存超过阀值被kill掉了。
解决方案:
如果是语句中union all太多,则最好把查询语句分成多个部分跑。
错误信息:ODPS-0010000:System internal error - codegen failed
问题分析:如果遇到 errors.NotImplemented: Function wsfunc has not been implemented yet
则:注册函数的时候用的包路径一定要是自己实现UDF类的完整包路径。
如果遇到row_number() over(partition by seller_user_id order by seller_user_id,offer_id,recom_score desc)=1
则:where里不能用window function
如果用户用到了distribute by sort by,则distribute by sort by的列一定要在select里,这个是已知的问题
distribute by 不要和join一起用,因为distribute by后,再join,distribute by是多余的,因为join 还是会按join key reshuffle的
如果是使用到分词函数的,应该是分词自定义函数名错误,不能自定义分词函数名,且分词函数只能由owner覆盖。
错误信息:ODPS-0010000:System internal error - PANGU_FILE_NOT_FOUND The file does not exist When PanguOpen4Read pangu
问题分析:读写冲突,你在读的时候有别人在写,连续两个任务在读,第一个读时,发现小作业太多主动开启merge,第二个作业再读时,就会报这个错。
解决方案:请检查冲突节点的依赖关系或者协调好读写关系,第二种情况只需要重试即可。
错误信息:FAILED: ODPS-0010000:System internal error - Fail to close dispatch writer
问题分析:写pangu文件最后会做句柄的close,此时,close会将缓存中的数据Flush到分布式磁盘。close失败常见的问题就是quota不足,此时会报:Fail to close dispatch writer。
错误信息:FAILED: ODPS-0130151: Too many instance count(112), exceeds threshold limit 100.
解决方案:Fail to close dispatch writer报错,首先需要排除quota问题,在quota足够的情况下需要提供具体的Instance后台分析日志,比如网络超时也会导致close失败。因为中间产出的数据也会占用Quota,所以申请quota时需要考虑中间产出的文件大小。
No5.FAILED: ODPS-0130151
错误信息:FAILED: ODPS-0130151: Too many instance count(112), exceeds threshold limit 100.
用户场景:扫描十年数据,select * from demo.a where pt>2007 and pt<2017 。
问题分析:扫描过多分区被系统限制,比如默认split size为256M,系统限制100,就不能超过2.5g。
解决方案:不要扫描过多分区或调大split size。
错误信息:FAILED: ODPS-0130151:Illegal data type - partition column 'time' type 'datetime' is not allowed.
用户场景:创建表,CREATE TABLE aa (type BIGINT COMMENT 'a') PARTITIONED BY (time DATETIME COMMENT 'b') LIFECYCLE 100000
问题分析:type,time 是系统预留字段。
解决方案:不要使用系统保留字段,改为s_type,s_time。参考:https://help.aliyun.com/document_detail/27872.html
No6.FAILED: ODPS-0140181
错误信息:FAILED: ODPS-0140181:Sql plan exception - sql cost error:ODPS-0130131:Table not found - line 1:26 'all_answer'
用户场景:查询表,SELECT risk,count(*) FROM all_answer GROUP BY risk。
问题分析:由于表不存在,导致的SQL作业无法生成执行计划。
解决方案:确认Project下的表是否存在或在表的前面加上Project名称,如demo.all_answer。
No7.FAILED: ODPS-0000000
用户场景:写SQL的时候。
问题分析:系统级别错误。
解决方案:重新跑Job吧。
No8.FAILED: ODPS-0130161
错误信息:FAILED: ODPS-0130161:Parse exception - line 1:0 cannot recognize input near 'exit' '<EOF>' '<EOF>'
用户场景:中断执行,exit。
问题分析:语法解析出错,EXIT是ORACLE的SQL命令,MaxCompute不支持。
解决方案:中断操作可以kill 任务名。
No9.FAILED: ODPS-0130211
错误信息:FAILED: ODPS-0130211:Table or view already exists - t_mac_section_20170901
用户场景:复制表,create table t_mac_section_20170901 like t_mac_section。
问题分析:表或视图已存在。出现这种错误一般是由于重复创建同名表或者view,即执行Create Table/View语句时,要创建的Table/View已经存在。
解决方案:检查表是否已存在,不要重复操作。
No10.FAILED: ODPS-1181151
错误信息:FAILED: ODPS-0121035:Illegal implicit type cast - in function EQUAL, input parameter '20170904' cannot be casted to datetime,
only yyyy-mm-dd hh:mi:ss format is supported
用户场景:select * from dsp_crowd_hit_statement where statement_time ='20170904' limit 50
问题分析:型转换错误。一般为不支持的隐式类型转换错误。通常情况下是由于违背隐式类型转换规则引起的。内建函数也有不同的隐式转换规则。
解决方案:类型转换https://help.aliyun.com/document_detail/57792.html
阿里巴巴大数据-玩家社区 https://yq.aliyun.com/teams/6/
---阿里大数据博文,问答,社群,实践,有朋自远方来,不亦说乎……
最后更新:2017-09-08 17:02:23