Hive总结

刘超 26天前 ⋅ 4270 阅读   编辑

目录(基于hive1.2.1000.2.5.6.0-40测试)

  1、平台

  2、调优

  3、使用

一、平台

  hive元数据库建议别使用pxc;tez中包含hadoop-mapreduce-client-core、hadoop-mapreduce-client-common等jar,如果这些jar版本与集群中的MR版本不一样,可能导致hive没法使用MR引擎

二、调优

  调优分操作系统调优、JVM调优、平台调优以及应用调优,如下

  1、操作系统调优

  2、JVM调优

  3、平台调优

  4、应用调优

三、使用

1、组件

  hbase
  HiveServer2支持并发连接,使用ZooKeeper来管理Hive表的读写锁,hive建立hbase外表,可能会导致ZooKeeper连接数增加,需要设置hive.exec.submitviachild=true内存不大,尽量别开启llap,如果要开启请将虚拟内存调大一些
  spark
  hive与spark集成,要去掉spark中关于hive的jar,否则会报错

2、函数相关

  1、concat函数

    待拼接字符串中,不能包含null,如果包含null,即使其他字符有值,结果也null,在Hive函数中有具体说明及示例

3、字段名

  不管字段名中有没有大写,hive字段名一律小写;spark写hive(parquet、orc),可以正常写(通过spark.write.save),hive可以正常查

4、存储格式

orc 在hive新增某字段,当spark访问老数据,是没有该字段的
parquet 在hive新增某字段,当spark访问老数据,也是没有该字段的;在hive新增某字段,spark生成parquet(包含新字段),在hive查询,该字段为null

5、引擎

  在hive中,使用mr查是0条,使用tez有数据在beeline中既可以通过mapreduce.job.queuename=adx为mr指定队列又可以为tez指定队列

6、beeline

  a、beeline不支持hive.root.logger参数,如下

   

  b、连接hive时不会传递--hiveconf配置的如下参数,因为配置如下参数后还报Unauthorized connection for super-user: hive from IP 172.17.28.16 (state=,code=0)

beeline --hiveconf hadoop.proxyuser.hive.groups=*  --hiveconf hadoop.proxyuser.hive.hosts=*  --hiveconf hadoop.proxyuser.hcat.groups=*  --hiveconf hadoop.proxyuser.hcat.hosts=*

  c、修改table的location 可能会有修改hive table的location后报File hdfs://opera/apps/hive/warehouse/adx_app.db/r_day_stat_video/day=20191211 does not exist问题


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: