1、问题现象
执行insert overwrite 时出现moveing异常
具体异常如下:
2、分析
目前对于分区表执行的是动态分区的插入方式,可以发现其中的分区字段值变成了_HIVE_DEFAULT_PARTITION_,通过查询资料,这是因为在原始表中的分区字段值有null或者''值时,在插入到分区表中,这些值就会被插入到day_id=_HIVE_DEFAULT_PARTITION_这个分区当中。
接下来看一下具体的load过程:
可以发现在load的时候,指定的对应分区字段为null,
其实在动态分区的时候,底层也是使用load data inpath path into table table_name partition(分区字段 partition_name)
问题发现:
可以发现报了user is Not found
3、问题处理解决
运行yarn 任务的时候需要在对应的nodemanager上有相应的用户。目前这个问题就是对应的主机用户不存在。
第一:如果使用的是Linux本地用户,那么可以手动创建用户。
第二:目前我们生成集群,Linux用户来自于ldap,出现这个问题是由于集群扩容,导致ldap的客户端没有配置,不能同步ldap的用户到当前主机,导致的异常。