大数据云服务:托管模式AWS EMR
1.架构简介
Amazon Elastic Map Reduce(Amazon EMR)是一种Web服务,让用户能够轻松、快速并经济地处理大量的数据。
Amazon EMR简化了大数据处理,提供的托管Hadoop框架可以跨越各个动态可扩展的Amazon EC2实例分发和处理海量数据,如图11.6所示。
图11.6
在Amazon EMR上运行的Hadoop集群使用EC2实例作为虚拟Linux服务器用于主节点和从属节点,将Amazon S3用于输入和输出数据的批量存储,并将Cloud Watch用于监控集群性能和发出警报。
AWS EMR采用存储和计算分离的架构,数据存储在S3上,计算资源来自EC2实例。集群创建之后,MapReduce通过HDFS代理调用S3接口,从S3上读取和写入数据。
2.节点
Amazon EMR为集群中的服务器定义了三种角色。
(1)主节点——管理集群:协调将MapReduce可执行文件和原始数据子集分配到核心实例组和任务实例组。此外,它还会跟踪每个任务的执行状态,监控实例组的运行状况。一个集群中只有一个主节点。这与Hadoop主节点映射。
(2)核心节点——使用Hadoop分布式文件系统(HDFS)运行任务和存储数据。这与Hadoop从属节点映射。
(3)任务节点(可选)——运行任务:这与Hadoop从属节点映射。
3.集群
集群是一组执行工作的服务器。在Amazon EMR中,集群是一组以EC2实例形式运行的虚拟服务器。
1)如何向集群发送工作
在Amazon EMR上运行集群时,会针对如何指定所需完成的工作提供多个选项。
(1)完整地定义要在Map和Reduce函数中完成的工作。对于那些处理固定的数据量并在处理完成时终止的集群,通常会采取这种做法。
(2)创建长时间运行的集群并使用控制台、Amazon EMR API、AWS CLI或Amazon EMR CLI提交步骤,其中可以包含一个或多个Hadoop任务。
(3)创建一个安装了Hadoop应用程序(如Hive、Pig或HBase)的集群,并使用这些应用程序提供的接口以脚本或者交互方式提交查询。
(4)创建长时间运行的集群、连接该集群并使用Hadoop API提交Hadoop任务。
2)集群的生命周期
图11.7显示的是集群的生命周期及每个阶段是如何映射到具体的集群状态的。
图11.7
成功的Amazon EMR集群遵循此流程:Amazon EMR先配置 Hadoop集群,在这期间,集群的状态是STARTING;接着,运行任何用户定义的引导操作,在这期间,集群的状态是BOOTSTRAPPING;在所有引导操作完成后,集群的状态是RUNNING,在此阶段,任务流程会按顺序运行所有的集群步骤。
如果用户通过启用keepalive参数将集群配置为长时间运行的集群,那么集群会在处理完成后等待下一组说明时进入WAITING状态。用户必须在不再需要该集群时手动终止该集群。
如果用户将集群配置为暂时性的集群,那么它将在所有的步骤完成后自动关闭。
当集群在没有遇到错误的情况下终止时,它的状态会转换为SHUTTING_DOWN,且集群会关闭,从而终止虚拟服务器实例。集群上存储的所有数据都会被删除,而其他地方(如Amazon S3存储段)中存储的信息会保存下来。最后,当所有的集群活动完成时,集群的状态会标记为COMPLETED。
除非启用了终止保护,否则,集群流程期间的任何故障都会终止该集群及其所有的虚拟服务器实例,集群上存储的任何数据都会被删除,集群的状态会标记为FAILED。
4.和Amazon EMR交互的方式
有多种可以和Amazon EMR交互的方式。
(1)Console(控制台):这是一种图形界面,可用于启动和管理集群。借助这个界面,用户可以填写各种Web窗体,指定待启动集群的详细信息,查看现有集群的详细信息,调试和终止集群。使用控制台是开始使用Amazon EMR的最简单方式,不需要编程知识。控制台是在线提供的,网址是https://console.aws.amazon.com/elasticmapreduce/。
(2)AWS CLI(命令行界面):一种可在用户的本地计算机上运行的客户端应用程序,用于连接Amazon EMR,以及创建和管理集群。AWS CLI包含特定于Amazon EMR的功能丰富的命令集。用户可以使用它来编写脚本,以实现启动和管理集群的自动化。如果用户希望从命令行工作,则最好的选择是使用AWS CLI。
(3)Amazon EMR CLI:一种可在用户的本地计算机上运行的旧式客户端应用程序,用于连接Amazon EMR,以及创建和管理集群。用户可以使用它来编写脚本,以实现启动和管理集群的自动化。Amazon EMR CLI的功能开发已停止。我们鼓励使用Amazon EMR CLI的客户迁移至AWS CLI。新用户应该下载AWS CLI,而不是Amazon EMR CLI。
(4)Software Development Kit(软件开发工具包,SDK):AWS提供一个带有各种函数的软件开发工具包,这些函数会调用Amazon EMR创建和管理集群。借助该软件开发工具包,用户可以编写应用程序,用于自动处理集群的创建和管理流程。如果用户希望扩展或者自定义Amazon EMR的功能,那么软件开发工具包是最好的选择。用户可以从http://aws.amazon.com/sdkforjava/下载适用于Java的AWS开发工具包。
(5)Web Service API:AWS提供低级别的界面,可以用来直接使用JSON调用Web服务。如果想要创建调用Amazon EMR的自定义软件开发工具包,则最好的选择是使用该API。有关详细信息请参阅Amazon EMR API Reference。
5.EMR架构的优缺点
存储和计算分离架构,其最大的好处是集群按需创建,需要时创建集群,不需要时可以释放,从而节省成本。该架构非常适合云上按需获取资源的模式。这种方案的比较大的问题是性能比较低下;集群创建周期长,通常需要十分钟甚至以上;虚拟机性能下降比较明显,大数据是重负载任务,通常虚拟机上的性能相比物理机集群下降60%;集群规模受限,不能像物理机集群那样一个集群包含几千台虚拟机。这就意味着该架构只适合中小客户,只能处理几百GB规模的小数据。
- aws codecommit 代码托管服务使用
- 利用AWS简单存储服务(S3)托管网站
- asp.net web api的自托管模式HttpSelfHostServer可以以控制台程序或windows服务程序为宿主,不单单依赖于IIS web服务器
- Windows Azure Cloud Service (41) 修改云服务IIS托管管道模式为4.0经典模式
- [Azure]经典模式下关于云服务配置多个VIP的使用说明
- 选择数据中心托管服务提供商需要考虑什么?
- 告别传统系统架构模式,学习Dubbo分布式服务治理框架
- .Net Core 项目在Windows服务中托管
- 检测到在集成的托管管道模式下不适用的 ASP.NET 设置。
- 重置目录服务还原模式管理员密码
- angular的$q服务和promise模式
- 全新一代企业级大数据应用模式揭秘
- 使用开放源代码框架的 Java 应用程序的 Web 服务集成模式,第 2 部分: 实现接收模式
- 大数据早报:亚马逊AWS推出机密云服务 为便利店提供数据服务「超盟数据」完成A轮融资(11.22)
- 数据中心的邻近度:如何更接近托管服务提供商?
- 使用开源中国的源代码托管服务进行团队开发的一点总结
- 云计算的三种服务模式:IaaS,PaaS和SaaS
- 瞄准被动型中小企业用户,DIY建站工具Bizness Apps利用“白标项目”分销模式提供本地化定制服务
- 使用托管应用程序运行和使用WCF服务
- 几个提供大数据分析服务以及机器学习API的公司