版本说明
计算机系统:ubuntu16.04
hive版本:0.12.0
hadoop版本:2.7.3
mysql版本:5.7.19
一.mysql在ubuntu安装
sudo apt-get update
sudo apt-get install mysql-server mysql-client
在"软件包设置对话框"中输入mysql中"root"用户的密码-->回车-->再输一次密码-->回车,安装完成。
启动服务:sudo service mysql start
启动客户端:mysql -uroot -p123456root与root分别是用户名和密码
如果如上图所示成功进入客户端证明安装成功!
二.hive本地安装(前提是hadoop可以正常运行)
1.修改/etc/profile文件,添加hive环境变量
export HIVE_HOME=/usr/local/hive-0.12.0
export PATH=$HIVE_HOME/bin:$PATH
export CLASSPATH=$HIVE_HOME/lib:$CLASSPATH
2.输入命令hive
3.输入命令 show databases;
如果输出如上图所示则成功安装安装hive
三.集成mysql与hive(mysql作为hive 的元数据仓库)
1.为Hive建立相应的MySQL账户,并赋予足够的权限,执行命令如下:
hadoop@ubuntu:~$ mysql -uroot -p123456
mysql> CREATE USER 'hive' IDENTIFIED BY '123456';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;
mysql> flush privileges;
2.默认情况下Mysql只允许本地登录,所以需要修改配置文件将地址绑定给注释掉:
root@ubuntu:~# vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到如下内容:
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address = 127.0.0.1
3.重启mysql服务:
sudo service mysql restart
4.建立 Hive 专用的元数据库,记得创建时用刚才创建的“hive”账号登陆。
hadoop@ubuntu:~$ mysql -uhive -p123456
mysql> create database hive;
5.在hive解压目录下的conf下面执行
cp hive-default.xml.template hive-site.xml
6.修改hive-site.xml文件
hive.metastore.local
false
javax.jdo.option.ConnectionURL
jdbc:mysql://master:3306/hive?characterEncoding=UTF-8
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
hive
javax.jdo.option.ConnectionPassword
123456
hive.metastore.schema.verification
false
hive.metastore.uris
thrift://master:9083
注意!把configuration里面多余的property去掉,因为里面有很多默认的东西与现在的配置冲突,比如说后面有一个javax.jdo.option.ConnectionUserName的配置项是value值是APP,但是其配置的对象是derby数据库,因此会导致hive连不上进而出现错误
6.把MySQL的JDBC驱动包复制到Hive的lib目录下。
JDBC驱动包的版本:mysql-connector-java-5.1.28.jar
7.启动hive远程服务
root@master:/usr/local/hive-0.12.0/conf# hive --service metastore
效果如上图
8.启动hive客户端
打开另一个终端输入命令
root@master:/usr/local/hive-0.12.0/conf# hive
9.输入命令
show databases;
显示如下
10.创建一张表
输入以下语句
create table psn(
id int,
name string,
likes ARRAY ,
address MAP
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
COLLECTION ITEMS TERMINATED BY '-'
MAP KEYS TERMINATED BY ':';
效果如下则是创建成功
至此hive集成mysql完成!