hive的几个小知识点
1.hive DEBUG日志:(hive终端中查看日志的命令):
hive --hiveconf hive.root.logger=DEBUG,console>>1.log
2.hive.support.concurrency
hive是否支持并发,默认是false,支持读写锁的话,必须要起zookeeper
3.查看被锁的表:
show locks dim_cont_info(表名);
4.查看该表是否被锁:
unlock table dim_cont_info;
5.kill掉正在执行的任务(在8088yarn界面可以看到的):
yarn application -kill application_1453597386026_131043
6.查看hadoop集群是否能够执行mapreduce:
在/home/ocdp/app/hadoop-ocdp3.5.1/share/hadoop/mapreduce目录下,
执行 hadoop jar hadoop-mapreduce-client-jobclient-2.5.0-cdh5.2.1-tests.jar mrbench -numRuns 20(在这个目录下,查找和这个jar包一样的,再将其中的版本号换成这个集群所用的,即与这个目录下相同的jar包,之后可以先将后面的20改为2,看集群是否能够调用mr)
6. 查看锁:
show locks;
7.查看表:
show create table dim_cont_info;
8.报用户名不正确
在hive中执行sql时,如果报用户名不对,比如说是root,则应检查是不是使用的root执行的hive,而不是集群用户执行的hive
9.hive中小文件的合并:
set hive.hadoop.supports.splittable.combineinputformat=true
set mapred.max.split.size=100000000(或256000000);
set mapred.min.split.size.per.node=100000000;
set mapred.min.split.size.per.rack=100000000;
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
对于很多小文件组成的表,在hive中执行的时候会有很多的mapper,要将小文件都合并。
10.有python环境的hive的beeline的连接:
!connect jdbc:hive2://<host>:<port>/<db>;auth=noSasl
如:!connect jdbc:hive2://10.71.5.63:10000/default;auth=noSasl
11.对于集群中的hive执行count(或者调mr)时,会卡住,执行不下去
分析过程:(1)查看日志,(2)可以重启一下metastore(一般不要经常使用)(3)kill掉该卡住的job