Hive 安装

盛年不重来,一日难再晨,及时当勉励,岁月不待人。这篇文章主要讲述Hive 安装相关的知识,希望能为你提供帮助。
一、安装说明 1、Hive 的依赖软件

  • mysql 数据库 --- 用来保存 元数据信息
  • Hadoop 集群 --- Hive 数据存放在 HDFS 分布式文件系统
2、版本说明
  • 目前存在 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 同样如此,安装时要注意版本兼容性
二、Mysql 安装
[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 版本即可 ) ,并正常运行服务
2、安装过程
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 界面查看
Hive 安装

文章图片


    推荐阅读