引语
大数据开发之路漫漫其修远兮,吾将上下而求索。很多入门大数据的小伙伴,可能第一个接触到的,就是一只可爱的“小象”,也就是我们的大数据领域的数据仓库工具hive。
这只小象给我们提供了方便类SQL查询语言HQL来操纵数据,使得我们一开始不用编写复杂的代码,就可以轻松的探索数据。Hive对于熟悉传统数据库的同学来说,算是很友好的一个入门工具。
想学习好大数据可以关注公众号程序员大牛, 有视频资源分享一起学习
原理
在大数据生态中,hive一般作为数据仓库来使用。什么是数据仓库呢? 简单来说就像一个大粮仓,里边堆着各种各样的粮食,比如小麦、玉米、土豆、大米等等。数据仓库里是一个数据集合体,把不同数据源按照一定的形式集合统一起来。 Hive本身是不做数据存储的,它是构建在分布式存储系统HDFS之上,我们平常看到的表数据其实本质上来说还是HDFS的文件。 Hive把这些HDFS数据文件,通过元数据规则映射为数据库的表,并且可以提供SQL操作的功能。 Hive总体结构比较简单,下方是整体的hive架构图,我们可以看到,总体有三个组件:用户接口、元数据系统、驱动器。
用户通过用户接口来输入操作指令。一般接口有三种形式:
CLI端:一般在linux服务器直接输入hive即可进入;
WEB模式:通过命令bin/hive --service hwi启动,默认访问9999端口;
远程模式:一般是JDBC之类的编程接口;
Hive的核心在于驱动器,一般驱动器接收到用户接口传递的一条SQL之后,会进行下面的一系列操作:
驱动器开始进行语法和语义分析
生成逻辑计划并且逻辑优化
生成物理计划
发送计划到执行引擎(常用引擎有mapredue和sprk)执行
结果返回
而元数据