|NO.Z.00010|——————————|Deployment|——|Hadoop&PB级离线数仓.v02|——|Hive.v02|HiveServer2安装配置|
一、metastore远程模式配置规划:
节点 | metastore | client |
Hadoop01 | √ | |
Hadoop02 | √ | |
Hadoop05 | √ |
二、配置并启动HiveServer服务
### --- 将Hadoop02 的 hive 安装文件拷贝到Hadoop01、Hadoop05并配置
[root@hadoop02 servers]# scp -r hive-2.3.7/ hadoop01:$PWD
[root@hadoop02 servers]# scp -r hive-2.3.7/ hadoop05:$PWD
~~~ # 在Hadoop01和Hadoop05配置环境变量
[root@hadoop01 ~]# vim /etc/profile
##HIVE_HOME
export HIVE_HOME=/opt/yanqi/servers/hive-2.3.7
export PATH=$PATH:$HIVE_HOME/bin
[root@hadoop01 ~]# source /etc/profile
~~~ # 安装lsof
[root@hadoop01 ~]# yum install lsof -y
### --- 启动hdfs及yarn服务
~~~ # 启动hdfs和yarn
[root@hadoop01 ~]# start-dfs.sh
[root@hadoop01 ~]# start-yarn.sh
三、配置并启动hive.client服务
### --- 修改Hadoop02上hive-site.xml。
~~~ 删除配置文件中:MySQL的配置、连接数据库的用户名、口令等信息;增加连接metastore的配置:
[root@hadoop02 ~]# vim /opt/yanqi/servers/hive-2.3.7/conf/hive-site.xml
<!-- hive metastore 服务地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://Hadoop01:9083,thrift://Hadoop05:9083</value>
</property>
~~~ # 发送到其它节点
[root@hadoop02 ~]# rsync-script /opt/yanqi/servers/hive-2.3.7/conf/hive-site.xml
### --- 启动hive。此时client端无需实例化hive的metastore,启动速度会加快。
~~~ # 分别在Hadoop01和Hadoop05上执行以下命令,查看连接情况
~~~ # 启动 metastore 服务
[root@hadoop01 ~]# nohup hive --service metastore &
[root@hadoop01 ~]# lsof -i:9083
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 10459 root 513u IPv4 93320 0t0 TCP *:emc-pp-mgmtsvc (LISTEN)
~~~ # 在client.Hadoop02上写入数据
[root@hadoop02 ~]# hive
hive (default)> show databases;
database_name
default
~~~ # 查看hadoop01和hadoop05查看进程的变化
[root@hadoop05 ~]# lsof -i:9083
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 15624 root 513u IPv4 122919 0t0 TCP *:emc-pp-mgmtsvc (LISTEN)
java 15624 root 514u IPv4 123038 0t0 TCP hadoop05:emc-pp-mgmtsvc->hadoop02:56232 (ESTABLISHED)
四、高可用测试
### --- 查看metastore启动状态
~~~ 高可用测试。关闭已连接的metastore服务,发现hive连到另一个节点的服务上,仍然能够正常使用。
[root@hadoop01 ~]# lsof -i:9083
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 11698 root 513u IPv4 108897 0t0 TCP *:emc-pp-mgmtsvc (LISTEN)
[root@hadoop05 ~]# lsof -i:9083
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 15624 root 513u IPv4 122919 0t0 TCP *:emc-pp-mgmtsvc (LISTEN)
java 15624 root 514u IPv4 123038 0t0 TCP hadoop05:emc-pp-mgmtsvc->hadoop02:56232 (ESTABLISHED)
~~~ # 杀掉Hadoop05查看是否会移交接管
[root@hadoop05 ~]# lsof -i:9083
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 15624 root 513u IPv4 122919 0t0 TCP *:emc-pp-mgmtsvc (LISTEN)
java 15624 root 514u IPv4 123038 0t0 TCP hadoop05:emc-pp-mgmtsvc->hadoop02:56232 (ESTABLISHED)
[root@hadoop05 ~]# kill -9 15624
~~~ # 在client.Hadoop02上写入数据
hive (default)> show databases;
[root@hadoop01 ~]# lsof -i:9083
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 11698 root 513u IPv4 108897 0t0 TCP *:emc-pp-mgmtsvc (LISTEN)
java 11698 root 515u IPv4 109976 0t0 TCP hadoop01:emc-pp-mgmtsvc->hadoop02:34556 (ESTABLISHED)
五、HiveServer2配置:HiveServer2配置配置规划:
节点 | HiveServer2 | client(beeline) |
Hadoop02 | √ | |
Hadoop05 | √ |
六、修改Hadoop配置,为HiveServer2准备环境
### --- 修改集群上的 core-site.xml,增加以下内容:
[root@hadoop01 ~]# vim /opt/yanqi/servers/hadoop-2.9.2/etc/hadoop/core-site.xml
<!-- HiveServer2 连不上10000;hadoop为安装用户 -->
<!-- root用户可以代理所有主机上的所有用户 -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
[root@hadoop01 ~]# stop-dfs.sh
### --- 修改 集群上的 hdfs-site.xml,增加以下内容:
[root@hadoop01 ~]# vim /opt/yanqi/servers/hadoop-2.9.2/etc/hadoop/hdfs-site.xml
<!-- HiveServer2 连不上10000;启用 webhdfs 服务 -->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
~~~ # 发送到其它节点上
[root@hadoop01 ~]# rsync-script /opt/yanqi/servers/hadoop-2.9.2/etc/hadoop/
[root@hadoop01 ~]# start-dfs.sh
七、配置并启动HiveServer2服务
### --- 启动hadoop05上的 HiveServer2 服务
### --- 通过浏览器检查hiveserver2的启动情况http://Hadoop05:10002/
~~~ # 启动 hiveserver2 服务
[root@hadoop05 ~]# nohup hiveserver2 &
~~~ # 检查 hiveserver2 端口
[root@hadoop05 ~]# lsof -i:10000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 15888 root 521u IPv4 128333 0t0 TCP *:ndmp (LISTEN)
~~~ # 从2.0开始,HiveServer2提供了WebUI

