- 产品›
- Amazon EMR›
- Amazon EMR 功能
Amazon EMR 上的 Apache Hadoop
概述
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 是在 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 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 可被用作弹性查询层。
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 S3、Amazon Kinesis、Amazon Redshift 和 Amazon DynamoDB,在亚马逊云科技平台上的多项不同服务之间实现数据移动、工作流和分析。此外,您还可以使用 Amazon Glue 数据目录作为 Apache Hive 和 Apache Spark 的托管式元数据存储库。
Hadoop 和大数据具有怎样的关联?
全部打开Hadoop 通常被用于处理大数据工作负载,因为它具有高度可扩展性。为提高您的 Hadoop 集群的处理能力,您可以添加更多具有所需 CPU 和内存资源的服务器以满足您的需要。
Hadoop 提供高级别持久性和可用性,同时依然能够并行处理计算分析工作负载。处理的可用性、持久性和可扩展性的组合使 Hadoop 成为大数据工作负载的理想选择。您可以使用 Amazon EMR 在数分钟内创建与配置运行 Hadoop 的 Amazon EC2 实例集群,并开始从您的数据获取价值。
使用案例
全部打开考虑到它的高度可扩展性和较低成本,Hadoop 非常适用于常见的 ETL 工作负载,如收集、排序、联接与聚合大型数据集,以便下游系统可以更轻松地使用。
Apache 和 Hadoop 是 Apache Software Foundation 的商标。