盛年不重来,一日难再晨,及时当勉励,岁月不待人。这篇文章主要讲述Hive 安装相关的知识,希望能为你提供帮助。
一、安装说明
1、Hive 的依赖软件
- mysql 数据库 --- 用来保存 元数据信息
- Hadoop 集群 --- Hive 数据存放在 HDFS 分布式文件系统
- 目前存在 Hive 1.x.y、2.x.y、3.x.y的版本,安装时注意和 Hadoop 版本的匹配关系
- Hive 1.2.2 是 1.x.y 系列最后一个版本,全线匹配的 Hadoop 为 1.x.y 、2.x.y的所有版本
- Hive 2.1.1 是 2.x.y 系列中第四个版本,匹配的 Hadoop 版本为全线的所有2.x.y的版本
- Hive 不仅与 Hadoop 有版本匹配要求,Hive 与 Hbase 、Hadoop 与 Hbase 同样如此,安装时要注意版本兼容性
[root@hadoop01 ~]# wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
[root@hadoop01 ~]# yum -y install mysql57-community-release-el7-11.noarch.rpm[root@hadoop01 ~]# sed -i "s/gpgcheck=1/gpgcheck=0/" /etc/yum.repos.d/mysql-community.repo
[root@hadoop01 ~]# yum -y install mysql-community-server[root@hadoop01 ~]# service mysqld restart
[root@hadoop01 ~]# netstat -lntp | grep 3306
tcp600 :::3306:::*LISTEN2833/mysqld[root@hadoop01 ~]# grep "password" /var/log/mysqld.log | grep root
2022-02-24T09:41:34.363262Z 1 [Note] A temporary password is generated for root@localhost: cx;
!4sKaIMmL[root@hadoop01 ~]# mysql -uroot -pcx;
!4sKaIMmLmysql>
alter user root@localhost identified by Testdb3306!;
#进入数据库第一步就必须更改
Query OK, 0 rows affected (0.01 sec)mysql>
show variables like validate_password%;
#Mysql 数据库口令规则要求
+--------------------------------------+--------+
| Variable_name| Value|
+--------------------------------------+--------+
| validate_password_check_user_name| OFF|
| validate_password_dictionary_file||
| validate_password_length| 8|
| validate_password_mixed_case_count| 1|
| validate_password_number_count| 1|
| validate_password_policy| MEDIUM |
| validate_password_special_char_count | 1|
+--------------------------------------+--------+
7 rows in set (0.01 sec)mysql>
set global validate_password_policy=0;
#更改数据库用户口令规则
Query OK, 0 rows affected (0.00 sec)mysql>
show variables like validate_password%;
+--------------------------------------+-------+
| Variable_name| Value |
+--------------------------------------+-------+
| validate_password_check_user_name| OFF|
| validate_password_dictionary_file||
| validate_password_length| 8|
| validate_password_mixed_case_count| 1|
| validate_password_number_count| 1|
| validate_password_policy| LOW|
| validate_password_special_char_count | 1|
+--------------------------------------+-------+
7 rows in set (0.00 sec)mysql>
alter user root@localhost identified by MYdb3306!;
Query OK, 0 rows affected (0.00 sec)mysql>
grant all privileges on *.* to root@% identified by Root1234!;
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql>
flush privileges;
Query OK, 0 rows affected (0.01 sec)
三、Hive 安装 1、前提条件?依照安装说明中所示,要安装 Hive ,前提是安装并成功运行了下面的服务相关:
- 系统初始化防火墙时间同步之类的,就自然而然不用说了
- 正确安装 JDK ,并配置好了环境变量
- 必须安装 Hadoop 集群并正常运行服务 ( 分布式集群 或者 伪分布式集群 都可以的 )
- 如果是分布式的 Hadoop 集群,安装 Hive 现在 NameNodeMaster 服务器安装
- 必须安装 Mysql 数据库 ( 5.7.X 、8.0.X 版本即可 ) ,并正常运行服务
1、解压安装
[root@hadoop01 ~]# tar -zxvf apache-hive-2.1.1-bin.tar.gz -C /usr/local
[root@hadoop01 ~]# cd /usr/local
[root@hadoop01 local]# mv apache-hive-2.1.1-bin/ hive2、 更改配置文件
[root@hadoop01 local]# cd hive
[root@hadoop01 hive]# cp hive-env.sh.template hive-env.sh
[root@hadoop01 hive]# cp hive-log4j2.properties.template hive-log4j2.properties#hive-site.xml 是 Hive 的主配置文件,手动编写一个即可
[root@hadoop01 hive]# vim hive-site.xml
<
configuration>
<
property>
<
name>
hive.metastore.warehouse.dir<
/name>
<
value>
/data/hive/warehouse<
/value>
<
/property>
<
property>
<
name>
hive.metastore.local<
/name>
<
value>
true<
/value>
<
/property>
<
property>
<
name>
javax.jdo.option.ConnectionURL<
/name>
<
value>
jdbc:mysql://10.6.2.237:3306/hivedb?createDatabaseIfNotExist=true&
amp;
useSSL=false<
/value>
<
/property>
<
property>
<
name>
javax.jdo.option.ConnectionUserName<
/name>
<
value>
root<
/value>
<
/property>
<
property>
<
name>
javax.jdo.option.ConnectionPassword<
/name>
<
value>
Root1234!<
/value>
<
/property>
<
property>
<
name>
javax.jdo.option.ConnectionDriverName<
/name>
<
value>
com.mysql.jdbc.Driver<
/value>
<
/property>
<
property>
<
name>
hive.cli.print.header<
/name>
#此选项非必须
<
value>
true<
/value>
<
/property>
<
property>
<
name>
hive.cli.print.current.db<
/name>
#此选项非必须
<
value>
true<
/value>
<
/property>
<
/configuration>
[root@hadoop01 hive]# vim /usr/local/hive/conf/hive-env.sh#在文件上面加上下面三行
JAVA_HOME=/usr/local/jdk1.8.0_131
export HADOOP_HOME=/usr/local/hadoop
export HIVE_CONF_DIR==/usr/local/hive/conf[root@hadoop01 hive]# vim /usr/local/hive/conf/hive-log4j2.properties#加上下面这行,定义日志输出路径
property.hive.log.dir = /usr/local/hive/logs3、设置环境变量
[root@hadoop01 ~]# cp /etc/profile /etc/profile.bak2
[root@hadoop01 ~]# vim /etc/profile#增加上面两行到文件的末尾
export HIVE_HOME=/usr/local/hive
export PATH=.:$PATH:$HIVE_HOME/bin[root@hadoop01 ~]# source /etc/profile
3、创建 Hive 库
[root@hadoop01 ~]# mysql -uroot -pMYdb3306!mysql>
create database hivedb;
Query OK, 1 row affected (0.00 sec)mysql>
flush privileges;
Query OK, 0 rows affected (0.01 sec)mysql>
exit[root@hadoop01 ~]# service mysqld restart
4、上传驱动包
[root@hadoop01 ~]# cd /usr/local/hive/lib
[root@hadoop01 ~]# pwd
/usr/local/hive/lib# 将 java 连接 mysql 的驱动包文件,上传到此目录下 ,包名为: mysql-connector-java-5.x.y-bin.jar
5、初始化并启动
[root@hadoop01 ~]# schematool -dbType mysql -initSchema
which: no hbase in (.:.:.:.:.:.:.:.:.:.:.:.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/jdk1.8.0_131/bin:/usr/local/zookeeper/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:/root/bin:/usr/local/jdk1.8.0_131/bin:/usr/local/zookeeper/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:/usr/local/hive/bin:/usr/local/jdk1.8.0_131/bin:/usr/local/zookeeper/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:/usr/local/hive/bin:/usr/local/hbase/bin)
SLF4J: Class path contains multiple SLF4J bindings.
......#上面提示 "which: no hbase in" 是因为没有安装 Hbase 的缘故,不影响 Hive 的正常使用,请忽略之 #疑问:
#1、我在搭建的伪集群上安装了 1.2.1 版本的 hive ,初始化的时候没有这个提示,不知道是不是我安装的问题
#2、开始初始化的时候报错如下:
Error: Syntax error: Encountered "<
EOF>
" at line 1, column 64. (state=42X01,code=30000)
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
*** schemaTool failed ***#后面网上搜索的解决方案是进数据库里面 ---alter database hivedb character set latin1 这个是字符集的问题,比较奇怪,以前 1.2.1 版本的安装过多次都没有报错[root@hadoop01 ~]# hive
which: no hbase in (.:.:.:.:.:.:.:.:.:.:.:.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/jdk1.8.0_131/bin:/usr/local/zookeeper/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:/root/bin:/usr/local/jdk1.8.0_131/bin:/usr/local/zookeeper/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:/usr/local/hive/bin:/usr/local/jdk1.8.0_131/bin:/usr/local/zookeeper/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:/usr/local/hive/bin:/usr/local/hbase/bin)
SLF4J: Class path contains multiple SLF4J bindings.
... ...
different execution engine (i.e. spark, tez) or using Hive 1.X releases.hive (default)>
hive (default)>
#到此就是 Hive 的命令操作符位置
四、使用测试 1、创建数据库
[root@hadoop01 ~]# hive
... ...#省略一些不重要的输出
hive (default)>
show databases;
OK
database_name
default
Time taken: 2.107 seconds, Fetched: 1 row(s)hive (default)>
create database testhive;
OK
Time taken: 0.32 secondshive (default)>
show databases;
OK
database_name
default
testhive
Time taken: 0.035 seconds, Fetched: 2 row(s)hive (default)>
exit;
2、查看验证?1、终端里面命令行查看
[root@hadoop01 ~]# hadoop fs -lsr / | grep testhive
drwxr-xr-x- root supergroup0 2022-03-06 04:24 /data/hive/warehouse/testhive.db
【Hive 安装】2、在 WEB 界面查看

文章图片
推荐阅读
- vm虚拟机安装CentOS8.2服务器系统
- docker-compose概述与编排部署
- OpenHarmony基线功能之文件管理
- RocketMQ高可用设计之消息重试机制
- 14 款命令行常用工具的替代品!
- Hello Blazor(启用深色模式 #yyds干货盘点#)
- PMP相关的十八种图总结及图例
- GDP Streaming RPC 设计
- Spring源码解析之八finishBeanFactoryInitialization方法即初始化单例bean