泰为基于EMR的考量与实践

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 阿里云EMR是基于 Hadoop 的生态环境来搭建,同时可以跟阿里云的对象存储服务OSS等云服务进行无缝数据交换,方便用户将数据在存储平台和计算平台之间进行输入输出,以满足不同业务类型的需要,所以对阿里云EMR充满期待。

关于作者:武基鹏,主要从事大数据平台产品的技术工作;负责设计、构建和优化基于HDFS/HBase的存储平台架构;负责整体提升Hadoop/Hbase等集群的高可用性、高性能、高扩展特性;负责对公司的Apache Hadoop1.2、CDH4及CDH5集群的部署、监控、调优和运维;此外,还精通Java、Shell、Python编程和管理SQL数据库及熟悉NOSQL的经验。

1.58元/小时起快速体验 Hadoop & Spark ,为你助力大数据计算

阿里云EMR是基于 Hadoop 的生态环境来搭建,同时可以跟阿里云的对象存储服务OSS等云服务进行无缝数据交换,方便用户将数据在存储平台和计算平台之间进行输入输出,以满足不同业务类型的需要,所以对阿里云EMR充满期待。

screenshot

在登录和打开阿里云 EMR的console web界面时,被阿里这种简约扁平化设计风格深深吸引着。
其中阿里云EMR的”概览、集群、作业、执行计划、报警、帮助”六大模块,操作起来简单易上手,但其底层实现的架构设计必定很复杂。其中阿里云EMR的各种文档很齐全,很方便我们能够快速了解和迅速部署我们自己的EMR集群。

screenshot

深究ETL业务逻辑

在计划迁移Rundeck上的Product Job到阿里云EMR上,一定要先充分地了解现有业务的处理逻辑、Job脚本代码以及集群组件Hadoop、Hive环境等。为了不影响现有产品环境的稳定性,所以一般要先选择Stage的Job进行迁移,调试。其ETL业务在ETL Cluster的基本架构如图所示:

screenshot

调研阿里云EMR产品

在接下来的工作中,仔细调研阿里云EMR产品,发现有这么四点优势吧。

  • 有易用性 ;
  • 有和OSS、RDS等产品深度结合;
  • 有较高的安全性,主要整合了阿里云 RAM 资源权限管理系统,通过主子账号对服务权限进行隔离;
  • 其实还有更重要一点,在 [2016云栖大会] 上,其价格再次降低,更加受企业青睐。

由于我们的Product Job是每天凌晨run,所以阿里云EMR的按需创建方案很适合我们当前的ETL 业务,而且当Job run结束时,无论执行计划是否成功,都会释放集群资源,降低企业的cost。

定制化所属自己的集群环境

当前我们的业务是Log ETL 离线处理,当前集群环境是CDH5.4.8(Hadoop2.6 + Hive1.1.0),其中在阿里云EMR集群中,只提供Apache Hadoop2.7.2+Hive2.0.0组合,由于业务环境的jar包和hive sql的某些特性是Hive低版本特有的,高版本现在处于bug中,所以与阿里云EMR的Hive2.0.0兼容效果不是很好。
所以这里要感谢@阿里封神提供一个非常赞的idea给我,是将EMR集群自带Hive2.0.0给替换成我们特定hive-1.2.1-emr版本。需将该版本打包存放在OSS存储上,因为OSS到EMR集群,下载速度无带宽限制,非常迅速,最终我们选择Apache Hive版本为1.2.1,接下来就是调试踩坑和打补丁编译版本。所以这块时间花费整个迁移项目时间的1/2。

screenshot

迁移Stage Job至阿里云EMR的流程

EMR集群的机器配置:

  • 4 核 16GB / SSD云盘 / 40G X 1 / series II 1台(Master)
  • 4 核 16GB / SSD云盘 / 40G X 4 / series II 3台(Core)

其具体流程:

  • 在作业tab页,创建4组共16个job;
  • 在执行计划tab页,创建执行计划,其中需要配置如下
    •调度策略为每天凌晨运行

•关联集群为按需创建集群
•作业配置为按顺序绑定16个job
•启动报警模块,推送消息给Administrator
screenshot

