Hive、Pig、HBase作为Hadoop生态系统中与数据直接相关的组件,他们在功能上相互交叉但又具备自身特点。
但作为一个初学者,面对3个具有类似功能又各有特点的框架难免产生疑虑。他们之间到底有什么关系?他们在整个Hadoop生态中如何发挥作用?
今天就整理一下这3个组件在Hadoop生态中的作用,让大家有一个整体的认识。
HbaseHbase是高可靠、面向列的、可伸缩的、分布式的数据库,适用于非结构化的数据存储。
HBase运行在Hadoop-HDFS之上,HDFS缺乏随即读写操作,不能满足实时需要;而Hbase能够实现对数据的实时访问。
利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。
HiveHive是建立在Hadoop之上的数据仓库,可以将结构化的数据文件映射为一张数据库表。本身并不存储和处理数据,依赖于HDFS存储数据,依赖MR处理数据。
Hive提供对数据进行提取、转换、加载的工具,可以存储、查询和分析存储在HDFS上的数据。
Hive可以看做是SQL到MapReduce的一个映射器。提供类SQL语言HiveQL,80%的语法和标准SQL一致。
可以通过HQL语句实现简单的MapReduce统计,采用批处理的方式对海量数据进行处理,不必开发专门的MapRedunce应用,十分适合数据仓库的统计分析。
数据仓库存储的是静态数据,很适合采用MR进行批处理。
应用案例
日志文件分析
情感分析(分析社交媒体覆盖情况)
商业智能
PigPig是一种数据流语言和运行环境,适合用于在hadoop平台上查询半结构化数据集。
什么是数据流呢?就是处理数据的流程可以一步步定义,比如第一步加载,第二步转换,第三步再转换,第四步存储,可以一步步定义数据的走向。
Pig基本就是一个对MapReduce实现的工具,可以替代Hive。
Pig在ETL阶段用途很广,对于数据挖掘,尤其是分析未知数据,非常合适。因为不需要指定任何的名称、类型就可以先加载,然后去匹配所有的数据,接下来就可以去观察数据是怎样的,分析怎么去做转换。(Hadoop)
Hive和PigHive主要用于静态的结构以及需要经常分析的工作,是为进行海量数据挖掘设计的,实时性很差,适合在离线下进行的操作。其很容易扩展自己的存储和计算能力。
Pig相比Hive较轻量,优势是相比于直接使用HadoopJavaAPIs可大幅削减代码量。
Pig赋予开发人员更多灵活性,并允许开发简洁的脚本用于转换数据流以便嵌入到较大的应用程序。
大数据分析平台中Hive、Pig、Hbase常见的部署框架Hive和Pig用于报表中心,Hive用于分析报表,Pig用于报表中数据的转换工作。
HBase用于在线业务,HDFS不支持随机读写操作,HBase可较好地进行实时访问数据。
赞赏