Hive系列文章
Hive表的基本操作
Hive中的集合数据类型
Hive动态分区详解
hive中orc格式表的数据导入
Java通过jdbc连接hive
通过HiveServer2访问Hive
SpringBoot连接Hive实现自助取数
hive关联hbase表
Hive udf 使用方法
Hive基于UDF进行文本分词
Hive窗口函数row number的用法
数据仓库之拉链表
先解释一下几个名词:
metadata :hive元数据,即hive定义的表名,字段名,类型,分区,用户这些数据。一般存储关系型书库mysql中,在测试阶段也可以用hive内置Derby数据库。
metastore :hivestore服务端。主要提供将DDL,DML等语句转换为MapReduce,提交到hdfs中。
hiveserver2:hive服务端。提供hive服务。客户端可以通过beeline,jdbc(即用java代码链接)等多种方式链接到hive。
beeline:hive客户端链接到hive的一个工具。可以理解成mysql的客户端。如:navite cat 等。
其它语言访问hive主要是通过hiveserver2服务,HiveServer2(HS2)是一种能使客户端执行Hive查询的服务。HiveServer2可以支持对 HiveServer2 的嵌入式和远程访问,支持多客户端并发和身份认证。旨在为开放API客户端(如JDBC和ODBC)提供更好的支持。
会启动一个hive服务端默认端口为:10000,可以通过beeline,jdbc,odbc的方式链接到hive。hiveserver2启动的时候会先检查有没有配置hive.metastore.uris,如果没有会先启动一个metastore服务,然后在启动hiveserver2。如果有配置hive.metastore.uris。会连接到远程的metastore服务。这种方式是最常用的。部署在图如下:
Python连接Hive
Python3访问hive需要安装的依赖有:
pip3 install thrift
pip3 install PyHive
pip3 install sasl
pip3 install thrift_sasl
这里有一个Python访问Hive的工具类: