这篇文章主要为大家展示了“Hadoop 项目如何组成”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“Hadoop 项目如何组成”这篇文章吧。
Hadoop 由以下几个项目构成
总体结构图如下
1、Hadoop Common:Hadoop 体系最底层的一个模块,为 Hadoop 各子项目提供各种工具,如:配置文件和日志操作等。
2、HDFS:分布式文件系统,提供高吞吐量的应用程序数据访问,对外部客户机而言,HDFS 就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的(参见图 1),这是由它自身的特点决定的。这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。由于仅存在一个 NameNode,因此这是 HDFS 的一个缺点(单点失败)。
存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。这与传统的 RAID 架构大不相同。块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。NameNode 可以控制所有文件操作。HDFS 内部的所有通信都基于标准的 TCP/IP 协议。
3、MapReduce:一个分布式海量数据处理的软件框架集计算集群。
4、Avro:doug cutting 主持的 RPC 项目,主要负责数据的序列化。有点类似 Google 的 protobuf 和 Facebook 的 thrift。avro 用来做以后 hadoop 的 RPC,使 hadoop 的 RPC 模块通信速度更快、数据结构更紧凑。
5、Hive:类似 CloudBase,也是基于 hadoop 分布式计算平台上的提供 data warehouse 的 sql 功能的一套软件。使得存储在 hadoop 里面的海量数据的汇总,即席查询简单化。hive 提供了一套 QL 的查询语言,以 sql 为基础,使用起来很方便。
6、HBase:基于 Hadoop Distributed File System,是一个开源的,基于列存储模型的可扩展的分布式数据库,支持大型表的存储结构化数据。
7、Pig:是一个并行计算的高级的数据流语言和执行框架 ,SQL-like 语言,是在 MapReduce 上构建的一种高级查询语言,把一些运算编译进 MapReduce 模型的 Map 和 Reduce 中,并且用户可以定义自己的功能。
8、ZooKeeper:Google 的 Chubby 一个开源的实现。它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper 的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
9、Chukwa:一个管理大型分布式系统的数据采集系统 由 yahoo 贡献。
10、Cassandra:无单点故障的可扩展的多主数据库
11、Mahout:一个可扩展的机器学习和数据挖掘库
以上是“Hadoop 项目如何组成”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!