hdfs、hbase、pig、hive和azkaban之间的关系?

x8goxv8g  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(317)

我对apachehadoop有些陌生。我看到过关于hadoop、hbase、pig、hive和hdfs的问题。它们都描述了上述技术之间的比较。
但是,我已经看到,hadoop环境通常包含所有这些组件(hdfs、hbase、pig、hive、azkaban)。
有人能以体系结构工作流的方式解释这些组件/技术与其在hadoop环境中的职责之间的关系吗?最好举个例子?

w41d8nur

w41d8nur1#

概述:
hdfs是hadoop的分布式文件系统。直观地说,您可以将其视为跨多个服务器的文件系统。
hbase是一种面向列的数据存储。它是模仿google的big table的,但是如果你不知道这一点,那么就把它想象成一个非关系数据库,提供对数据的实时读/写访问。它被集成到hadoop中。
pig和hive是在hadoop生态系统中查询数据的方法。主要的区别在于,hive更像sql而不是pig。pig使用所谓的pig拉丁语。
阿兹卡班是个监狱,我的意思是批量工作流作业调度器。因此基本上它与oozie类似,您可以将map/reduce、pig、hive、bash等作为单个作业运行。
在可能的最高级别上,您可以将hdfs视为文件系统,hbase作为数据存储。pig和hive将是您从数据存储中进行查询的方法。那么阿兹卡班就是你安排工作的方式。
拉伸示例:
如果您熟悉linux ext3或ext4作为文件系统,mysql/postgresql/mariadb/etc作为数据库,sql用于访问数据,cron用于调度作业(您可以将ext3/ext4交换为ntfs,将cron交换为windows上的任务调度器)
hdfs代替ext3或ext4(并且是分布式的),hbase扮演数据库角色(并且是非关系的!),pig/hive是访问数据的一种方式,azkaban是安排作业的一种方式。
注意:这不是一个苹果对苹果的比较。这只是为了证明hadoop组件是一个抽象概念,旨在为您提供一个您可能已经熟悉的工作流。
我强烈建议您进一步研究组件,因为您将获得大量的乐趣。hadoop有那么多可以互换的组件(yarn、kafka、oozie、ambari、zookeeper、sqoop、spark等等),你会经常问自己这个问题。
编辑:您发布的链接更详细地介绍了hbase和hive/pig,因此我试图直观地展示它们是如何结合在一起的。

w9apscun

w9apscun2#

hadoop环境包含所有这些组件(hdfs、hbase、pig、hive、azkaban)。简要描述如下:
hdfs—hadoop框架中的存储。
hbase—它是列式数据库。以列的形式存储数据,以便更快地访问。是的,它确实使用hdfs作为存储。
pig是一种数据流语言,它的社区提供了内置函数来加载和处理半结构化数据,如json和xml以及结构化数据。
配置单元查询语言在表上运行查询,表装载在这里是使用hdfs数据所必需的。
如果你有hadoop作业的流水线,你可以安排它们在特定的时间运行,在依赖之后或者之前。

相关问题