Hive(F&Q)

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个数分散压力
上一篇:Python笔记:lambda匿名函数


下一篇:leetcode 1338. Reduce Array Size to The Half | 1338. 数组大小减半(Java)