理解Hive
① Hive类似于HDFS客户端,Hive所有表数据均存放在HDFS中,元数据信息存放于Mysql。Hive表结构设计,实际设计的是对HDFS数据的访问方式,或者数据组织方式。对Hive表数据的操作最终以MapReduce任务的形式提交到集群,并返回任务执行的结果。
② Hive作为架构于HDFS之上的数据操作框架,其分布式特性来自于HDFS和MapReduce而并非自身,因此,Hive以单机形式运行于集群即可(集群外亦可)。通过在hive-env.sh中设置HADOOP_HOME,即可将Hive绑定到指定的HDFS集群。
③ Hive对表数据执行的计算工作交由MapReduce实际执行,从而使得Hive对数据的操作具有一定的延迟。因此,Hive的核心在于将简单的类SQL语句转化为MapReduce任务对HDFS中的数据进行操作。
④ Hive on spark将计算引擎修改为spark,能够提高对批量数据的执行效率。但其应用场景不变,仍适用的是对存储于HDFS中的海量历史数据进行离线分析处理。
⑤ Hive自身的所有特性,均表达的是对HDFS中数据操作的解构,简单来说是一个操作HDFS数据的工具。利用Hive提供给熟悉SQL语言但陌生于java MapReduce编程的人员以方便的接口进行HDFS数据访问和操作。
Hive适用场景
由Hive的设计初衷,Hive提供对HDFS数据的便捷访问和操作。同时Hive以表的形式组织HDFS数据,使得对数据的访问和操作粒度更小,操作更便捷,而非由繁琐的编程实现。因此,如果需要对HDFS中的数据完成一些简单的操作(具体见Hive操作部分)且不用编写复杂的Java代码,或者需要提供给外部人员对HDFS数据访问的接口,Hive是合适的选项。
Hive_应用设计
最新推荐文章于 2021-08-06 21:02:46 发布