Hadoop圈常用组件简介

Pig

提供类似SQL的Pig Latin语言,支持filter,groupby,join,orderby等,支持用户自定义函数;pig会将用户编写的脚本转换为MR(与Hive类似),并自动优化,执行MR进行查询操作。

pig可以加载数据、表达转换数据并存储最终结果。先使用Load语句从文件中加载数据,再通过转换或查询语句进行数据处理,最后通过Store语句将数据输出到文件中或加载到Hive中。

Pig的特点以及Pig、Hive和Impala在应用场景上的区别:

Pig主要面向技术人员,实现即时性的数据查询与处理,可提高数据查询和处理效率。Pig是在运行时,才去定义数据模式,而Hive是预先定义数据模式并将元数据存储在数据库中,才进行后续的操作,因此Pig对于探索未知性的数据作用非常大,可以数据流的方式,分步分析和处理数据、观察数据,然后再进行后续的数据分析和处理。而且在加载数据时,也不用关心数据的类型和内容如何。Hive、pig、impala之间,( 摘录)有一些复杂的文本分析只能用Hive,比如一些CSV的文件,一些高频词的分析,统计分析只能用Hive,Impala不支持.还有一些复杂类型的使用,比如用到数组,复杂的结构体这些也都只能用Hive。Impala主要用于及时的,交互式的分析,Hive用于稳定性挖掘比较高,实时性挖掘不高的作业。

Hive更适合于数据仓库的任务,Hive主要用于静态的结构以及需要经常分析的工作。Hive与SQL相似促使 其成为Hadoop与其他BI工具结合的理想交集。而且很多企业都需要对历史数据进行分析,Hive就是一款分析历史数据的利器。但是Hive只有在结构化数据的情况下才能大显神威。Hive的软肋是实时分析,如果想要进行实时分析,可以采用HBase。

Pig赋予开发人员在大数据集领域更多的灵活性,并允许开发简洁的脚本用于转换数据流以便嵌入到较大的 应用程序。并且Pig适用于非结构化的数据集,可以充分利用SQL。无需人工构建MapReduce任务,如果有SQL学习的背景,那么入门会非常快。Pig也可以支持一些复杂的类型,但是pig没有固定的模型,如果做一些做临时的数据探索可以用。

Pig相比Hive相对轻量,它主要的优势是相比于直接使用Hadoop Java APIs可大幅削减代码量。正因为如此,Pig仍然是吸引大量的软件开发人员。( 摘录结束) 

Tez

DAG作业的计算框架,源于MR框架。将Map拆分为Input、Processor、Sort、Merge和Output;再将Reduce拆分为Input、Shuffle、Sort、Merge、Processor和Output等,分解后的Map类操作与Reduce类操作可进行理细粒度的组合产生新的操作。再通过流程组合,形成DAG,这也为后续的程序优化提供了可能(去除多余操作如两个MR任务之间写入HDFS的操作、合并相同或重复操作如反复的Map操作等)。Hortonworks将Tez应用在了Hive的优化过程中,使Hive的性能得到了100倍的提升。

基于这个特性,可以将MR、Hive和Pig这类以MR为运行基础框架的计算框架运行在Tez之上,借助Tez对MR流程进行优化,以提升效率。

Kafka

高吞吐量的分布式分布订阅消息系统,可以发布大量消息,也可以实时订阅消费消息。同时满足在线实时的消息处理和批量离线的消息处理。

Kafka的作用是作为数据中枢,使不同的分布式系统(关系数据库、NoSQL库、流处理系统、批处理系统)与Hadoop各组件建立数据通道,实现不同类型数据的实时高效交互。

在Kafka框架中,使用了Zookeeper进行了broker和consumer的管理工作。

( 摘录)

创建Broker后,向zookeeper注册新的broker信息,实现在服务器正常运行下的水平拓展。具体的,通过注册watcher,获取partition的信息。

Topic的注册,zookeeper会维护topic与broker的关系,通过/brokers/topics/topic.name节点来记录。

Producer向zookeeper中注册watcher,了解topic的partition的消息,以动态了解运行情况,实现负载均衡。Zookeepr是没有管理producer,只是能够提供当前broker的相关信息。

Consumer可以使用group形式消费kafka中的数据。所有的group将以轮询的方式消费broker中的数据,具体的按照启动的顺序。Zookeeper会给每个consumer group一个ID,即同一份数据可以被不同的用户ID多次消费。因此这就是单播与多播的实现。以单个消费者还是以组别的方式去消费数据,由用户自己去定义。Zookeeper管理consumer的offset跟踪当前消费的offset。( 摘录结束) 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值