在迁移过程,有几点建议:

  • 先选择按量付费创建好集群,切不可在执行计划中按需创建集群;
  • 开启 运行日志,方便跟踪查看log;
  • 在创建作业时,注意oss与ossref功能上区别;
  • 在shell脚本,每行是要加”;”作为结尾;
  • 在shell脚本,假如最后一行假如有 chown/chmod命令,虽然log日志显示错误和该作业状态为失败,但其实 该命令是执行成功的。所以我们一般在最后一行添加”echo “end script.”;”;
  • 在创建执行计划时,按照作业的功能,分组来配置作业计划,便于更加好的调试;
  • 可以直接ssh登录header(master)主机上,手工执行脚本或者命令来调试。

screenshot

screenshot

验证阿里云EMR Job Run数据的准确性
当迁移好Stage job,那么接下来要验证rundeck job跑的数据结果和阿里云EMR 的job跑的结果,一般我们的开发人员或者Owner采取两种方法来验证。

  • 对比结果文件的数据行数;
  • 使用Beyond Compare 4工具,将结果文件的数据内容对比;
    (一般抽检第一行和最后一行数据)

迁移Product Job 至阿里云EMR和验证结果数据准确性
接下来迁移Rundeck Product Job至阿里云EMR上,其实主要修改两点:

  • 将脚本的传入参数由stage改为prod;
  • 修改作业的名称、参数路径由stage改为prod。
    然后每个项目的job run一次和rundeck的job数据进行严格的验证准确性。

停止前身Rundeck Job,正式调度阿里云EMR的执行计划
将Rundeck的Product Job暂停调度,停止集群服务,释放CPU和Memory资源。
然后正式配置、调度阿里云EMR的ETL Product的 执行计划XXX_Product-EMR_ETL。
screenshot

其ETL业务在EMR的基本架构如图所示:
screenshot

未来规划
目前,泰为信息科技(上海)有限公司的中国区项目资源基本都使用了阿里云的ECS机器资源,OSS存储资源,负载均衡,专有网路VPC等;在未来,我司会根据项目的需求和管理性等,会继续调研迁移项目,上云数据库RDS、Redis和数加等产品。

小小总结
从公司方面来说:

  • 减少运维人员的维护成本,更加易用;
  • 每天调度EMR的Product执行计划,每月共只需约295元,而之前搭建ETL集群环境的5台ECS机器资源,每月共需3625元,大大降低地公司的项目费用;
  • 释放集群机器资源,降低成本;
  • 可以弹性调整集群规模;
  • 可靠性和可用性得到了保证(SLA为99.999%);
  • 加强用户作业信息的安全性;
  • 提高管理控制,并建立战略继续提高生产力;

从个人方面来说:

  • 对业务逻辑有着深刻了解;
  • Hive手工打补丁和编译版本;
  • 对大数据这块有着更深刻的理解;

从我们对阿里云EMR希望方面来说:

  • 我们的作业由于数据依赖关系,应该为并行配置,但当前配置只为串行配置;
  • 作业失败,能够有retry机制;
  • 作业数量太多,能够时间点备份(导出)和恢复;
  • 作业列表提供 project来分组,毕竟数量太多,现在只能在作业名称上加stage,product来区别;
  • 能够提供邮件预警通知;
  • 增加对EMR不同版本的选择;

最后总结一下,阿里云EMR从2015年11月发布EMR-1.0.0版本以来,至今才1年不到,已经升级为EMR-2.1.0版本,增加了许多的功能,如用户作业信息加密、与OSS存储无私接缝等等。无论是在开发者社区还是在微信阿里云大数据群组里,EMR的开发者们积极与我们沟通,及时认真回答我们提出的每一个问题,及时听取我们用户的需求。所以我们有理由地相信,阿里云EMR在未来,会越走越远,越做越好!

参考文档

ossref:// 同样是指向一个 OSS 的路径,不同的是它会将对应的代码资源下载到本地,然后将命令行 中的路径替换为本地路径。它是用于更方便地运行一些本地代码,而不需要登录到机器上去上传代码和依赖的资源包。
注意: ossref 不可以用来下载过大的数据资源,否则会导致集群作业的失败。

