Hadoop,这个名字听起来很有趣的开源软件框架,通过允许组织存储、管理和分析海量数据,以获得可操作的见解和竞争优势,已经成为组织的游戏规则改变者。
但这并非一直如此。
最初,Hadoop 的实施需要技术精湛的工程师和数据科学家团队,这使得 Hadoop 对许多组织来说成本过高且使用起来很麻烦。现在,由于许多开源项目,使用 Hadoop 进行大数据分析变得更加经济实惠和主流。
以下是三个开源项目——Hive、Spark和 Presto——如何改变 Hadoop 生态系统的概览。
Hive
Hadoop 早期的一个问题是,虽然它非常适合存储和管理海量数据,但分析这些数据以获得见解却很困难。只有受过编写复杂“Java Map-Reduce”作业训练的熟练数据科学家才能释放 Hadoop 的分析能力。为了解决这个问题,Facebook 的两位数据科学家 Ashish Thusoo 和 Joydeep Sen Sarma 于 2008 年创建了 Apache Hive,他们后来创立了基于云的 Hadoop 大数据分析服务 Qubole。
Hive 利用结构化查询语言 (SQL) 的易用性,SQL 是一种相对容易学习且被数据工程师广泛使用的语言,它使用一种名为 HiveQL 的语言将类似 SQL 的查询自动转换为在 Hadoop 上执行的 MapReduce 作业。由于 SQL 是学校教授和行业中使用的首选数据语言,Hive 将 SQL 放在 Hadoop 之上,通过使其强大的分析能力更容易为个人和组织(而不仅仅是开发人员)所用,从而改变了 Hadoop。Hive 最适合用于总结、查询和分析大型结构化数据集,在这些场景中,时间不是最重要的。
Spark
虽然 MapReduce 上的 Hive 非常有效地总结、查询和分析大型结构化数据集,但 Hadoop 在 MapReduce 上实现的计算速度很慢且受到限制,而这正是 Spark 的用武之地。Apache Spark 于 2009 年在加州大学伯克利分校的 AMPLab 开发,并于 2010 年开源,它是一个强大的 Hadoop 数据处理引擎,旨在以创纪录的速度处理批处理和流式工作负载。事实上,在 Apache Hadoop 2.0 上,Apache Spark 运行程序 在内存中比 MapReduce 快 100 倍,在磁盘上快 10 倍。
用户的好处是,Spark 不仅支持 SQL 查询、流数据和复杂分析(如机器学习和图算法)等操作,还允许将这些多种功能无缝地组合到单个工作流程中。此外,Spark 与 Hadoop 的分布式文件系统 (HDFS)、HBase 和任何 Hadoop 存储系统 100% 兼容,这意味着组织的所有现有数据都可以立即在 Spark 中使用。Spark 统一大数据分析的能力减少了组织构建单独处理系统来处理各种计算需求的需求。
Presto
面对对超过 250 PB 且还在不断增长的海量数据仓库执行快速交互式分析的任务,Facebook 的工程师开发了自己的查询引擎 Presto。与 Spark 在内存和磁盘中都运行程序不同,Presto 仅在内存中运行。此功能使 Presto 能够在 Hadoop 上以仅几百毫秒的时间运行简单查询,更复杂的查询也只需几分钟。相比之下,使用依赖 MapReduce 的 Hive 扫描整个数据集可能需要几分钟到几个小时不等。Presto 在 CPU 上的效率也被证明比 Hive 高达七倍。此外,Presto 可以将来自多个数据源的数据组合到单个查询中,从而允许跨整个组织进行分析。
如今,Presto 作为一种开源分布式 SQL 查询解决方案提供,组织可以使用它对从 GB 到 PB 的数据源运行交互式分析查询。凭借扩展到 Facebook 这样大的组织规模的能力,Presto 是一个强大的查询引擎,它已经改变了 Hadoop 生态系统,并且也可能对组织和整个行业产生变革性影响。
大数据每天都在变得更大。随着组织寻找新的和更好的方法来利用有价值的数据,他们将减少对 Hadoop 和 MapReduce 进行批处理的依赖,而更多地依赖 Hive、Spark 和 Presto 等开源工具来满足未来的大数据需求。
Quill
本文是 Jason Hibbets 协调的 Apache Quill 专栏的一部分。通过发送电子邮件至 open@opensource.com,与我们分享您在 Apache 软件基金会项目中的成功案例和开源更新.
3 条评论