Apache™ Hadoop® 是可被用于高效处理大型数据集的开源软件项目。相对于使用单台大型计算机来处理与存储数据,Hadoop 允许将商用硬件群集在一起,以并行分析庞大的数据集。Hadoop 生态系统中有很多应用程序和执行引擎,可提供各种工具以匹配您的分析工作负载需求。 Amazon EMR 使创建与管理完全配置的弹性 Amazon EC2 实例集群变得更加简单,这些实例在 Hadoop 生态系统当中运行 Hadoop 及其他应用程序。
Hadoop 生态系统当中的应用程序和框架
Hadoop 通常指实际的 Apache Hadoop 项目,其中包括 MapReduce(执行框架)、YARN(资源管理器)和 HDFS(分布式存储)。您还可以安装 Apache Tez,它是新一代框架,可替代 Hadoop MapReduce 作为执行引擎。Amazon EMR 还包括 EMRFS,它则是允许 Hadoop 使用 Amazon S3 作为存储层的连接器。
不过,Hadoop 生态系统当中还有其他应用程序和框架,包括可实现低延迟查询的工具、用于交互式查询的 GUI、各种类似于 SQL 的接口,以及分布式 NoSQL 数据库等。Hadoop 生态系统包含很多被设计用于在 Hadoop 核心组件上构建额外功能的开源工具,您可以使用 Amazon EMR 轻松地在您的集群上安装与配置工具,如 Hive、Pig、Hue、Ganglia、Oozie 和 HBase。除了 Amazon EMR 上的 Hadoop,您还可以运行其他框架,例如,用于内存中处理的 Apache Spark,或用于交互式 SQL 的 Presto。
Hadoop:基本组件
Amazon EMR 以编程方式在 Hadoop 项目中安装与配置应用程序,包括您的集群当中的跨节点 Hadoop MapReduce、YARN、HDFS 和 Apache Tez。
使用 Hadoop MapReduce、Tez 和 YARN 进行处理
Hadoop MapReduce 和 Tez 是在 Hadoop 生态系统处理工作负载的执行引擎,这些工作负载所采用的框架可将任务细分成更小的工作,使它们能够被分配到您的 Amazon EMR 集群中的多个节点。两者在构建时考虑到您的集群当中的任何特定设备都有可能随时发生故障,其设计具有容错能力。若运行任务的某服务器发生故障,Hadoop 会在另一台设备上再次运行该任务,直至完成为止。
您可以用 Java 编写 MapReduce 和 Tez 程序,使用 Hadoop Streaming 以并行方式执行自定义脚本,利用 Hive 和 Pig 实现比 MapReduce 和 Tez 更高级别的抽象,或者使用其他工具和 Hadoop 进行交互。
从 Hadoop 2 开始,由 Yet Another Resource Negotiator (YARN) 进行资源管理。YARN 会跟踪您的集群当中的全部资源,并确保这些资源被动态分配,以便完成您的处理任务中的任务。YARN 能够管理 Hadoop MapReduce 和 Tez 工作负载,以及其他分布式框架,如 Apache Spark。
使用 Amazon S3 和 EMRFS 的存储
通过在您的 Amazon EMR 集群上使用 EMR 文件系统 (EMRFS),您可以利用 Amazon S3 作为您的 Hadoop 数据层。Amazon S3 高度可扩展、成本低,而且专为持久性而设计,使其成为大数据处理的理想数据存储。在 Amazon S3 中存储数据,您可以从您的存储层分离计算层,允许您根据工作负载所需的 CPU 和内存数量调整 Amazon EMR 集群的大小,而不用在您的集群当中拥有额外节点,从而最大限度增加集群上的存储。此外,您还可以终止空闲的 Amazon EMR 集群以节约成本,同时将您的数据保留在 Amazon S3 当中。
EMRFS 针对 Hadoop 进行过优化,可高性能地以并行方式直接读取并写入到 Amazon S3,它还能处理使用 Amazon S3 服务器端和客户端加密方式进行加密的对象。EMRFS 使您可以使用 Amazon S3 作为您的数据湖,而 Amazon EMR 中的 Hadoop 可被用作弹性查询层。
使用 HDFS 的集群上存储
Hadoop 还包括分布式存储系统,也就是 Hadoop 分布式文件系统 (HDFS),它会以大数据块的形式在本地的多个集群磁盘存储数据。HDFS 具有可配置的复制因子(原定设置为 3 倍),从而提高可用性和持久性。当节点发生故障并添加新节点时,HDFS 将跨节点监视复制并均衡您的数据。
HDFS 会与 Hadoop 一起自动被安装到您的 Amazon EMR 集群上,而且您可以使用 HDFS 和 Amazon S3 来存储您的输入及输出数据。您可以使用 Amazon EMR 安全配置轻松加密 HDFS。而且,即使您的输入数据位于 Amazon S3 当中,Amazon EMR 也会配置 Hadoop 以便对在 Hadoop MapReduce 任务期间创建的中间数据使用 HDFS 和本地磁盘。
Amazon EMR 上的 Hadoop 的优势
提高速度和敏捷性
您可以动态并且快速地初始化新的 Hadoop 集群,或添加服务器到您的现有 Amazon EMR 集群,从而大幅缩短时间以使您的用户和数据科学家可以更快地使用资源。在亚马逊云科技平台上使用 Hadoop 可以降低成本并缩短分配资源以用于实验及开发所需的时间,显著提高您的企业的敏捷性。
降低管理复杂程度
Hadoop 配置、联网、服务器安装、安全配置和持续的管理维护可能是复杂而具有挑战性的活动。作为一项托管式服务,Amazon EMR 可以针对性地满足您的 Hadoop 基础设施的要求,因此您可以专注于您的核心业务。
与其他亚马逊云科技服务集成
您可以轻松集成您的 Hadoop 环境和其他服务,如 Amazon S3、Amazon Kinesis、Amazon Redshift 和 Amazon DynamoDB,在亚马逊云科技平台上的多项不同服务之间实现数据移动、工作流和分析。此外,您还可以使用 Amazon Glue 数据目录作为 Apache Hive 和 Apache Spark 的托管式元数据存储库。
只在需要时为集群付费
很多 Hadoop 任务具有突增的特性。例如,ETL 任务可能每小时、每天或每月运行,而金融公司的建模任务或基因测序则可能每年只运行若干次。在 Amazon EMR 上使用 Hadoop 使您可以在不需要时轻松启动这些工作负载集群、保存结果,以及关闭您的 Hadoop 资源,以避免产生不必要的基础设施成本。 EMR 6.x 支持 Hadoop 3,通过它,YARN NodeManager 可以直接在 EMR 集群主机或 Docker 容器内启动容器。请查看我们的文档以了解更多信息。
优化可用性和灾难恢复
通过在 Amazon EMR 上使用 Hadoop,您可以在任何亚马逊云科技中国区域的任意数量可用区当中灵活地启动您的集群。只需要数分钟在另一个可用区启动集群可以轻松规避单个区域或可用区内的潜在问题或威胁。
灵活的容量
在部署 Hadoop 环境前进行容量规划通常可能导致成本高昂的空闲资源或资源限制。借助于 Amazon EMR,您可以使用所需容量在数分钟内创建集群,并使用 EMR 托管式扩缩动态地横向扩展与横向缩减节点。
Hadoop 和大数据具有怎样的关联?
Hadoop 通常被用于处理大数据工作负载,因为它具有高度可扩展性。为提高您的 Hadoop 集群的处理能力,您可以添加更多具有所需 CPU 和内存资源的服务器以满足您的需要。
Hadoop 提供高级别持久性和可用性,同时依然能够并行处理计算分析工作负载。处理的可用性、持久性和可扩展性的组合使 Hadoop 成为大数据工作负载的理想选择。您可以使用 Amazon EMR 在数分钟内创建与配置运行 Hadoop 的 Amazon EC2 实例集群,并开始从您的数据获取价值。
使用案例
点击流分析
Hadoop 可被用于分析点击流数据,以便对用户进行细分并理解用户偏好。广告商还可以分析点击流和广告印象日志,以打造更高效的广告。
日志处理
Hadoop 可被用于处理由 Web 和移动应用程序生成的日志。Hadoop 可帮助您将 PB 级非结构化或半结构化数据转变成与您的应用程序或用户有关的有用见解。
PB 级分析
Hadoop 生态系统应用程序(如 Hive)允许用户利用采用 SQL 接口的 Hadoop MapReduce,在大规模、分布式的容错数据仓库实现分析。使用 Hadoop 来存储您的数据,并允许您的用户发送针对任何规模数据的查询。
基因组学
Hadoop 可被用于快速、高效地处理海量的基因组学数据和其他大型科学数据集。
ETL
考虑到它的高度可扩展性和较低成本,Hadoop 非常适用于常见的 ETL 工作负载,如收集、排序、联接与聚合大型数据集,以便下游系统可以更轻松地使用。
Apache 和 Hadoop 是 Apache Software Foundation 的商标。
详细了解 Amazon EMR 定价