这次的工作是搞一个基于大数据的报表系统,要用到HIVE和SPARK, 先学习一下怎么用HIVE吧,把学习过程记录下来方便以后查阅。
1. 安装HIVE和HADOOP- 首先下载HIVE和HADOOP,我用的版本是apache-hive-2.1.1-bin.tar.gz和hadoop-2.7.3.tar.gz, 下载到云机上面找个文件夹直接解压。
root@iZwz9ctwk4oedy81aflpxpZ:/eric# ls
apache-hive-2.1.1-bin apache-hive-2.1.1-bin.tar.gz hadoop-2.7.3 hadoop-2.7.3.tar.gz
- 配置HADOOP_HOME
vim /etc/profile
HADOOP_HOME=/eric/hadoop-2.7.3
启用新加的环境变量
source /etc/profile
查看环境变量
root@iZwz9ctwk4oedy81aflpxpZ:/eric# env | grep HAD
HADOOP_HOME=/eric/hadoop-2.7.3
2. 安装MySQL
1. 采用MySQL做为HIVE的元数据库,为了方便,用docker装了一个MySQL
下载docker image
docker pull hub.c.163.com/library/mysql
2. 运行MySQl
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d hub.c.163.com/library/mysql
root@iZwz9ctwk4oedy81aflpxpZ:/eric# docker ps | grep mysql
15524317970b hub.c.163.com/library/mysql "docker-entrypoint..." 17 hours ago Up 17 hours 0.0.0.0:3306->3306/tcp mysql
3. 配置HIVE和MySQL
- HIVE有两种安装模式,一是内嵌模式,使用内嵌的Derby做为元数据库,另一种是使用外部数据库做为元数据库,这里用的是MySQL。
1. 在MySQL创建HIVE用户
CREATE USER 'hive'@'hostName' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO hive IDENTIFIED BY '123456' WITH GRANT OPTION;
2. 用新建的用户登录MySQL创建hive数据库,数据库名可以随意
3. 下载MySQL的JDBC驱动包放到hive目录的lib中
root@iZwz9ctwk4oedy81aflpxpZ:/eric/apache-hive-2.1.1-bin/lib# ll | grep mysql
-rw-r--r-- 1 root root 2036609 May 11 23:40 mysql-connector-java-8.0.11.jar
4. 从./conf里复制一份template做为配置文件
cp hive-default.xml.template hive-site.xml
5. 配置hive-site.xml, 我是直接参考了网上大神的配置(https://blog.csdn.net/u013850277/article/details/55227833),一次成功,谢谢大神的文章,为了方便把配置内容引用到这里吧。我这里和原文有一点点不一样,就是要把DriverName改为com.mysql.cj.jdbc.Driver, 不然会报错,网上查了一下,说了MySql版本问题。
com.mysql.jdbc.Driver
是 mysql-connector-java 5中的,
com.mysql.cj.jdbc.Driver
是 mysql-connector-java 6中的