参考:https://cwiki.apache.org/confluence/display/Hive/Design
Hive的元数据主要存储Hive的表和分区等信息。
-
-
- 嵌入式模式
- 嵌入式模式通常只用于测试环境。元数据的存储采用Derby数据库,包括数据库和元数据服务都嵌入在HiveServer进程中。这种方式比较便捷,配置少,但是同时只能支持一个用户,因此常用于测试,不适合生产环境。
-
说明:由于Hive是Hadoop上的一个SQL查询工具,因此安装Hive之前需要先搭建Hadoop环境。这里基于之前搭建的Hadoop环境,具体参见Hadoop课程。
-
鉴于之前Hadoop的版本采用的是2.7.3,与之搭配的Hive版本选2.1.1比较好。因此,这里以Hive 2.1.1为例。
-
Hive的各种版本安装包下载地址为:http://archive.apache.org/dist/hive/ ,进入hive-2.1.1,选择apache-hive-2.1.1-bin.tar.gz二进制安装包,大约143M。或者从我的网盘下载:链接:https://pan.baidu.com/s/1sMlnrcsSacmVMdlSjcgGsg 密码:p7wz
-
第一步:将hive安装包上传到hadoop01的/root目录下。
第二步:解压并设置环境变量
[1] 解压
[root@hadoop01 ~]# cd /opt/
[root@hadoop01 opt]# tar zxf ~/apache-hive-2.1.1-bin.tar.gz
[root@hadoop01 opt]# mv apache-hive-2.1.1-bin hive-2.1.1
[2] 配置环境变量
在/etc/profile追加如下两行:
export HIVE_HOME=/opt/hive-2.1.1
export PATH=$HIVE_HOME/bin:$PATH
执行” . /etc/profile”让环境变量即时生效。或者“source /etc/profile”
第三步:初始化元数据
[root@hadoop01 ~]# cd /opt/hive-2.1.1/
[root@hadoop01 hive-2.1.1]# schematool -dbType derby -initSchema
注意:
[1] 这一步默认会在命令执行的当前目录生成metastore_db元数据库文件;
[2] 后面启动hive的时候也必须在metastore_db所在目录启动。
第四步:启动Hive命令
[root@hadoop01 hive-2.1.1]# hive
hive> show databases;
default
注意:执行这一步需要先启动hdfs和yarn。
第五步:退出Hive命令
hive> quit;
[root@hadoop01 hive-2.1.1]#
-
Hive元数据库支持很多中,包括MySQL、PostgreSQL和Oracle等,但强烈推荐MySQL。
-
去https://dev.mysql.com/downloads/mysql/ 下载对应平台的rpm包进行安装。
-
-
-
- yum在线安装(推荐)
-
-
-
参考:https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-centos-7
如下两个镜像选择一个即可,推荐使用电子科大的国内镜像。
官方镜像(国内下载超级慢):
[root@hadoop01 ~]# wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
国内电子科大镜像(速度很快)
[root@hadoop01 ~]# wget http://mirrors.ustc.edu.cn/mysql-repo/mysql57-community-release-el7-9.noarch.rpm
[root@hadoop01 ~]# rpm -ivh mysql57-community-release-el7-9.noarch.rpm
[root@hadoop01 ~]# yum install mysql-server -y
-
启动
[root@hadoop01 ~]# systemctl start mysqld
查看状态
[root@hadoop01 ~]# systemctl status mysqld
查找root临时密码
MySQL安装的时候默认设置了开机启动,因此不需要再设置。同时,安装过程中为root用户产生了一个临时密码,可以通过如下命令获得。
[root@hadoop01 ~]# grep 'temporary password' /var/log/mysqld.log
-
[root@hadoop01 ~]# mysql_secure_installation
说明:所有询问除了第一个输入’n’之外,其他全部输入’y’。
注意:密码强度要求必须有大写字母,数字和标点符号。这里采用Abcd.1234
[root@hadoop01 ~]# mysql -uroot -p
root密码修改
mysql> grant all privileges on *.* to 'root'@'%' identified by 'Abcd.1234';
-
[root@hadoop01 ~]# mysqladmin -u root -p version
-
第一步:将hive安装包上传到hadoop01的/root目录下。
第二步:解压并设置环境变量
[1] 解压
[root@hadoop01 ~]# cd /opt/
[root@hadoop01 opt]# tar zxf ~/apache-hive-2.1.1-bin.tar.gz
[root@hadoop01 opt]# mv apache-hive-2.1.1-bin hive-2.1.1
查看hive的包目录
[root@hadoop01 hive-2.1.1]# ls -lrt
[2] 配置环境变量
在/etc/profile追加如下两行:
export HIVE_HOME=/opt/hive-2.1.1
export PATH=$HIVE_HOME/bin:$PATH
执行” . /etc/profile”让环境变量即时生效。或者“source /etc/profile”
-
[root@hadoop01 ~]# cd /opt/hive-2.1.1/conf/
[root@hadoop01 conf]# cp hive-default.xml.template hive-site.xml
[root@hadoop01 conf]# cp hive-env.sh.template hive-env.sh
-
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/opt/hadoop-2.7.3
# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/opt/hive-2.1.1/conf
-
确保hive-site.xml中hive.metastore.warehouse.dir的值保持不变:
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
创建tmp目录
[root@hadoop01 ~]# mkdir $HIVE_HOME/tmp
在该文档开始部分的<configuration>下方加入如下配置:
<property>
<name>system:java.io.tmpdir</name>
<value>/opt/hive-2.1.1/tmp</value>
</property>
<property>
<name>system:user.name</name>
<value>root</value>
</property>
设置元数据库
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
<description>
JDBC connect string for a JDBC metastore.
To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriv
-