Hive - [02] 安装部署
一、相关链接地址
- Hive官网:https://hive.apache.org/
- Hive下载页面:https://downloads.apache.org/hive/
- 中科大镜像地址:http://mirrors.ustc.edu.cn/apache/hive/hive-3.1.2/
- 清华大学镜像地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/
- 镜像地址:https://dlcdn.apache.org/hive/
二、准备工作
Hive版本:apache-hive-3.1.2,角色规划如下
节点 | node01 | node02 | node03 |
server | ○ | ||
client | ○ | ○ | ○ |
三、Local模式
以derby作为hive的元数据库
1、将 apache-hive-3.1.2-bin.tar.gz
上传到 node03节点的 /opt/software
目录下,并解压到 /opt/module
目录
[root@node03 software]# tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/module/
[root@node03 software]# cd /opt/module/apache-hive-3.1.2-bin
[root@node03 apache-hive-3.1.2-bin]# ll
total 56
drwxr-xr-x 3 root root 157 Jun 7 00:19 bin
drwxr-xr-x 2 root root 4096 Jun 7 00:19 binary-package-licenses
drwxr-xr-x 2 root root 4096 Jun 7 00:19 conf
drwxr-xr-x 4 root root 34 Jun 7 00:19 examples
drwxr-xr-x 7 root root 68 Jun 7 00:19 hcatalog
drwxr-xr-x 2 root root 44 Jun 7 00:19 jdbc
drwxr-xr-x 4 root root 12288 Jun 7 00:19 lib
-rw-r--r-- 1 root root 20798 Aug 23 2019 LICENSE
-rw-r--r-- 1 root root 230 Aug 23 2019 NOTICE
-rw-r--r-- 1 root root 2469 Aug 23 2019 RELEASE_NOTES.txt
drwxr-xr-x 4 root root 35 Jun 7 00:19 scripts
2、修改配置文件 hive-env.sh
,配置HADOOP_HOME
# 查看解压后的hive目录
[root@node03 apache-hive-3.1.2-bin]# cd conf/
[root@node03 conf]# ll
total 332
-rw-r--r-- 1 root root 1596 Aug 23 2019 beeline-log4j2.properties.template
-rw-r--r-- 1 root root 300482 Aug 23 2019 hive-default.xml.template
-rw-r--r-- 1 root root 2365 Aug 23 2019 hive-env.sh.template
-rw-r--r-- 1 root root 2274 Aug 23 2019 hive-exec-log4j2.properties.template
-rw-r--r-- 1 root root 3086 Aug 23 2019 hive-log4j2.properties.template
-rw-r--r-- 1 root root 2060 Aug 23 2019 ivysettings.xml
-rw-r--r-- 1 root root 3558 Aug 23 2019 llap-cli-log4j2.properties.template
-rw-r--r-- 1 root root 7163 Aug 23 2019 llap-daemon-log4j2.properties.template
-rw-r--r-- 1 root root 2662 Aug 23 2019 parquet-logging.properties
# 备份 hive-env.sh
[root@node03 conf]# cp -a hive-env.sh.template hive-env.sh
# 配置HADOOP_HOME
[root@node03 conf]# vim hive-env.sh
# 已配置HADOOP_HOME路径
[root@node03 conf]# cat hive-env.sh | grep -i HADOOP_HOME
# Set HADOOP_HOME to point to a specific hadoop install directory
# HADOOP_HOME=${bin}/../../hadoop
HADOOP_HOME=/opt/module/hadoop-2.5.2
[root@node03 conf]#
3、启动Zookeeper、HDFS(ZKFC、JournalNode、NameNode、DataNode)、Yarn(ResourceManager、NodeManager)
# 启动Zookeeper
cd /opt/module/zookeeper-3.4.5
bin/zkServer.sh restart
# 启动HDFS&Yarn
cd /opt/module/hadoop-2.5.2
sbin/start-all.sh
4、初始化配置(dbType=derby)
cd /opt/module/apache-hive-3.1.2-bin
bin/schematool -dbType derby -initSchema
初始化时,遇到如下报错,经过分析,是hadoop和hive的jar包冲突。
解决方法:从hadoop的guava-27.0-jre.jar拷贝到hive的lib目录中,guava-19.0.jar可以mv到其他地方。
具体操作命令如下
[root@node03 ~]# ll /opt/module/hadoop-3.2.1/share/hadoop/common/lib/guava-27.0-jre.jar
-rw-r--r-- 1 root root 2747878 9月 10 2019 /opt/module/hadoop-3.2.1/share/hadoop/common/lib/guava-27.0-jre.jar
[root@node03 ~]#
[root@node03 ~]# ll /opt/module/apache-hive-3.1.2-bin/lib/guava-19.0.jar
-rw-r--r-- 1 root root 2308517 9月 27 2018 /opt/module/apache-hive-3.1.2-bin/lib/guava-19.0.jar
[root@node03 ~]#
[root@node03 ~]# mkdir /home/bak_hive
[root@node03 ~]# mv /opt/module/apache-hive-3.1.2-bin/lib/guava-19.0.jar /home/bak_hive/
[root@node03 ~]# cp -a /opt/module/hadoop-3.2.1/share/hadoop/common/lib/guava-27.0-jre.jar /opt/module/apache-hive-3.1.2-bin/lib/
重新进行初始化
5、访问hive
四、单用户模式
以mysql作为hive的元数据库
1、如果在此之前部署并运行了Local模式,需要先将Local模式产生的文件(日志和元数据)清除掉
2、配置conf/hive-site.xml(hive-default.xml.template是hive配置的很多参数,可以清空,只写入下面demo的配置。)
<configuration>
<!-- Hive数据仓库存储的位置;Hadoop中HDFS的位置 -->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/data/hive/data/</value>
</property>
<!-- 本地单用户启动 -->
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<!-- ------------------JDBC数据源配置------------------- -->
<!-- 连接路径 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.1.131:3306/hive?createDatabaseIfNotExist=true</value>
<!-- 创建数据库(true)、SSL(false)、时区(GMT)、批量执行(true)、返回主键(true) -->
</property>
<!-- 驱动包 -->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<!-- 数据库账号 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<!-- 数据库密码 -->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>!QAZ2wsx..</value>
</property>
</configuration>
3、将mysql的jdbc jar包放到/opt/module/apache-hive-3.1.2-bin/lib
下(我的mysql是8.0.28,所以是mysql-connector-java-8.0.28.jar)
4、在MySQL中授权root用户可以从任意主机连接
# 登录 MySQL(使用新设置的密码)
mysql -u root -p
# 授权 root 用户可以从任何 IP 访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_new_password' WITH GRANT OPTION;
# 如果你想限制特定的远程主机访问,可以替换 '%' 为具体的 IP 地址或网段
GRANT ALL PRIVILEGES ON *.* TO 'root'@'your_remote_ip_or_subnet' IDENTIFIED BY 'your_new_password' WITH GRANT OPTION;
# 刷新权限以应用更改
FLUSH PRIVILEGES;
5、初始化元数据,之后可以在mysql数据库中发现有一个hive的数据库,并且该数据库下有74张表。
bin/schematool -dyType mysql -initSchema
6、启动metastore(已测无效)
bin/hive -service metastore
7、访问hive,进行建库建表,然后观察hdfs上对应目录下的变化
bin/hive
8、向测试表插入几条数据,观察hdfs上该目录下的变化
五、多用户模式
— 要养成终生学习的习惯 —
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南