{"doc_title": "Amazon EMR常见问题", "doc_category": "", "qa_list": [{"Question": "Amazon EMR允许处理哪些类型的数据和业务情报工作负载?", "Answer": "使用Amazon EMR,您可以处理用于分析目的的数据和业务情报工作负载。"}, {"Question": "Amazon EMR允许将数据移出/移入到哪些AWS数据存储和数据库中?", "Answer": "Amazon EMR允许您转换大量数据并移出/移入到其它AWS数据存储和数据库中,例如Amazon Simple Storage Service(Amazon S3)和Amazon DynamoDB。"}, {"Question": "Amazon EMR的教程在哪里可以找到?", "Answer": "Amazon EMR的教程可以在Amazon EMR服务页面中找到,也可以在Amazon EMR管理指南中找到。"}, {"Question": "Amazon EMR集群由哪些组件构成?", "Answer": "Amazon EMR集群由集群和节点组成。集群是Amazon Elastic Compute Cloud(Amazon EC2)实例的集合,集群中的每个实例称作节点。"}, {"Question": "Amazon EMR中的节点类型有哪些?", "Answer": "Amazon EMR中的节点类型有主节点、核心节点和任务节点。"}, {"Question": "主节点在Amazon EMR集群中的作用是什么?", "Answer": "主节点管理集群,它通过运行软件组件来协调在其它节点之间分配数据和任务的过程以便进行处理。主节点跟踪任务的状态并监控集群的运行状况。"}, {"Question": "核心节点在Amazon EMR集群中的作用是什么?", "Answer": "核心节点具有运行任务并在集群上的Hadoop Distributed File System(HDFS)中存储数据的软件组件。多节点集群至少具有一个核心节点。"}, {"Question": "任务节点在Amazon EMR集群中的作用是什么?", "Answer": "任务节点具有仅运行任务但不在HDFS中存储数据的软件组件。任务节点是可选的。"}, {"Question": "Amazon EMR集群的生命周期包括哪些状态?", "Answer": "Amazon EMR集群的生命周期包括启动、运行、终止和终止后的状态。"}, {"Question": "如何向Amazon EMR集群提交工作?", "Answer": "可以通过几个选项向Amazon EMR集群提交工作。一种方法是在创建集群时在函数中提供要完成的工作的完整定义,并将其指定为步骤。另一种方法是创建一个长时间运行的集群并使用Amazon EMR控制台、API或AWS CLI提交包含一个或多个任务的步骤。还可以创建一个集群,根据需要使用SSH连接到主节点和其他节点,并使用安装的应用程序提供的界面以脚本或交互方式执行任务和提交查询。"}, {"Question": "如何处理Amazon EMR集群中的数据?", "Answer": "要处理Amazon EMR集群中的数据,可以直接向已安装的应用程序提交任务或查询,或在集群中运行步骤。可以通过安全连接连接到主节点,并访问可用于直接在集群上运行的软件的接口和工具。还可以向Amazon EMR集群提交一个或多个有序的步骤,每个步骤都是一个工作单位,其中包含可由集群上安装的软件处理的数据操作指令。"}, {"Question": "Amazon EMR支持哪些框架和应用程序?", "Answer": "Amazon EMR支持多种框架和应用程序,包括Hadoop、Spark、Presto、Hive、HBase、Flink、Zeppelin等。在启动集群时,用户需要选择要安装的框架和应用程序,以满足其数据处理需求。"}, {"Question": "如何连接到Amazon EMR集群?", "Answer": "可以通过安全连接连接到Amazon EMR集群的主节点,并访问可用于直接在集群上运行的软件的接口和工具。可以使用SSH连接到主节点和其他节点,并使用安装的应用程序提供的界面以脚本或交互方式执行任务和提交查询。"}, {"Question": "Amazon EMR中的数据输入通常存储在哪里?", "Answer": "Amazon EMR中的数据输入通常存储在您选择的底层文件系统(如 Amazon S3或HDFS)中的文件中。"}, {"Question": "Amazon EMR中的步骤是如何运行的?", "Answer": "Amazon EMR中的步骤按照提交请求的顺序运行。每个步骤的状态从PENDING(待处理)开始,第一个步骤启动时状态更改为RUNNING(正在运行),完成后状态更改为COMPLETED(已完成),然后序列中的下一个步骤启动,以此类推,直到所有步骤完成。"}, {"Question": "当Amazon EMR中的步骤失败时,其状态会如何更改?", "Answer": "当Amazon EMR中的步骤失败时,其状态会更改为FAILED(失败)。您可以选择忽略失败并允许继续执行其余步骤,或者立即终止集群。"}, {"Question": "Amazon EMR集群的生命周期是什么?", "Answer": "成功的Amazon EMR集群会遵循以下流程:首先为每个实例预置EC2实例,然后运行引导操作,在每个实例上安装本机应用程序,最后集群状态为RUNNING。在此期间,您可以连接到集群实例,集群将按顺序运行在创建集群时指定的任何步骤。"}, {"Question": "Amazon EMR如何处理数据?", "Answer": "在Amazon EMR中处理数据时,输入为以文件形式存储在您选择的底层文件系统(如 Amazon S3或HDFS)中的数据。数据从处理序列中的一个步骤传递到下一个。最后一步将输出数据写入指定位置,如Amazon S3存储桶。"}, {"Question": "集群何时进入WAITING状态?", "Answer": "集群在成功运行步骤后进入WAITING状态。"}, {"Question": "集群何时进入TERMINATING状态?", "Answer": "如果集群配置为在完成最后一个步骤后自动终止,则会进入TERMINATING状态。"}, {"Question": "集群何时进入TERMINATED状态?", "Answer": "集群在进入TERMINATING状态后会进入TERMINATED状态。"}, {"Question": "如何手动关闭集群?", "Answer": "如果集群配置为等待,您必须在不再需要它时手动将其关闭。"}, {"Question": "集群生命周期中的故障会导致什么?", "Answer": "集群生命周期中的故障将导致Amazon EMR终止集群及其所有实例,除非您启用了终止保护。"}, {"Question": "如何检索由于故障而终止的集群中的数据?", "Answer": "如果启用了终止保护,您可以从集群中检索数据,然后删除终止保护并终止集群。"}, {"Question": "Amazon EMR有哪些优势?", "Answer": "Amazon EMR有以下优势:节省成本、AWS集成、部署、可扩展性和灵活度、可靠性、安全性和监控。"}, {"Question": "Amazon EMR如何节省成本?", "Answer": "Amazon EMR可以根据您的需求自动启动和停止实例,从而最大程度地减少了成本。"}, {"Question": "Amazon EMR如何保证可靠性?", "Answer": "Amazon EMR使用多个实例来运行作业,从而提高了可靠性。如果一个实例出现故障,其他实例可以继续工作。"}, {"Question": "Amazon EMR如何保证安全性?", "Answer": "Amazon EMR提供了多种安全功能,例如加密、身份验证和访问控制,以保护您的数据和集群。"}, {"Question": "Amazon EMR 的定价取决于哪些因素?", "Answer": "Amazon EMR 的定价取决于您部署的 Amazon EC2 实例的实例类型和数量及您启动集群的区域。按需定价提供很低的费率,但您可以通过购买预留实例或竞价型实例来进一步降低成本。Spot 实例可以显著节省成本,在某些情况下,低至按需定价的十分之一。"}, {"Question": "如果我为 EMR 集群使用 Amazon S3、Amazon Kinesis 或 DynamoDB,会产生额外费用吗?", "Answer": "是的,这些服务会产生额外费用 - 与您的 Amazon EMR 使用费分开计费。"}, {"Question": "如果我在私有子网中设置 Amazon EMR 集群,需要为 Amazon S3 设置什么?", "Answer": "我们建议您也为 Amazon S3 设置 VPC 端点。如果您的 EMR 集群处于没有适用于 Amazon S3 的 VPC 端点的私有子网中,则您需要为与 S3 流量关联的其他 NAT 网关付费,因为您的 EMR 集群与 S3 之间的流量不是位于您的 VPC 内。"}, {"Question": "Amazon EMR 可以与哪些 AWS 服务集成?", "Answer": "Amazon EMR 可以与多个 AWS 服务集成,包括 Amazon EC2、Amazon Virtual Private Cloud(Amazon VPC)、Amazon S3、Amazon CloudWatch、AWS Identity and Access Management(IAM)、AWS CloudTrail、AWS Data Pipeline、AWS Lake Formation 等。"}, {"Question": "Amazon EMR 集群由哪些实例组成?", "Answer": "您的 EMR 集群由 EC2 实例组成,这些实例执行您提交给集群的工作。"}, {"Question": "如何为集群选择最适合处理需求的实例大小和类型?", "Answer": "您可以为集群选择最适合处理需求的实例大小和类型,包括批处理、低延迟查询、流数据或大数据存储。有关 Amazon EMR 实例类型的更多信息,请参阅配置集群硬件和联网。"}, {"Question": "Amazon EMR 可以如何灵活扩缩集群?", "Answer": "Amazon EMR 可以根据您的计算需求变化灵活扩缩集群。您可以调整集群,在工作负载高峰时增加实例,在工作负载高峰过后移除实例,从而控制成本。有关更多信息,请参阅手动调整正在运行的集群的大小。"}, {"Question": "Amazon EMR提供了哪些实例类型选项?", "Answer": "Amazon EMR提供了按需实例和竞价型实例两种选项。您可以在一个组中使用按需实例来保障处理能力,同时在另一个组中使用竞价型实例来加快任务完成速度并降低成本。您还可以混合多种实例类型以充分利用某种竞价型实例类型的定价优势。"}, {"Question": "Amazon EMR支持哪些文件系统?", "Answer": "Amazon EMR可以为您的输入、输出和中间数据灵活使用多种文件系统。例如,对于不需要在集群生命周期之外存储的处理数据,您可以选择在集群的主节点和核心节点上运行的Hadoop Distributed File System(HDFS)。您可以选择EMR文件系统(EMRFS),将Amazon S3用作在集群上运行的应用程序的数据层,以便分离计算和存储,并在集群生命周期之外保留数据。EMRFS具备更多优势,可供您独立扩展或收缩计算和存储需求。"}, {"Question": "Amazon EMR如何保证集群的可靠性?", "Answer": "Amazon EMR能够监控集群中的节点并自动终止和替换出现故障的实例。此外,您还可以配置终止保护,以防止集群中的实例由于处理期间出现的错误或问题而终止。如果启用终止保护,您可以在终止前从实例恢复数据。"}, {"Question": "Amazon EMR如何保护集群和数据的安全?", "Answer": "Amazon EMR利用其它AWS服务(如IAM和Amazon VPC)和功能(如Amazon EC2密钥对)来帮助您保护集群和数据。Amazon EMR与IAM集成以管理权限。您可以使用IAM策略定义权限,并将其附加到用户或IAM组。Amazon EMR还使用安全组控制EC2实例的入站和出站流量。Amazon EMR通过EMRFS支持可选的Amazon S3服务器端和客户端加密,以帮助保护您在Amazon S3中存储的数据的安全。"}, {"Question": "Amazon EMR如何配置集群终止方式?", "Answer": "Amazon EMR提供了控制集群终止方式(自动或手动)的配置选项。如果您将集群配置为自动终止,则集群会在所有步骤完成后终止。这称作暂时性集群。不过,您可以将集群配置为在处理完成后继续运行,这样,当您不再需要它时,可以选择手动终止集群。或者,您可以创建一个集群,与所安装的应用程序直接交互,然后在不再需要时手动将其终止。这些示例中的集群称作长时间运行的集群。"}, {"Question": "Amazon EMR如何与IAM配合使用?", "Answer": "Amazon EMR与IAM集成以管理权限。您可以使用IAM策略定义权限,并将其附加到用户或IAM组。您在策略中定义的权限确定了这些用户或组成员能够执行的操作及其能够访问的资源。此外,Amazon EMR为Amazon EMR服务本身使用IAM角色,为实例使用EC2实例配置文件。这些角色授予服务和实例代表您访问其它AWS服务的权限。"}, {"Question": "Amazon EMR支持在哪种隔离的虚拟网络中启动集群?", "Answer": "Amazon EMR支持在Amazon VPC中的Virtual Private Cloud(VPC)中启动集群。"}, {"Question": "Amazon EMR集成哪个服务可以记录有关您的账户或代表您的AWS账户发起的请求的信息?", "Answer": "Amazon EMR集成CloudTrail可以记录有关您的账户或代表您的AWS账户发起的请求的信息。"}, {"Question": "Amazon EMR支持哪些SDK?", "Answer": "Amazon EMR目前在可用于以下SDK:Go、Java、.NET(C#和VB.NET)、Node.js、PHP、Python和Ruby。"}, {"Question": "Amazon EMR提供哪些可以和Amazon EMR交互的方式?", "Answer": "Amazon EMR提供多种可以和Amazon EMR交互的方式,包括控制台、AWS Command Line Interface(AWS CLI)、软件开发工具包(SDK)和Web服务API。"}, {"Question": "Amazon EMR架构概览中包括哪些层?", "Answer": "Amazon EMR服务架构包括多个层,每个层为集群提供特定的功能。这些层包括Amazon EC2、Amazon S3、Hadoop、YARN、Hive、Pig、Spark、Zeppelin、Ganglia和EMR Management。"}, {"Question": "什么是Amazon EMR的存储层?", "Answer": "Amazon EMR的存储层包含可用于集群的不同的文件系统,包括Hadoop Distributed File System(HDFS)、EMR 文件系统(EMRFS)和本地文件系统。"}, {"Question": "Hadoop Distributed File System(HDFS)是什么?", "Answer": "Hadoop Distributed File System(HDFS)是一种分布式、可扩展的文件系统,供 Hadoop 使用。HDFS 将它所存储的数据在集群中的实例之间进行分配,从而在不同的实例上存储多份数据副本,确保在单个实例发生故障的情况下不会出现数据的丢失。"}, {"Question": "什么是EMR 文件系统(EMRFS)?", "Answer": "借助 EMR 文件系统(EMRFS),Amazon EMR 可使 Hadoop 具备直接访问存储在 Amazon S3 中的数据(就像使用 HDFS 文件系统时一样)的功能。在集群中,您可以将 HDFS 或 Amazon S3 用作文件系统。Amazon S3 最常用于存储 HDFS 中存储的输入和输出数据以及中间结果。"}, {"Question": "什么是本地文件系统?", "Answer": "本地文件系统指的是本地连接的磁盘。创建 Hadoop 集群时,会从 Amazon EC2 实例上创建各个节点,这些节点附带了预先配置的数据块,这些数据块属于称为实例存储的预先附加的磁盘存储。实例存储卷上的数据仅在 Amazon EC2 实例的生命周期内保留。"}, {"Question": "Amazon EMR的资源管理层负责什么?", "Answer": "资源管理层负责管理集群资源和调度作业,以进行数据处理。默认情况下,Amazon EMR 使用 YARN(Yet Another Resource Negotiator,Apache Hadoop 2.0 中引入的一个组件)集中管理多个数据处理框架的集群资源。"}, {"Question": "Amazon EMR的数据处理框架层是什么?", "Answer": "数据处理框架层是用于分析和处理数据的引擎。可在 YARN 上运行并具有自己的资源管理功能的框架有很多。不同的框架适用于不同类型的处理需求,如批处理、交互式处理、内存中处理、流式处理等。"}, {"Question": "Amazon EMR支持哪些主要处理框架?", "Answer": "Amazon EMR支持Hadoop MapReduce和Apache Spark这两个主要处理框架。"}, {"Question": "Hadoop MapReduce是什么?", "Answer": "Hadoop MapReduce是一种用于分布式计算的开源编程模型,它通过处理除Map-Reduce功能外的所有逻辑简化了编写平行分布式应用程序的过程。"}, {"Question": "Map函数和Reduce函数在Hadoop MapReduce中的作用是什么?", "Answer": "Map函数将数据映射到一系列称为中间结果的键值对上,而Reduce函数则汇总这些中间结果、应用其它计算法并生成最终输出。"}, {"Question": "Apache Spark是什么?", "Answer": "Apache Spark是一种用于处理大数据工作负载的集群框架和编程模型,它使用有向无环图来执行计划,使用内存缓存来处理数据集。"}, {"Question": "在Amazon EMR上运行Spark时,可以直接访问哪个存储服务中的数据?", "Answer": "在Amazon EMR上运行Spark时,可以使用EMRFS直接访问Amazon S3中的数据。"}, {"Question": "Amazon EMR支持哪些应用程序?", "Answer": "Amazon EMR支持许多应用程序,如Hive、Pig和Spark Streaming库,以提供使用更高级的语言创建处理工作负载、运用机器学习算法、制作流处理应用程序、构建数据仓库等功能。"}, {"Question": "可以使用哪些库和语言与在Amazon EMR中运行的应用程序交互?", "Answer": "可以使用多种库和语言与在Amazon EMR中运行的应用程序交互,例如Java、Hive、Pig、Spark Streaming、Spark SQL、mLLib和GraphX等。"}, {"Question": "如何设置Amazon EMR?", "Answer": "在首次启动Amazon EMR集群之前,需要注册AWS账户并完成一些任务,如创建管理用户和启用多重身份验证等。"}, {"Question": "如何注册AWS账户?", "Answer": "您可以打开https://portal.aws.amazon.com/billing/signup并按照屏幕上的说明进行操作来注册AWS账户。在注册时,您将接到一通电话,要求您使用电话键盘输入一个验证码。"}, {"Question": "什么是AWS账户根用户?", "Answer": "当您注册AWS账户时,系统将会创建一个AWS账户根用户。根用户有权访问该账户中的所有AWS服务和资源。"}, {"Question": "为什么需要创建管理用户?", "Answer": "创建管理用户可以避免使用根用户执行日常任务,从而保护您的AWS账户根用户。"}, {"Question": "如何保护AWS账户根用户?", "Answer": "您可以对您的根用户启用多重身份验证(MFA)来保护您的AWS账户根用户。"}, {"Question": "如何为管理用户授予管理访问权限?", "Answer": "对于您的日常管理任务,请在AWS IAM Identity Center中为管理用户授予管理访问权限。"}, {"Question": "如何使用IAM Identity Center用户身份登录?", "Answer": "要使用您的IAM Identity Center用户身份登录,请使用您在创建IAM Identity Center用户时发送到您的电子邮件地址的登录URL。"}, {"Question": "什么是Amazon EMR?", "Answer": "Amazon EMR是一个托管集群平台,可简化在上运行大数据框架(如 Apache Hadoop 和 Apache Spark )的过程,AWS以处理和分析海量数据。"}]}