步骤一、安装hive,配置环境变量
1.上传hive安装包到/opt/software/,进行解压
[hadoop@master software]$ tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt/apps/
2.配置环境变量,使生效
vi /etc/profile
//在最后面放入hive环境变量(只要不放入if-fi之间)
export HIVE_HOME=/opt/apps/hive-1.2.1/
export PATH=$HIVE_HOME/bin:$PATHsource /etc/profile
步骤二、安装MySQL环境
进入目录:cd /opt/software
1.使用wget进入网址获取MySQL安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
--找不到命令的话是没有安装wget,输入
yum install -y wget
安装就可以了,-y表示安装时的所有选项都选yes
2.安装MySQL
rpm -ivh mysql57-community-release-el7-10.noarch.rpm
不过rpm只能安装一次只能安装一个文件,用yum安装所有与MySQL有关的软件文件
yum install -y mysql-server
此过程会有点慢
3.启动MySQL进程
systemctl start mysqld
正常是没有任何反应的,回车后不会出现其他语句,在查询MySQL的守护进程
ps aux|grep mysql
4.登录MySQL
启动MySQL
systemctl enable mysqld
查看MySQL原始密码
cat /var/log/mysqld.log|grep 'A temporary password'
登录MySQL
mysql -u root -p 密码
5.修改MySQL的密码
alter user ‘root’@’localhost’ identified by ‘密码’;
密码的规范:有大小写、标点符号、长度 大于六位数
也可以修改MySQL关于密码的规范参数
首先,修改validate_password_policy参数的值
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
validate_password_length(密码长度)参数默认为8,我们修改为1
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
完成之后再次执行修改密码语句即可成功
mysql> alter user 'root'@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
6.创建hive数据库
创建hive数据库,存储hive的元数据
mysql>create database hive character set latin1;
进行远程连接授权
mysql>grant all on *.* to root@'%' identified by '123456';
mysql>grant all on *.* to root@'localhost' identified by '123456';
mysql>grant all on *.* to root@'master' identified by '123456';
mysql>flush privileges;mysql>grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
注意:如果报ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 43. Created with MySQL 5。
解决方案:错误是由于你曾经升级过数据库,升级完后没有使用。mysql_upgrade升级数据结构造成的。
[root@localhost ~]# mysql_upgrade -u root -p 13456
步骤三、 修改hive配置文件
1.将mysql的驱动包mysql-connecter-5.1.28.bin.jar,放入hive的lib中用来使MySQL和hive连接,存储元数据
可以到MySQL的官网中下载
下载后的jar包在MySQL包里面。
2.配置hive-env.sh(在hive的conf目录中)
将hive-env.sh.template文件复制一份并打开
cp hive-env.sh.template hive-env.sh
vi hive-env.sh
在打开的文件中添加Hadoop和Java的安装路径
HADOOP_HOME=/usr/local/share/applications/hadoop-2.8.1/
JAVA_HOME=/usr/local/share/applications/jdk1.8.0_121/
3.配置hive-site.xml(在hive的conf目录中)
cp hive-default.xml.template hive-site.xml
vi hive-site.xml #找到相应属性修改值。或者删除所有默认配置,重新添加属性
javax.jdo.option.ConnectionURL
jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&useSSL=false&characterEncoding=latin1
JDBC connect string for a JDBC metastore
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
Driver class name for a JDBC metastore
javax.jdo.option.ConnectionUserName
root
username to use against metastore database
javax.jdo.option.ConnectionPassword
123456
password to use against metastore database
步骤四、连接测试
配置完上述属性,本地模式即完成,使用hive命令进行连接测试。前提:集群和mysql都要先启动
首先初始化MySQL的数据库
[hadoop@master bin]$ schematool -dbType mysql -initSchema
再启动
[hadoop@master conf]$ hive
hive> show databases;
OK
default
Time taken: 11.82 seconds, Fetched: 1 row(s)如果没有初始化数据库,导致hive无法执行SQL命令,可以退出重新初始化数据库