数据导入hive出现的问题记录

来源:互联网 发布:mac sftp 客户端 编辑:程序博客网 时间:2024/05/21 17:49

问题一:

【解决】Hive动态增加partitions不能超过100的问题,全量动态生成partitions超过100会出现如下异常:

[plain] view plain copy
  1. The maximum number of dynamic partitions is controlled by hive.exec.max.dynamic.partitions and hive.exec.max.dynamic.partitions.pernode. Maximum was set to: 100  

解决100限制,可设置如下参数:

[sql] view plain copy
  1. set hive.exec.dynamic.partition.mode=nonstrict;  
  2. SET hive.exec.max.dynamic.partitions=100000;   
  3. SET hive.exec.max.dynamic.partitions.pernode=100000;   
  4. insert overwrite table ods.cms_entity PARTITION (DAY)  
  5. select   
  6. ENTITY_ID  ,  
  7. ENTITY_NAME  ,  
  8. ENTITY_DESC  ,  
  9. ENTITY_TYPE  ,  
  10. ENTITY_PID  ,  
  11. ENTITY_TIME  ,  
  12. ENTITY_PRIORITY  ,  
  13. ENTITY_STATUS  ,  
  14. ENTITY_CHANNEL  ,  
  15. ENTITY_EDITOR  ,  
  16. ENTITY_TEMPLATE  ,  
  17. ENTITY_URL    ,  
  18. ENTITY_CATEGORY  ,  
  19. ENTITY_PARAM  ,  
  20. ENTITY_SHORTNAME  ,  
  21. ENTITY_SUBTYPE  ,  
  22. ENTITY_COMPDELAY  ,  
  23. day  
  24. from stage.cms_entity_by_day;  


设置动态partitions为100000,该语句插入几年按天的partitions超过1000个,成功执行语句。


问题二:

过多的动态分区会导致job出现以下情况:

org.apache.hadoop.hive.ql.metadata.HiveException: org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException: No lease on /tmp/hive-maintain/hive_2012-11-28_22-39-43_810_1689858262130334284/_task_tmp.-ext-10002/part=33436268/_tmp.000004_0 File does not exist. Holder DFSClient_attempt_201211250925_9859_m_000004_0 does not have any open files.


解决方案:

加大动态分区数即可,下面是在当前session下设置。

SET hive.exec.max.dynamic.partitions=100000;
SET hive.exec.max.dynamic.partitions.pernode=100000;

问题三:

从hbase或者hdfs导入hive时,数据量太大,会造成exeutors的内存不足,需采用 distribute by 参数

  1. insert overwrite table ods.cms_entity PARTITION (DAY)  
  2. select   
  3. ENTITY_ID  ,  
  4. ENTITY_NAME  ,  
  5. ENTITY_DESC  ,  
  6. ENTITY_TYPE  ,  
  7. ENTITY_PID  ,  
  8. ENTITY_TIME  ,  
  9. ENTITY_PRIORITY  ,  
  10. ENTITY_STATUS  ,  
  11. ENTITY_CHANNEL  ,  
  12. ENTITY_EDITOR  ,  
  13. ENTITY_TEMPLATE  ,  
  14. ENTITY_URL    ,  
  15. ENTITY_CATEGORY  ,  
  16. ENTITY_PARAM  ,  
  17. ENTITY_SHORTNAME  ,  
  18. ENTITY_SUBTYPE  ,  
  19. ENTITY_COMPDELAY  ,  
  20. day  
  21. from stage.cms_entity_by_daydistribute byday ;  

0 0
原创粉丝点击