目录
一、安装包准备
二、安装mysql
三、hive安装
四、hive启动
五、问题
环境:CentOS7.2.xx、hadoop2.6.4、jdk1.8.0xx、mysql-5.7.38
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张表,并提供类SQL查询功能。hive本身不存数据也不计算,数据存储在hadoop的hdfs中,它也不做数据计算,只是将SQL转化为MapReduce程序。所以部署hive,首先要部署hadoop。此处假设hadoop已部署好且启动正常。
一、安装包准备
二、安装mysql
Hive允许将元数据存储于本地或远程的外部数据库中,这种设置可以支持Hive的多会话生产环境,在本案例中采用MySQL作为Hive的元数据存储库。
1、卸载Centos7自带mariadb
rpm -qa|grep mariadb
# mariadb-libs-5.x.x-1.el7.x86_64
# 卸载
rpm -e mariadb-libs-5.5.x.x-1.el7.x86_64 --nodeps
2、解压安装包:tar -xvf mysql-5.7.38-1.el7.x86_64.rpm-bundle.tar
3、安装
rpm -ivh mysql-community-common-5.7.38-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.38-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.38-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.38-1.el7.x86_64.rpm
4、启动mysql:systemctl start mysqld
5、查看并修改生成的随机密码:cat /var/log/mysqld.log | grep password
# 登录mysql
mysql -u root -p
Enter password: #输入在日志中生成的临时密码
# 更新root密码 设置为root
set global validate_password_policy=0;
set global validate_password_length=1;
set password=password('root');
6、授予远程连接权限:
grant all privileges on *.* to 'root' @'%' identified by '123456';
# 刷新
flush privileges;
三、hive安装
1、解压:tar -xvzf apache-hive-2.3.7-bin.tar.gz
2、修改hive配置文件
cd /opt/hive-2.3.7/apache-hive-2.3.7-bin/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
添加hadoop环境变量:export HADOOP_HOME=/opt/hadoop-2.6.4
新建 hive-site.xml 文件,内容如下,主要是配置存放元数据的 MySQL 的地址、驱动、用户名和密
码等信息。vim hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 存储元数据mysql相关配置 /etc/hosts -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
</configuration>
3、将mysql-jdbc驱动拷贝到hive目录
cp mysql-connector-java-5.1.42.jar /opt/hive-2.3.7/apache-hive-2.3.7-bin/lib/
4、初始化元数据库
cd /opt/hive-2.3.7/apache-hive-2.3.7-bin/bin
./schematool -dbType mysql -initSchema
5、初始化成功会在mysql中创建表
四、hive启动
为了方便使用hive命令,可以添加环境变量
vim /etc/profile
使文件生效:source /etc/profile
启动前确保hadoop已启动
启动hive输入:hive
启动后输入:show databases;能显示默认库即安装成功。
五、问题
中间遇到输入show databases; 一直没反应的问题,查看日志文件,路径在/tmp/root/hive.log
tail -f /tmp/root/hive.log
显示驱动未找到,核实驱动在的。经过百度后发现是配置文件$HIVE_HOME/conf/hive-site.xml内配置有问题:原因是配置文件中的中的内容必须在同一行上且不能有空格,即不能包含换行符和空格,否则就会出错,请检查其它的配置是否还在存在这类问题。