发布于 2016-06-04 12:57:10
概述:
HDFS是Hadoop的分布式文件系统。直观地说,您可以将此视为跨多个服务器的文件系统。
HBASE是一个面向列的数据存储。它是以Google的database为模型的,但是如果这不是你所知道的,那么就把它看作一个非关系数据库,提供对数据的实时读/写访问。它被集成到Hadoop中。
猪和蜂巢是Hadoop生态系统中查询数据的方式。主要的区别是Hive更像SQL而不是Pig。猪使用所谓的猪拉丁语。
Azkaban是一个监狱,我的意思是批处理工作流作业调度器。因此,它基本上与Oozie相似,因为您可以将map/reduce、pig、hive、bash等作为一项任务运行。
在尽可能高的级别上,您可以认为HDFS是您的文件系统,HBASE是数据存储。猪和蜂巢将是你从数据存储中查询的手段。那么Azkaban将是你安排工作的方式。
拉伸示例:
如果您熟悉用于文件系统的Linux ext3或ext4、数据库的MySQL/Postgresql/MariaDB/etc、访问数据的SQL和调度作业的cron。(您可以在Windows上交换用于NTFS的ext3 3/ext3 4和用于任务调度程序的cron )
HDFS取代ext3或ext4 (并且是分布式的),HBASE承担数据库角色(并且是非关系的!),Pig/Hive是访问数据的一种方式,Azkaban是调度作业的一种方式。
注意:,这不是苹果与苹果的比较。这只是为了证明Hadoop组件是一种抽象,目的是为您提供您可能已经熟悉的工作流。
我强烈鼓励您深入了解组件,因为您将有很大的乐趣。Hadoop有许多可互换的组件( Yarn、Kafka、Oozie、Ambari、ZooKeeper、Sqoop、Spark等),你会问很多这样的问题。
编辑:您发布的链接更详细地介绍了HBase和Hive/Pig,所以我尝试给出它们是如何结合在一起的直观的图片。
发布于 2016-06-04 19:54:45
Hadoop环境包含所有这些组件(HDFS、HBase、Pig、Hive、Azkaban)。他们的简短描述可以是:
hadoop框架中的HDFS -storage。
HBase --它是柱状数据库。以列的形式存储数据,以便更快地访问。是的,它确实使用hdfs作为其存储空间。
Pig -数据流语言,它的社区提供了加载和处理半结构化数据(如json和xml )以及结构化数据的内置功能。
Hive -查询语言可以在表上运行查询,在这里需要安装表来处理HDFS数据。
Azkaban --如果您有hadoop作业的管道,您可以安排它们在特定的时间以及在某些依赖项之后或之前运行。
https://stackoverflow.com/questions/37629836
复制相似问题