泰为公司成立于1999年,总部坐落于美国硅谷所在地加利福尼亚的桑尼维尔市。泰为公司是全球无线位置领域的领跑者之一,其手机导航产品曾服务于无线运营商AT&T, Sprint, CMCC等。Telenav自有品牌Scout产品,是当今能与Google map和Apple map竞争的为数不多的产品。也是全球车载导航产品的供应商,目前其导航产品正在Ford等世界顶级车厂中进行商用服务。

screenshot

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
3月前
|
存储 人工智能 运维
轻喜到家基于 EMR-StarRocks 构建实时湖仓分析平台实践
本文从轻喜到家的历史技术架构与痛点问题、架构升级需求与 OLAP 选型过程、最新技术架构及落地场景应用等方面,详细介绍了轻喜到家基于 EMR-StarRocks 构建实时湖仓分析平台实践经验。
881 0
轻喜到家基于 EMR-StarRocks 构建实时湖仓分析平台实践
|
5月前
|
运维 监控 调度
小米基于 Flink 的实时计算资源治理实践
小米基于 Flink 的实时计算资源治理实践
|
6月前
|
SQL 存储 分布式计算
TIS借力阿里云 JindoFS 快速实现云上数据集成分析
利用TIS 借力阿里云 Jindo 快速实现云上数据集成分析,为用户提供免维护、费用低廉、稳定、高效的数仓服务。
252 0
|
8月前
|
Kubernetes 流计算 混合部署
Flink 数据集成服务在小红书的降本增效实践
实时引擎研发工程师袁奎,在 Flink Forward Asia 2022 数据集成专场的分享。
496 0
 Flink 数据集成服务在小红书的降本增效实践
|
8月前
|
存储 弹性计算 运维
EMR Serverless StarRocks体验报告
本次测评报告我将从功能、稳定性、性能、运维、成本和收益等方面对EMR Serverless StarRocks进行评估,以确保该产品能够满足业务需求并提供有用的参考信息。通过本次测评,我希望能够为用户提供有用的参考信息,帮助他们做出明智的决策。
278 2
|
9月前
|
SQL 消息中间件 运维
联通 Flink 实时计算平台化运维实践
联通数科实时计算团队负责人、Apache StreamPark Committer 穆纯进在 Flink Forward Asia 2022 平台建设专场的分享
5281 6
联通 Flink 实时计算平台化运维实践
|
10月前
|
SQL 运维 监控
开源大数据平台 E-MapReduce Serverless StarRocks 产品介绍
本文将分享阿里云与 StarRocks 社区合作打造的云上 StarRocks 极速湖仓的云原生产品实践。 主要包括四个部分,第一部分介绍 StarRocks 全托管形态,以及免运维服务的 OLAP 云产品;第二部 分介绍 StarRocksManager 的实例管理、诊断分析、元数据管理、安全中心等功能;第三部分介绍 在社交、在线教育、电商等场景的使用案例;最后是对产品的长短期规划。
6707 0
|
SQL 存储 运维
如何降低 Flink 开发和运维成本?阿里云实时计算平台建设实践
本次分享主要介绍阿里云实时计算平台从 2.0 基于 Yarn 的架构到 3.0 云原生时代的演进,以及在 3.0 平台上一些核心功能的建设实践,如健康分,智能诊断,细粒度资源,作业探查以及企业级安全的建设等。
如何降低 Flink 开发和运维成本?阿里云实时计算平台建设实践
|
弹性计算 资源调度 运维
视频-《 EMR 集群运维与排障》|学习笔记(四)
快速学习视频-《 EMR 集群运维与排障》
174 0
视频-《 EMR 集群运维与排障》|学习笔记(四)
|
SQL 存储 弹性计算
视频-《 EMR 集群运维与排障》|学习笔记(一)
快速学习视频-《 EMR 集群运维与排障》
150 0
视频-《 EMR 集群运维与排障》|学习笔记(一)