hive一下常见bug和注意事项

对hive分区表新增字段后,在执行插入分区的动作,会发现其实数据文件中已经有新字段值了,但是在查询的时候新字段的值还是显示为null。
原因是修改表结构以后,元数据库中的SDS中该表对应的CD_ID会改变,但是该表分区下面对应的CD_ID还是原来表的CD_ID
解决方案

hive 中=和!=某个值时不包括null的数据,这个在校对数据时要注意

sqoop在导入mysql时SQL语句不是会加引号的,所以如果建表字段或者SQL中有特殊关键字会报错,即使mysql建表成功也会出现
在hive和mysql中建表避免特殊关键字,如date

删除特殊字符的路径

hadoop fs -rm -r /test/00/\\*
hive一下常见bug和注意事项_第1张图片
image.png

sqoop从hive导入mysql时mysql表最好是innodb模式,这样并发才有效果
myisam 是只支持单进程插入读写
innodb可以多事务并行

hive创建表show create table 中文注释乱码
https://issues.apache.org/jira/browse/HIVE-5682

很多情况都会出现这个情况,这次是动态分区插入,加入DISTRIBUTE BY解决。
Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask

你可能感兴趣的:(hive一下常见bug和注意事项)