学习了这么久的大数据,hive数据仓库也基本上每天都在使用,最初装上hive的时候并不理解为什么要使用hive。虽然网上的说法很好,而且基本上都讲的很详细,但是最初接受的时候还是觉得根本无法接受这个跟普通的sql语句几乎相同的东西为什么为什么会被称为数据仓库?为什么工作之处要和外部数据库进行连接(自己本身不就是数据库吗)?为什么hive必须要在hadoop集群启动之后才能正常使用……
带着这些现在看来很傻的问题,我开始进行安装hive,因为在网上了解到hive是会进行MapReduce的操作,所以我把hive安装到了其中一台yarn节点。
hive的安装步骤:
1、下载hive的tar.gz文件,解压缩、安装。
2、配置环境变量 (/etc/profile)
HIVE_HOME=/(hive的文件主目录)
PATH=...:$HIVE_HOME/bin
3、通过查看hive的版本验证hive是否安装成功
hive --v
4、配置hive的配置文件,使用windows下的mysql存放元数据。
将hive-default.xml.template重命名为hive-site.xml
找到下面几个配置:
1)、加载JDBC驱动
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
2 ) 、mysql数据库地址
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.231.1:3306/hive2</value>
</property>
3)、mysql数据库用户名
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>Username to use against metastore database</description>
</property>
4)、mysql数据库密码
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
<description>password to use against metastore database</description>
</property>
5、配置好配置文件之后,在mysql下创建存放hive的数据库hive
create database hive;
6、 初始化hive的元数据到msql:
cd /hive/bin
schematool -dbType mysql -initSchema
进行安装之后,我似乎对hive有些理解了,然后在hadoop启动的情况下我开始使用hive,之后我发现,原来hive的数据是存在hdfs和外部mysql中的,而且把hdfs上的数据删除之后,hive表里的数据 也就随之消失,并且执行insert的时候,是调用的MapReduce进行操作。 所有的数据库信息,表信息,在mysql数据库中均有数据记录。所以,前面的问题也就不攻自破了。
我相信很多刚学习大数据,刚学习hive的小伙伴都会有这些简单但是就是无法理解的问题。
我也欢迎刚入门大数据小伙伴们有一些基础性的难以接受的问题,有些问题可能过于简单,但是就是不能理解,问身边的大牛有觉得是不是太简单而难以启齿,当有这些困扰的时候,欢迎私信我,在我看到之后会尽我所能在之后的更新中为大家解决。