8.3 Hive的安装和配置
安装模式:
- 嵌入模式 :不需要使用MySQL,需要Hive自带的一个关系型数据库:Derby
- 本地模式、远程模式 ----> 需要MySQL数据库的支持
安装 hive 安装包
1、解压
tar -zxvf apache-hive-2.3.0-bin.tar.gz -C ~/training/
2、设置环境变量:
vi ~/.bash_profile
HIVE_HOME=/root/training/apache-hive-2.3.0-bin
export HIVE_HOME
PATH=$HIVE_HOME/bin:$PATH
export PATH
source ~/.bash_profile
核心的配置文件 conf/hive-site.xml
8.3.1 嵌入模式
在嵌入模式下,在哪个目录下执行的数据库初始化,就应该在哪个目录下执行: hive
- 使用Hive自带的Derby数据库来存储元信息
- Hive只支持一个连接:创建 conf/hive-site.xml
- 用于开发和测试,不能用于生产环境
参数文件 | 配置参数 | 参考值 |
---|---|---|
hive-site.xml | javax.jdo.option.ConnectionURL | jdbc:derby:;databaseName=metastore_db;create=true |
javax.jdo.option.ConnectionDriverName | org.apache.derby.jdbc.EmbeddedDriver | |
hive.metastore.local | true | |
hive.metastore.warehouse.dir | file:///root/training/apache-hive-2.3.0-bin/warehouse |
conf/hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=metastore_db;create=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>file:///root/training/apache-hive-2.3.0-bin/warehouse</value>
</property>
</configuration>
初始化MetaStore:
schematool -dbType derby -initSchema
通过find -name 文件名可以查看文件所在的位置
启动hive
日志:
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive 测试:创建学生表
创建的学生表在 conf/hive-site.xml 配置文件的设置的路径下
8.3.2 安装配置MySQL数据库
在虚拟机上安装MySQL:
yum remove mysql-libs
rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.19-1.el7.x86_64.rpm (可选)
启动MySQL:service mysqld start
或者:systemctl start mysqld.service
修改MySQL密码
查看root用户的密码:cat /var/log/mysqld.log | grep password
登录后修改密码:alter user ‘root’@‘localhost’ identified by ‘Welcome_1’;
MySQL数据库的配置:
创建一个新的数据库:create database hive;
创建一个新的用户:create user ‘hiveowner’@‘%’ identified by ‘Welcome_1’;
给该用户授权
grant all on hive.* TO ‘hiveowner’@‘%’;
grant all on hive.* TO ‘hiveowner’@‘localhost’ identified by ‘Welcome_1’;
8.3.3 远程模式
远程模式:MySQL
- 配置MySQL的数据库:http://www.mysqlfront.de/
- 配置hive-site.xml: JDBC的参数
- 把MySQL数据库的驱动放到: Hive/lib下
- 初始化MySQL数据库
- 老版本的Hive:第一次运行Hive
- 新版本的hive:schematool -dbType mysql -initSchema
参数文件 | 配置参数 | 参考值 |
---|---|---|
hive-site.xml | javax.jdo.option.ConnectionURL | jdbc:mysql://localhost:3306/hive?useSSL=false |
javax.jdo.option.ConnectionDriverName | com.mysql.jdbc.Driver | |
javax.jdo.option.ConnectionUserName | hiveowner | |
javax.jdo.option.ConnectionPassword | Welcome_1 |
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hiveowner</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>Welcome_1</value>
</property>
</configuration>
初始化MetaStore:
schematool -dbType derby -initSchema
网页端查看hive表
启动hive,然后创建测试学生表,同嵌入模式一样,然后通过网页的方式进行查询
需要停止Hadoop环境,修改hdfs-site.xml,打开禁用HDFS的权限检查的功能,然后重新启动