大数据Hadoop与HDFS
来源:海牛大数据 时间:2020-09-11 15:12:33 编辑:简单
几年前,Hadoop曾被吹捧为数据仓库的替代品。本文将为大家提供作为分析平台的Hadoop / HDFS的特性和缺点的客观摘要,并将其与基于云的Snowflake数据仓库进行比较。
Hadoop:基于文件的分布式架构
由Doug Cutting在Yahoo!上首次开发。从2012年开始开源,Hadoop获得了巨大的吸引力,因为它可能替代昂贵的MPP设备上的分析工作负载(数据仓库应用程序)。
Hadoop分布式文件系统(HDFS)虽然在某种程度上类似于数据库,但它并不具有相应工作负载、读取一致性和并发管理系统的数据库。Hadoop与MPP数据库有许多相似之处,包括其多节点可伸缩性,对列数据格式的支持,SQL的使用以及基本的工作流管理,但这存在着许多差异:
不符合ACID:与Snowflake不同,Snowflake支持多个并发的读取一致的读取和更新,并且完全符合ACID的要求,HDFS只是写入不可变文件,不允许进行更新或更改。要更改文件(大部分情况下),你必须将其读入,并在应用更改后将其写出。这使HDFS更适合于非常大量的数据转换,但对于即席查询而言却是一个较差的解决方案。
HDFS适用于大型数据集:与Snowflake不同,Snowflake将数据存储在可变长度的微分区上,HDFS将数据分解为固定大小(通常为128Mb)的块,并在三个节点之间复制。对于小型数据文件(小于1GB)来说,这是一个糟糕的解决方案,在这种情况下,整个数据集通常保存在单个节点上。但Snowflake可以轻松处理微小的数据集和TB级数据。
HDFS不能弹性伸缩:尽管有可能(由于停机)向Hadoop集群添加其他节点,但是集群大小只能增加。相比之下,Snowflake可以在几毫秒内立即从X-Small扩展到4X-Large庞然大物,然后迅速缩小或什至完全暂停计算资源。
Hadoop非常复杂:也许Hadoop最大的单一缺点是部署、配置和维护的传奇成本。相比之下,Snowflake不需要部署硬件或安装和配置软件,统计信息将自动捕获,并由基于成本的复杂查询工具使用,并且DBA管理几乎为零。
下图说明了Hadoop / HDFS平台中的关键组件。它说明了如何配置名称节点以记录跨集群分布数据的物理位置。
尽管这在海量(多TB)批处理查询中提供了出色的性能,但下图说明了为什么它对于通用数据管理而言不是一个好的解决方案。
上图说明了服务层如何管理并发,工作负载和事务管理。与Hadoop解决方案不同,Snowflake上的数据存储与计算处理完全分开,这意味着可以动态增加或减少集群大小。
上述解决方案还支持虚拟仓库和服务层的内置缓存层。这使Snowflake成为适用于从PB级数据处理到仪表板上亚秒级查询性能的各种查询处理的合适平台。
下表对Hadoop和Snowflake的主要功能进行了简单的并排比较:
Hadoop带来的主要优势是能够管理结构化,半结构化(JSON)和非结构化文本,并支持读取模式,这意味着可以简单地加载和查询数据而无需担心结构。
虽然Hadoop当然是唯一的视频,声音和自由文本处理平台,但这仅占数据处理的一小部分,而且Snowflake对JSON拥有完全的本机支持,甚至还支持SQL内部的结构化和半结构化查询。
结论
尽管可以使用蛮力在非常大(数TB)的数据量上实现良好的批处理查询性能,但是Hadoop的部署和管理非常困难,并且对许多商业智能所需的低延迟查询的支持非常差。
由于未能抓住重要的MPP数据库市场份额,Hadoop被吹捧为Data Lake(原始业务数据的不可变数据存储)的推荐平台。尽管这可能是重新利用现有Hadoop集群的合适平台,但它确实有这MPP解决方案的相同缺点,因为每个节点都增加了计算和存储容量,因此可能会过度配置计算资源。可以争论的是,基于云的对象数据存储(例如Microsoft Blob Store或Amazon S3)是数据湖的更好基础,它利用计算和存储的分离来避免过度配置。但是借助Snowflake对实时数据提取的支持和本机JSON支持,这对于数据湖来说是一个更好的平台。
使用Apache Kafka和Spark,Storm或Flink 的实时数据捕获和处理领域也许是Hadoop 真正可行的未来 ,尽管目标地几乎肯定是数据库,而Snowflake显然是数据赢家仓储。
但作为MPP数据库的替代品,Hadoop远远不能达到所需的性能,查询优化和所需的低延迟,并且Snowflake成为当今市场上最好的数据仓库平台。
海牛大数据专注于大数据课程开发及培训,"因为专注,所以专业"。如果您想要了解更多大数据的知识,您可以浏览我们的网站,我们会为您提供更专业服务。