5

我对 Apache Hadoop有点陌生。我已经看过这个这个关于 Hadoop、HBase、Pig、Hive 和 HDFS 的问题。他们都描述了上述技术之间的比较。

但是,我已经看到,通常 Hadoop 环境包含所有这些组件(HDFSHBasePigHiveAzkaban)。

有人能以架构工作流的方式解释这些组件/技术与它们在 Hadoop 环境中的职责之间的关系吗?最好举个例子?

4

2 回答 2

7

总体概述:

HDFS 是 Hadoop 的分布式文件系统。直观地,您可以将其视为跨越许多服务器的文件系统。

HBASE 是一个面向列的数据存储。它以 Google 的 Big Table 为模型,但如果这不是您所知道的,那么可以将其视为一个非关系型数据库,提供对数据的实时读/写访问。它已集成到 Hadoop 中。

Pig 和 Hive 是在 Hadoop 生态系统中查询数据的方式。主要区别在于 Hive 更像 SQL 而不是 Pig。Pig 使用所谓的 Pig Latin。

Azkaban 是一座监狱,我的意思是批处理工作流作业调度程序。所以基本上它类似于 Oozie,因为您可以将 map/reduce、pig、hive、bash 等作为单个作业运行。

在可能的最高级别上,您可以将 HDFS 视为您的文件系统,并将 HBASE 作为数据存储。Pig 和 Hive 将是您从数据存储中查询的方式。那么 Azkaban 将成为您安排工作的方式。

拉伸示例:

如果您熟悉用于文件系统的 Linux ext3 或 ext4、用于数据库的 MySQL/Postgresql/MariaDB/etc、用于访问数据的 SQL 以及用于安排作业的 cron。(您可以在 Windows 上将 ext3/ext4 用于 NTFS 和 cron 用于任务计划程序)

HDFS 取代了 ext3 或 ext4(并且是分布式的),HBASE 担任数据库角色(并且是非关系型的!),Pig/Hive 是一种访问数据的方式,而 Azkaban 是一种调度作业的方式。

注意:这不是苹果对苹果的比较。这只是为了证明 Hadoop 组件是一种抽象,旨在为您提供您可能已经熟悉的工作流程。

我强烈建议您进一步研究这些组件,因为您将获得很多乐趣。Hadoop 有很多可互换的组件(Yarn、Kafka、Oozie、Ambari、ZooKeeper、Sqoop、Spark 等),你会经常问自己这个问题。

编辑:您发布的链接更详细地介绍了 HBase 和 Hive/Pig,因此我试图直观地展示它们如何组合在一起。

于 2016-06-04T12:57:10.557 回答
2

Hadoop 环境包含所有这些组件(HDFS、HBase、Pig、Hive、Azkaban)。它们的简短描述可以是:-

HDFS -hadoop 框架中的存储。

HBase - 它是列式数据库。您以列的形式存储数据以便更快地访问。是的,它确实使用 hdfs 作为存储。

Pig - 数据流语言,它的社区提供了内置函数来加载和处理半结构化数据,如 json 和 xml 以及结构化数据。

Hive - 查询语言以在表上运行查询,这里需要表安装来处理 HDFS 数据。

Azkaban - 如果您有 hadoop 作业管道,您可以安排它们在特定时间以及在某些依赖项之后或之前运行。

于 2016-06-04T19:54:45.250 回答