一、本地模式介绍
特点:
- 需要安装配置MySQL数据库替代derby存储元数据
- 可以支持多个连接
- MySQL在本机中
二、准备工作:
解压 tar -zxvf apache-hive-2.3.0-bin.tar.gz -C ~/training/
设置环境变量 vi ~/.bash_profile
#HIVE_HOME
export HIVE_HOME=/root/software/apache-hive-2.3.0-bin
export PATH=$PATH:$HIVE_HOME/bin
使环境变量生效
source ~/.bash_profile
三、安装配置MySQL数据库
首先在Linux下干净卸载mysql
1、停止mysql服务 service mysqld stop
2、使用以下命令查看当前安装mysql情况
rpm -qa | grep -i mysql
3、删除之前安装的mysql
删除命令:rpm -e 包名
如果提示依赖包错误,则使用以下命令尝试强制删除
-v:显示指令执行过程;
rpm -ev mysql-community-libs-5.6.37-2.el7.x86_64 --nodeps
yum remove mysql-libs 再次删除MySQL依赖包
如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1
则用以下命令尝试:
rpm -e --noscripts 包名
(rpm --noscripts命令意思是忽略RPM包的脚本执行屏蔽rpm包中的异常脚本)
4、查找之前老版本mysql的目录、并且删除老版本mysql的文件和库
find / -name mysql
查找出结果
/var/lib/mysql
/var/lib/mysql/mysql
删除对应的mysql目录
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql
查找目录并删除
注意:卸载后/etc/my.cnf不会删除,需要进行手工删除
rm -rf /etc/my.cnf
5、安装mysql
rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.18-1.el7.x86_64.rpm (可选,但还是装上,后面装HUE的时候会用到。)
注意:复制安装时注意版本问题,看一下复制版本和你的版本相同吗?
安装rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm可能出现以下错误(本人亲身体会)
[root@HP110 software]# rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm
warning: mysql-community-server-5.7.19-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
net-tools is needed by mysql-community-server-5.7.19-1.el7.x86_64
解决方法
启动MySQL:service mysqld start -->CentOS6
或者:systemctl start mysqld.service -->CentOS7
查看root用户的密码:cat /var/log/mysqld.log | grep password
登录MySQL:mysql -uroot -p
登录后修改密码:alter user 'root'@'localhost' identified by '修改的密码';
mysql> alter user 'root'@'localhost' identified by 'root';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
错误1819 (HY000):您的密码不满足当前的策略要求,密码设置过小
此时需要修改级别与最小的默认密码位数
set global validate_password_policy=0; 因密码过于简单,调整MySQL密码验证规则
set global validate_password_length=4; 密码长度限制 ,这个值最小要是4
然后再进行设置密码就好了
mysql> alter user 'root'@'localhost' identified by 'root';
MySQL数据库的配置:
创建一个新的数据库:create database hive;
创建一个新的用户:
create user 'hiveowner'@'%' identified by '修改的密码';
给该用户授权
grant all on hive.* TO 'hiveowner'@'%';
grant all on hive.* TO 'hiveowner'@'localhost' identified by '修改的密码';
MySQL可视化免费工具:http://www.mysqlfront.de/
付费工具:Navicat for MySQL(可破解)
四、修改配置文件
进入配置文件:cd /root/training/apache-hive-2.3.0-bin/conf
创建:vi hive-site.xml 本来没有此文件
vi hive-default.xml.template 复制头文件然后开始配置(只需要头文件)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--连接MySQL-->
<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>
<!--设置MySQL的密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>MySQL的密码</value>
</property>
</configuration>
初始化MetaStore:schematool -dbType mysql -initSchema
这里会出现这个错误:
org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver
Underlying cause: java.lang.ClassNotFoundException : com.mysql.jdbc.Driver
Use --verbose for detailed stacktrace.
*** schemaTool failed ***
错误原因:没有上传mysql的驱动
解决方法:在/root/training/hive-2.3.0/lib里放mysql-connector-java-5.0.8-bin.jar驱动。
注意:如果没有启动 HDFS 会出错,先执行以下 start-dfs.sh 命令
再去启动 Hive –> [root@bigdata111 ~]# hive 即可