Hive配置管理总结

hive thriftserver(重要)

一图胜千言:
在这里插入图片描述

Thriftserver和Metastore(功能解释见下) 1:

知识点:

  1. hive最实用的部分 hive thriftserver和metastore,hive thriftserver 有时候也可以叫HiveServer,实际上脚本使用HiveServer2,后者是多并发版本。(官话解释见下2
  2. 如果是java本地部署(不同部署方式见下3)或者cli命令等用jdbc直连数据库,但thrift也支持jdbc,其他组件像python sparksql一般使用thrift,hue查询也通过thrift而不通过jdbc,所以thriftserver请求多,需要负载均衡。它老出问题。
  3. 很多组件会依赖thriftserver管理元数据,避免重复造车
  4. metastore 有单独的命令 hive --service metastore & 这个一般是可选组件,但实际环境中肯定要支持其他非java程序,这个也要配置
  5. Hsql需要用到?看情况,如果通常环境下分析有spark flink和很多OLAP引擎,用Hsql没有优势,离线任务有时会用到,复杂业务有时候也会用到自定义函数

hive_site.xml配置

服务端配置方式

<configuration>
<property>
   <name>hive.metastore.warehouse.dir</name>
   <value>/user/hive/warehouse</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>user</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>password</value>
</property>

客户端配置文件

<configuration>
<property>
  <name>hive.metastore.warehouse.dir</name>
  <value>/user/hive/warehouse</value>
</property>
 
<property>
  <name>hive.metastore.local</name>
  <value>false</value>
</property>
 
<property>
  <name>hive.metastore.uris</name>
  <value>thrift://192.168.1.xxx:9083</value>
</property>
 
</configuration>

hive.metastore.warehouse.dir 在hadoop下默认地址是/user/hive/warehouse
Mysql下要在$HIVE_HOME/lib下配置mysql JDBC驱动 mysql JDBC驱动下载地址.

.hiverc

文件位置 $HOME/.hiverc 启动命令行自动加载,用于配置自定义jar包和环境变量,生效的环境变量在命令行下使用set


    • Metastore:存储表、列和Partition等元数据。包括Metastore服务和后端的关系型数据库。
    • Driver:管理HiveQL执行的生命周期并贯穿Hive任务整个执行期间。运行在HiveServer2进程中。它包括:
      – Compiler:编译HiveQL并将其转化为一系列相互依赖的Map/Reduce任务。
      – Optimizer:优化器,分为逻辑优化器和物理优化器,分别对HiveQL生成的执行计划和MapReduce任务进行优化。
    • Execution Engine:按照任务的依赖关系分别执行Map/Reduce任务。
    • ThriftServer:提供thrift接口,作为JDBC和ODBC的服务端,并将Hive和其他应用程序集成起来。运行在HiveServer2进程中。
    • Clients:包含命令行接口(CLI), Web UI和JDBC/ODBC 接口,为用户访问提供接口。
    ↩︎
    • 通过HiveServer或者HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作。
      两者都允许远程客户端使用多种编程语言如Java、Python向Hive提交请求,获取结果。
      HiveServer或者HiveServer2都是基于Thrift的,但HiveSever有时被称为Thrift server,而HiveServer2却不会。 既然已经存在HiveServer为什么还需要HiveServer2呢?这是因为HiveServer不能处理多于一个客户端的并发请求,这是由于HiveServer使用的Thrift接口所导致的限制,不能通过修改HiveServer的代码修正。因此在Hive-0.11.0版本中重写了HiveServer代码得到了HiveServer2,进而解决了该问题。
      HiveServer2支持多客户端的并发和认证,为开放API客户端如JDBC、ODBC提供了更好的支持。
    ↩︎
    • 官方wiki详细介绍了这三种方式,其中local metastore(生产环境),一种为远端存储。其中本地和远程的区别在与服务端是否配置 hive.metastore.local参数在这里插入图片描述
    ↩︎
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值