什么是 Hadoop 生态系统

什么是 Hadoop 生态系统

在一些 Teiid 的一些文章和示例上都会有关于 JBoss Data Virtualization (Teiid) 通过 Hive 使用 Hadoop 作为数据源的信息。当使用 Hadoop 环境创建 Data Virtualization 示例时,比如 Hortonworks Data Platform, Cloudera Quickstart 等等,里面会包含大量的开源项目。本篇文章主要是对 Hadoop 生态系统有个初步的认识,以下的一些开源项目详情可以查看 hadoop ecosystem table。

Map Reduce -MapReduce 是使用集群的并行,分布式算法处理大数据集的可编程模型。Apache MapReduce 是从 Google MapReduce 派生而来的:在大型集群中简化数据处理。当前的 Apache MapReduce 版本基于 Apache YARN 框架构建。YARN = “Yet-Another-Resource-Negotiator”。YARN 可以运行非 MapReduce 模型的应用。YARN 是 Apache Hadoop 想要超越 MapReduce 数据处理能力的一种尝试。

HDFS - The Hadoop Distributed File System (HDFS) 提供跨多个机器存储大型文件的一种解决方案。Hadoop 和 HDFS 都是从 Google File System (GFS) 中派生的。Hadoop 2.0.0 之前,NameNode 是 HDFS 集群的一个单点故障 (SPOF) 。利用 Zookeeper,HDFS 高可用性特性解决了这个问题,提供选项来运行两个重复的 NameNodes,在同一个集群中,同一个 Active/Passive 配置。

HBase - 灵感来源于 Google BigTable。HBase 是 Google Bigtable 的开源实现,类似 Google Bigtable 利用 GFS 作为其文件存储系统,HBase 利用 Hadoop HDFS 作为其文件存储系统;Google 运行 MapReduce 来处理 Bigtable 中的海量数据,HBase 同样利用 Hadoop MapReduce 来处理 HBase 中的海量数据;Google Bigtable 利用 Chubby 作为协同服务,HBase 利用 Zookeeper 作为对应。

Hive - Facebook 开发的数据仓库基础设施。数据汇总,查询和分析。Hive 提供类似 SQL 的语言 (不兼容 SQL92):HiveQL。

Pig - Pig 提供一个引擎在 Hadoop 并行执行数据流。Pig 包含一个语言:Pig Latin,用来表达这些数据流。Pig Latin 包括大量的传统数据操作 (join, sort, filter, etc.), 也可以让用户开发他们自己的函数,用来查看,处理和编写数据。Pig 在 hadoop 上运行,在 Hadoop 分布式文件系统,HDFS 和 Hadoop 处理系统,MapReduce 中都有使用。Pig 使用 MapReduce 来执行所有的数据处理,编译 Pig Latin 脚本,用户可以编写到一个系列,一个或者多个的 MapReduce 作业,然后执行。Pig Latin 看起来跟大多数编程语言都不一样,没有 if 状态和 for 循环。

Zookeeper - ZooKeeper 是 Hadoop 的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper 的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。Zookeeper 是 Google 的 Chubby 一个开源的实现.是高有效和可靠的协同工作系统。Zookeeper 能够用来 leader 选举,配置信息维护等.在一个分布式的环境中,我们需要一个 Master 实例或存储一些配置信息,确保文件写入的一致性等。

Mahout - 基于 MapReduce 的机器学习库和数学库。

同时,你可以访问 Big Data Insights Page,学习更多关于 Hadoop 生态系统的 Red Hat 产品。

什么是 Hadoop 生态系统

文章转载自 开源中国社区 [http://www.oschina.net]

上一篇:Android OpenGL ES 实现 3D 阿凡达(Avatar)效果


下一篇:Python的C/C++扩展——Python的C语言接口