hive数据仓库中mysql,hive,hdfs之间的关系

         工作中参与新员工培训,发现很多实际开发者都不是很清楚,hive既然是数据仓库,那为什么还需要mysql数据库,还需要hdfs呢,熟悉三者之间的关系是作为一个合格的hive数据仓库开发者必须掌握的技能

 一: 首先了解Hive特点

     1.hive可以看做mapreduce客户端,能用mapreduce程序完成的任务都可以对应的替换成hql编写的hive任务。所以因为hadoop和hdfs的本身设计的特点,也限制了hive所能胜任的工作特性。Hive最大的限制特点就是不支持基于行记录的更新,删除,增加。但是用户可以通过查询生成新表,或者将查询结果导入文件中来“实现”hive基于行记录的操作。

     2.因为mapreduce是批处理系统,所以hive也是基于海量数据的批处理的。同样因为mapreduce具有高延迟(1.启动时间长2.中间结果放在本地而非内存中),造成hive执行也耗时过长。

     3.hive不支持事物,所以不支持OLTP(连接事物处理),更适用与OLAP(联机分析处理)

 二:hive和hdfs,mysql之间的关系的数据流转

   1.举例说明hive,mysql和hdfs之间的关系

          下面是一个完成的流程,从hive中创建表,到往表里导入数据,1-9说明了hive,mysql,hdfs之间的流程。

hive数据仓库中mysql,hive,hdfs之间的关系