本文主要记录hive安装的过程,因为hive默认的是derby进行存储元数据,为方便多客户端开启,更换使用mysql进行存储元数据,则涉及到内容:hive的安装,mysql的安装,mysql用户名密码更改。
1、下载hive安装包(下载的是1.x版本,该版本用的是mapreduce。2.x用的是spark)
官网下载最新的1.x安装包
https://mirror.bit.edu.cn/apache/hive/hive-1.2.2/
2、上传解压
[root@bigdata121 software]# tar -zxvf apache-hive-1.2.2-bin.tar.gz -C /opt/module/
修改文件夹名称
[root@bigdata121 module]# mv apache-hive-1.2.2-bin/ hive-1.2
3、添加修改配置文件 hive-env.sh
[root@bigdata121 conf]# cp hive-env.sh.template hive-env.sh
[root@bigdata121 conf]# vi hive-env.sh
新增内容
HADOOP_HOME=/opt/module/hadoop-2.7.3
export HIVE_CONF_DIR=/opt/module/hive-1.2/conf
4、启动hive(前提:hadoop已启动)
[root@bigdata121 hive-1.2]# bin/hive
1、检查mysql是否安装
[root@bigdata121 ~]# yum list installed | grep mysql
2、mysql依赖libaio,需要先安装libaio
检索相关信息
[root@bigdata121 ~]# yum search libaio
安装依赖包
[root@bigdata121 ~]# yum install libaio
3、下载mysql yum repository
[root@bigdata121 ~]# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
如果wget命令不能用,需要先安装wget,请先执行 yum install wget 安装 wget。
4、添加mysql yum repository
[root@bigdata121 ~]# yum localinstall mysql-community-release-el7-5.noarch.rpm
5、验证是否添加成功
[root@bigdata121 ~]# yum repolist enabled | grep "mysql.*-community.*"
6、查看mysql版本
[root@bigdata121 ~]# yum repolist all | grep mysql
7、安装mysql
[root@bigdata121 ~]# yum install mysql-community-server
8、执行查看内容
查看mysql相关信息:
[root@bigdata121 ~]# rpm -qi mysql-community-server.x86_64 0:5.6.24-3.el7
查看mysql安装目录
[root@bigdata121 ~]# whereis mysql
启动mysql server
[root@bigdata121 ~]# systemctl start mysqld
查看mysql server 状态
[root@bigdata121 ~]# systemctl status mysqld
关闭mysql server
[root@bigdata121 ~]# systemctl stop mysqld
打开客户端使用,验证是否安装成功
[root@bigdata121 ~]# mysql
远程访问mysql,需要放开3306端口号
运行一下两条命令
[root@bigdata121 ~]# firewall-cmd --permanent --zone=public --add-port=3306/tcp
[root@bigdata121 ~]# firewall-cmd --permanent --zone=public --add-port=3306/udp
重启防火墙
[root@bigdata121 ~]# firewall-cmd --reload
[root@bigdata121 ~]# mysql_secure_installation;
再次进入客户端时,需要输入用户名+密码
[root@bigdata121 ~]# mysql -uroot -proot
1、登录mysql
[root@bigdata121 ~]# mysql -uroot -proot
2、切换到存储用户名和密码的数据库
mysql> use mysql;
3、修改密码
mysql> update user set password=password('123456') where user='root';
4、刷新用户列表
mysql> flush privileges;
5、退出mysql
mysql> exit;
6、服务重启
[root@bigdata121 ~]# service mysqld restart
生效后,再次登录,需要使用新的密码
7、mysql开启远程
想要其它电脑使用这台服务mysql,需要开启远程
首先查看mysql库得user表数据
mysql> select Host,User,Password from mysql.user;
+------------+------+-------------------------------------------+
| Host | User | Password |
+------------+------+-------------------------------------------+
| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| bigdata121 | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| 127.0.0.1 | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| ::1 | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| localhost | | |
| bigdata121 | | |
+------------+------+-------------------------------------------+
从结果中可以看到,MySql只允许使用root用户从localhost,127.0.0.1,bigdata121(这个是我给本机起得别名)和::1(是Ipv6地址127.0.0.1的缩写,也就是本机)主机上进行连接,也就是只能从本机连接。
我们使用SQL语句将::1改为通配符%,所有ip都可以连接
mysql> update mysql.user set `Host`='%' where `Host`='::1' and User = 'root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
执行生效
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
1、拷贝mysql驱动到hive/lib
mysql-connector-java-5.1.39.jar
2、添加hive-site.xml
1、启动hdfs
[root@bigdata121 conf]# start-dfs.sh
2、启动yarn
[root@bigdata121 conf]# start-yarn.sh
或者 start-all.sh
启动完成后,再启动hive
3、启动成功后,可以查看下mysql中是否已经创建了数据库metastor
[root@bigdata121 sbin]# mysql -uroot -p123456
显示以下信息,代表成功
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| metastore |
| mysql |
| performance_schema |
+--------------------+
4 rows in set (0.01 sec)