Hadoop 生态圈图
HIVE的安装与配置
Hive的概念
**一、Hive到底是什么
-
如何理解Hive
(1)从概念上来看
-> Hive是基于Hadoop的一个数据仓库工具;它是MapReduce的一个封装,底层就是MapReduce程序;
-> Hive可以将结构化的数据文件(eg:按照各字段分类的数据)映射成一张虚表,并提供类SQL查询功能;
-> 有了Hive后我们就不用再写麻烦的MapReduce程序了。
(2)从本质上来看
Hive就是把sql语句转化为MapReduce程序。
Hive没有服务端,它本质是Hadoop或者说是HDFS的一个客户端,对HDFS的数据和Meta store的元数据进行操作;
通常我们启动Hive是通过JDBC客户端操作的;
ps:对比hadoop中,通过命令start-dfs.sh启动HDFS服务端,然后通过hadoop fs -命令来启动HDFS客户端进行实际操作;
服务端是提供后台服务的,客户端是进行具体操作然后让服务端提供对应服务的。 -
Hive中SQL-MapReduce原理图解
(1)事先将常用的SQL操作封装成MapReduce模板存放在Hive中;
(2)client依据实际需求写SQL语句,匹配对应的MapReduce模板,然后运行对应的MapReduce程序,
(3)生成相应的分析结果,返回给client。
所以说,Hive的本质是把SQL语句转化成了MapReduce程序。 -
为什么说Hive是基于Hadoop的呢?
(1)Hive处理的数据实际存放在HDFS中,默认路径/user/hive/warehouse;
(2)Hive分析数据的底层实现还是MapReduce程序;
(3)Hive调度资源时,用的是Yarn框架;
(4)在服务器中运行Hive之前需要群起HDFS和YARN。**
具体操作命令