### --- 启动Hadoop02节点上的 beeline
~~~ Beeline是从 Hive 0.11版本引入的,是 Hive 新的命令行客户端工具。
~~~ Hive客户端工具后续将使用Beeline 替代 Hive 命令行工具 ,
~~~ 并且后续版本也会废弃掉 Hive 客户端工具。
[root@hadoop02 ~]# /opt/yanqi/servers/hive-2.3.7/bin/beeline # 什么都没有连接上
Beeline version 2.3.7 by Apache Hive
beeline> !connect jdbc:hive2://hadoop05:10000 # 连接到数据库上:JDBC用户名:root;密码:空格
0: jdbc:hive2://hadoop05:10000> show databases; # 此刻可以查询到数据
+----------------+
| database_name |
+----------------+
| default |
+----------------+
beeline> !connect jdbc:hive2://hadoop05:10000
Enter username for jdbc:hive2://hadoop05:10000: root
Enter password for jdbc:hive2://hadoop05:10000: *
八、HCatalog
### --- HCatalog
~~~ # 进入 hcat 所在目录。$HIVE_HOME/hcatalog/bin
[root@hadoop02 ~]# cd $HIVE_HOME/hcatalog/bin
~~~ # 执行命令,创建表
[root@hadoop02 bin]# ./hcat -e "create table default.test1(id string, name string, age int)"
~~~ # 长命令可写入文件,使用 -f 选项执行
[root@hadoop02 bin]# ./hcat -f createtable.txt
~~~ # 查看元数据
[root@hadoop02 bin]# ./hcat -e "use mydb; show tables"
~~~ # 查看表结构
[root@hadoop02 bin]# ./hcat -e "desc mydb.emp"
~~~ # 删除表
[root@hadoop02 bin]# ./hcat -e "drop table default.test1"
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
dov001-PB离线数仓
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」