hive 安装前需要安装mysql lzo tez/spark
mysql 用来存储hive相关的表信息
mysql -uroot -pDBa2022*
里面有一个hive 库。里面存储hive相关信息
hive 启动和关闭
# manager.sh hive start
# manager.sh hive stop
#start
hive --service hiveserver2 &
hive --service metstore &
#stop
hive --service hiveserver2 --stop
hive --service metastore --stop
jdbc链接 (旧)
beeline -u jdbc:hive2://node03:10000 -n root
show databases; 有一个default
show tables; 空的
jdbc链接 (新)
hive
!connect jdbc:hive2://<主机名>:10000 -u root
-
技术代际升级 :旧的 Hive CLI 直接连接 Metastore,存在安全和并发瓶颈。Beeline + HiveServer2 是官方推荐的现代化架构,性能更好、安全性更高、支持多用户并发。
-
版本默认设置 :从 Hive 3.x 开始,安装包或脚本中的
hive命令通常被设置成一个启动 Beeline 的包装脚本 。这个脚本内部检查环境并最终调用beeline。
Hive 核心服务概览
| 服务名称 | 主要作用 | 默认端口 | 关键特点 | 使用场景 |
|---|---|---|---|---|
| Hive Metastore | 集中管理元数据(表结构、库信息等) | 9083 | 1. 元数据的"大脑" 2. 支持嵌入、本地、远程模式 3. 多客户端并发访问 | 任何Hive/Spark读写操作都依赖它 |
| HiveServer2 (HS2) | 提供JDBC/ODBC接口,执行HQL查询 | 10000 | 1. 支持多客户端并发 2. 提供Thrift API 3. Kerberos安全认证 | JDBC/ODBC工具连接(如beeline、Spark) |
为什么我的hive-site.xml 中没有 hive.metastore.warehouse.dir 这个参数
Hive预设了默认路径 /user/hive/warehouse,当配置文件中没有此参数时,系统自动采用此默认值。通过 SHOW CREATE DATABASE default; 查看 default 库的实际路径。
返回
+---------------------------------------------+
| createdb_stmt |
+---------------------------------------------+
| CREATE DATABASE `default` |
| COMMENT |
| 'Default Hive database' |
| LOCATION |
| 'hdfs://node01:9000/user/hive/warehouse' |
| MANAGEDLOCATION |
| 'hdfs://node01:9000/user/hive/warehouse' |
+---------------------------------------------+