1、 java.io.IOException
java.io.IOException: Cannot obtain block length for LocatedBlock 之类的BP报错。
- 错误分析:
由于集群并发过高/磁盘存储块异常导致,集群问题导致。
- 解决方法:
由于集群并发过高/磁盘存储块异常导致,集群问题导致。
2、没有分配到资源被kill
- 错误分析:
由于任务执行的集群队列吃紧导致等待超过100分钟后,还未分配到资源进行计算,被系统自动kill终结。
- 解决方法:
如果有申请单独队列的用户,建议核实应用组资源队列使用是否正常,如果正常,建议扩容。
3、导入hive计算结果到指定路径下
insert overwrite directory 'mdfs://cloudhdfs/xxx/xxx/xxx/xxx/%YYYYMMDD%/'
select * from db.table where ds = '%YYYYMMDD%'
4、OOM - 内存不足
error:java head space
解决方案:
(1)Map阶段
F:mapjoin导致
Q:设置参数为reduce阶段common join
(2)shuffle阶段
F:map阶段输出结果太大,shuffle阶段拷贝map输出到内存导致。
Q:降低单个shuffle能够消耗的内存占reduce内存的比例(参数),使得shuffle阶段拷贝map输出时选择落磁盘。
(3)reduce阶段
F:单个reduce处理数据量过大
Q:增加reduce个数分散压力