您的位置:首页 > 运维架构

hadoop之家族

2015-08-12 00:44 267 查看
hadoop如此成功,它下面的子项目也是很多,像pig,hive,hbase,等等,研究一个大项目,对其下面的子项目也是要有一定的了解才好、

1:pig

其实pig是Hadoop的客户端,当然其实hadoop的插件是可以安装在eclipse上的,但是对于不熟悉java的开发人员来说,看java代码会比较痛苦的。所以hadoop提供了一种其实是类似SQL的面向数据的语言PigLatin,pig其实是有三种运行方式的,分别是:GruntShell ,脚本方式,嵌入式运行方式。其实总的来说的话,使用pig的话功能还是挺强大的,因为PigLatin可以完成排序,过滤,求和,聚组,关联等操作,可以支持自定义函数,不仅如此,pig能自动的把PigLatin映射为Map-Reduce作业上传到集群运行。



2:Hbase

这个子项目就比较牛了,一开始它还是附属hadoop产品的,但是随着它的发展,已经和hadoop属于顶级项目了.因为它实现的了google的三大论文之一,bigtable的思想,也就是说一个系统其实用一张表就足够的了。它是Google BigTable的开源的实现,Hbase是个列式数据库,但是是可集群化的,比较适合在表态的写方面和读的方面,提供HQL查询

语言。是属于NoSql的典型的代产品.其节点上的通讯通过Zoopeeker实现。



3:Zoopeeker

这个项目也是非常的重要的,它是Google Chubby的开源实现,是一个通讯协调软件,用于协调分布式系统上的各种服务,例如确定消息是否准确到达,防止单点失效,处理负载均衡,一般来说它是应用在Hbase上的,实现Namenode的自动切换。



4:Hive

Hive也叫数据仓库工具,它可以把Hadoop下的原始结构化数据编程Hive中的表,而且还支持一种与SQL几乎完成相同的语言HiveQL,除了不支持更新,索引和事务,几乎SQL其他的特征它都有的.说的比较复杂,其实是可以看成是SQL到Map-Reduce的映射器,提供了sell,JDBC/odbc .Thrift web等接口。



5:Sqoop

此子项目的作用是利用jdbc接口连入关系型的数据库中,然后在hadoop与关系型数据库中实现了数据交换。大部分的公司会采用Sqoop或者是自己写的脚本或者程序来实现hadoop数据在关系型数据中的转换。这点在我们开发的过程中也是要常用到的。



6:Avro

它是一个数据序列化的工具,往磁盘中存储数据,磁盘只能存储已经实现序列化的线性数据。由hadoop的创始人Doug Cutting主持开发的,是用来支持大批大批量数据库交换的应用,支持二进制序列化方式,可以便捷,快速的处理大量数据。不仅如此,它的动态语言友好,Avro提供的机制可以使得动态语言可以方便的处理Avro数据

7:Chukwa

提供给hadoop数据收集的功能,主要进行日志采集和分析,在客户的交换机,电子商务平台存在大量的日志信息,怎么让这些日志信息采集到hadoop分析平台上呢,方法:写脚本+定时任务 ,但是这样的话手工化的程度过高,而且不好管理。用Chukwa就可以很好解决这个问题:

它是架构在Hadoop之上的数据采集与分析框架,主要的步骤:
1:通过安装在收集节点的"代理"采集最原始的数据。
2:代理将数据发给收集器
3:收集器定时的将数据写入到Hadoop集群
4:指定定时启动的Map-Reduce作业对数据进行加工处理和分析
5:Hadoop的基础管理中心(HICC)最终显示数据


8:Cassandra

一个NoSql分布式的数据库,故也能支持集群开发,主要做的是key-value查询,而且是由Facebook贡献出来的。和Habase相似,也是借鉴了Google BigTable的思想体系,由于此数据库面向的是高负荷的性能需求,所以它只提供顺序写,并不提供随机写的功能。其主要功能比Dynamo (分布式的Key-Value存储系统)更丰富,但支持度却不如文档存储MongoDB(介于关系数据库和非关系数据库之间的开源产品,是非关系数据库当中功能最丰富,最像关系数据库的。支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: