Hive中的常见问题有哪些


这篇文章主要为大家展示了“Hive中的常见问题有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Hive中的常见问题有哪些”这篇文章吧。hive单表分区数过多执行查询报错(实际上分区数越多查询越慢,应控制分区数在5000以下):java.lang.OutOfMemoryError: Java heap space参考:OOM occurs when query spans to a large number of partitions原因:开发云主机域名hive会在执行查询时先将元数据中的分区信息加载到内存中,包括PARTITIONS、PARTITION_KEY_VALS、PARTITION_PARAMS等表的数据,如果分区数过多,这些表中的数据量也越大,hiveserver2默认的堆内存只有256M,因此heap不足。如果hive-site.xml配置mapred.reduce.tasks数目较多(默认为-1,即slave个数),会导致每个查询job产生更多的map过程,同时分区数较多,加大了单个mapred加载的分区数据量。而在mapred-site.xml中的配置占用内存过低也会导致查询执行过程中报错,可适当调整:mapred.child.java.opts=-Xmx512m -XX:+UseConcMarkSweepGC解决:按照其他规则分区,降低目标表分区数,修改hive-env.sh,加入配置:export HADOOP_HEAPSIZE=2048
hive0.12升级到0.13后启动hiveserver2,beeline登入执行任何查询均报错:Exception in thread “main” java.lang.NoSuchMethodError: org.apache.hadoop.conf.Configuration.unset(Ljava/lang/String;)V原因:hadoop1.0.3中没有Configuration.unset(String)这个方法,对比API可知:Configuration2.2.0、Configuration1.0.4。参考:NoSuchMethodError exception when using HIVE 0.13 with Hadoop 1.0.4修复:以下三种方法任选其一hiveserver2启动时加入参数:hiveserver2 –hiveconf fs.permissions.umask-mode=022修改1.0.3源码:org/apache/hadoop/hive/ql/exec/Utilities.java,将第3417行改为:conf.set(“fs.permissions.umask-mode”, “”);重新编译后将该类替换到hive-exec-0.13.0.jar包中。修改hive-site.xml,加入以下配置:

hive0.13.1升级到0.14后执行任何SQL均报错:NoSuchMethodError: org.apache.hadoop.mapred.JobConf.unset(Ljava/lang/String;)V原因:同上,不兼容低版本的hadoop,JobConf继承了Configuration,因此没有unset方法。参考:https://cwiki.apache.org/confluence/display/Hive/FilterPushdownDev解释:Filter Pushdown,过滤器链用于进一步提高数据命中率。修复:修改org/apache/hadoop/hive/ql/io/HiveInputFormat.java第429行pushFilters方法,将前两行使用unset的代码注释后编译重新打包即可:修改版下载地址:hive-exec-0.14.0.jar
执行一个动态分区语句时HQL报错:org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error: Unable to deserialize reduce input key from x1x128x0x0x19x1x255 with properties {columns=reducesinkkey0,reducesinkkey1,reducesinkkey2,reducesinkkey3, serialization.lib=org.apache.hadoop.hive.serde2.binarysortable.BinarySortableSerDe, serialization.sort.order=++++++, columns.types=int,int,int,int,string,bigint}原因:hive0.13.1 bug,如果设置了hive.optimize.sort.dynamic.partition参数(默认为true,见hive-default.xml.template),则动态分区时会对所有字段排序,也会影响到group by中的字段。参考:Dynamic sort optimization propagates additional columns even in the absence of order by修复:hive0.13.1升级到0.14即可。
Hive存储过程(暂不支持)参考:https://issues.apache.org/jira/browse/HIVE-3087解释:这个估计以后也不会有,因为完全可以用shell替代。
Hive1.2与Hadoop2.6执行hive客户端或beeline报错:Exception in thread “main” java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected原因:YARN中的jline版本过低。解决:将hive-lib中的jline替换到yarn-lib目录中:以上是“Hive中的常见问题有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注开发云行业资讯频道!

相关推荐: 怎么搭建一个基于Docker的Tomcat运行环境

这篇文章主要介绍“怎么搭建一个基于Docker的Tomcat运行环境”,在日常操作中,相信很多人在怎么搭建一个基于Docker的Tomcat运行环境问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么搭建一个基于Docker的To…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 05/30 13:55
Next 05/30 14:26

相关推荐