Hive
1、什么是hive
Hive是构建在hadoop HDFS上的一个数据仓库,本质是一个数据库,但又有所区别,数据仓库是一个面向主题的、集成的、不可更改的、随时间不变化的数据集合。它用于支持企业或组织的决策分析处理。
2、Hive是SQL解析引擎,它将SQL语句转移成M/R Job,然后在hadoop中执行,hive的表其实是HDFS中的一个目录,hive中的数据其实是HDFS中的文件。
3、hive的体系结构
Hive的元数据:hive将元数据存储在数据库中(metastore),支持mysql、oracle、derby等数据库,默认采用的是derby。
Hive的下载
1、下载hive
下载安装之前,首先是安装并运行了hadoop,因为hive是安装在HDFS上的应用,打开hive官网
选择要下载的hive版本,这里我下载的是hive-2.3.4
通常下载bin安装包,文件中包含了下载介质和执行程序,也可以下载源代码src文件,它可以通过web图形化的工具管理数据库,bin文件不包含。
2、hive的三种安装模式
(1)嵌入模式:元数据信息被存储在hive自带的derby数据可中,只允许创建一个连接,同一时间只能有一个人操作hive数据仓库,多用于demo。
(2)本地模式:元数据信息被存储在mysql数据库中,mysql数据库与hive运行在同一台物理机器上,多用于开发和测试,优于嵌入模式。
(3)远程模式:与本地模式运行方式相似,但是mysql和hive运行在不同的操作系统上,允许创建多个连接,是hive最常应用的模式。
hive的安装配置
在这里我们使用的是本地模式安装hive,我使用的是阿里云的服务器。首先我们将下载好的安装包上传到服务器中,这里我使用的是Xftp上传的,创建hive的文件夹,然后上传进去。
1、安装之前确定hadoop已经启动,关于hadoop的安装部署,可以上网查找教程,后期如果有时间我会把hadoop、spark的安装部署详细写出来供大家参考。
2、解压tar包
3、将hive添加到系统环境变量
4、命令行中测试hive是否安装成功
5、在哪个目录下启动hive,就会在当前目录下创建metastore_db保存源信息
MySQL安装部署
接下来我们在服务器中安装部署mysql数据库,只需要几条命令即可
1、apt-get install mysql-server
2、apt-get install mysql-client
3、apt-get install libmysqlclient-dev
安装过程中会提示设置密码,注意设置了不要忘记,安装完成之后可以使用如下命令来检查是否安装成功:
netstat -tap | grep mysql
通过上述命令检查后,如果看到有mysql的socket处于listen状态表示安装成功。
登陆mysql数据库可以通过如下,命令:
mysql -u用户名 -p密码
然后我们创建一个hive的数据库,因为后面我们会用到
create database hive;
接下来我们设置一下mysql的远程连接:
其中一个方法可以是:
登入数据库,敲入以下命令:
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;(不可缺少)
登陆MySQL中查看:
或者也可以:
也可以在mysql数据库中更新表中host的内容:
update user set host='%' where user='root' and host='localhost';
flush privileges;
最后退出数据库,重启一下。
接下来我们在Windows系统下,使用Navicat(用于连接数据库的工具,非常好用)远程连接测试一下
如果连接不上有可能是阿里云服务器没有将3306的端口开放,这时候只要把3306端口添加到安全组中就可以了。
hive内部文件配置
1、安装完mysql后,我们返回到hive的安装目录下,进入conf文件夹,复制hive-env.sh.template为hive-env.sh并进行配置。
cp hive-env.sh.template hive-env.sh
vim hive-env.sh
分别设置HADOOP_HOME和HIVE_CONF_DIR两个值:
2、将连接数据库的jar包放到hive目录下lib文件夹中,这个jar可以在官网中下载,百度或者谷歌搜索:mysql-connection-java,选择下载的版本,我下载的是mysql-connector-java-5.1.47.zip版本
3、在hive/conf目录下创建hive-site.xml配置文件,在该配置文件中加入以下配置内容:
启动验证
所有的这些都配置完成之后,在命令行里开启hive
然后在Navicat中查看mysql中的hive数据库的table中是否多了几张表,大概有57张表,这是hive的一些内部表,此时说明配置成功。
这是我写的第一篇博客文章,有什么不对的地方欢迎大家指出来,如果还有什么不懂的地方可以在评论区留言,我看到后会立刻回复,大家一起学习,一起进步!