玩转阿里云EMR三部曲-入门篇

网友投稿 1450 2022-10-25

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

玩转阿里云EMR三部曲-入门篇

本文为Apache Spark技术交流社区内成员投稿,欢迎后台私信小编分享你的实践案例和心得。

作者:邓力,entobit技术总监,八年大数据从业经历,由一代hadoop入坑,深耕云计算应用领域,由从事AmazonEMR和阿里云EMR应用开发逐步转入大数据架构领域,对大数据生态及框架应用有深刻理解。

引言笔者近几年工作以架构为主,本系列文章旨在从系统架构层面提供一定参考和帮助。本文默认阅读文章的小伙伴们有MR/SPARK等基础,文中不再重复介绍相关知识

为什么选择阿里云EMR?

最近几年云计算行业发展迅猛,云计算服务商有诸如 阿里云,亚马逊,谷歌,微软,金山云,腾讯云,华为云。其中阿里云和亚马逊最亮眼。

亚马逊是云计算行业领头羊,文档全面,社区活跃,但是本地化做的很差,并且有跨时区交流障碍。

后起之秀阿里云在国内多城市拥有数据中心,优异的技术和快速的迭代能力能保证至少在大数据领域追上并反超亚马逊。

OSS和EMR

阿里云OSS全称是对象存储服务(object storage service),兼容hdfs存储服务,支持json,文本等类型。

详情可以查看官方文档,

https://help.aliyun.com/document_detail/31817.html?spm=5176.11065259.1996646101.searchclickresult.78ac47begmcMkX

mapreduce是计算框架,hadoop自带的hdfs可以作为存储,但是hdfs是公有云存储方案的最优解吗?

传统hdfs缺点:

难以扩展昂贵的SSD受限的并发能力需要自己维护

1/2/3可以用更多的投入解决,4需要更优秀的人才...,俨然HDFS并不是云计算服务下的最优解

OSS优点:

无限的扩展能力按量付费和多种存储模式原生高并发支持不需要参与维护

基于以上优缺点,在公有云计算服务下,可以使用OSS替代HDFS作为文件存储服务

注:可以使用osscmd/ossutil/restAPI/kafka等方式同步数据至OSS

阿里云EMR全称是阿里云elastic mapreduce,各位不要被字面疑惑只是和mapduce相关,实际阿里云EMR包含yarn,zk,spark等诸多组件,并且能融合flink,kafka等最新的开源框架,结合OSS服务可以产生1+1>2的效果

EMR优点:

托管集群自动化运维网页组件控制(类cloudera)配套集群监控完美兼容OSS多样集群类别

EMR详细可以参考官方文档,https://help.aliyun.com/document_detail/31817.html?spm=5176.11065259.1996646101.searchclickresult.78ac47begmcMkX

EMR集群收费模式

简单来说分为两种模式:包月和按需集群

包月集群集群按月/年付费,和传统自建集群类似。兼容OSS。

按需集群按需集群,按照实际使用时长付费,目前收费单位为小时。

按需集群不再长时间持有造成空负载浪费,用户根据需要可以合理的启动按需集群执行mr/spark/hive等任务。易于用户节省开支。

EMR按需集群实战

1.创建集群模板

进入新版控制台,

https://emr.console.aliyun.com/#/cn-hangzhou

选择 数据开发->创建集群模板,提示如下页

默认配置,进入下一步如图

选择北京C区-专有网络 并 设置 VPC和交换机(没有可以创建默尔值),安全组设置后继续机器配置选项,默认3台机器(masterx1,slavex2),进入下一步添加集群模板名,忽略高级配置,确认后成功创建集群模板

返回集群模板页面可以查看到刚才创建的集群

2.上传文件至OSS

本文以pi举例不用OSS文件。有需要(比如wordcount样例)可以借助与ossutil,

https://yq.aliyun.com/articles/550214?spm=5176.10695662.1996646101.searchclickresult.d4324941XBMTtl

或者控制台

https://oss.console.aliyun.com/overview

上传

3.编写作业

本文以spark pi为例

在左侧job栏内右键创建作业,作业类型为spark其他随意,作业内容为将要运行的spark命令参数

--class org.apache.spark.examples.SparkPi --master yarn-client --driver-memory 512m --num-executors 1 --executor-memory 1g --executor-cores 2 /usr/lib/spark-current/examples/jars/spark-examples_2.11-2.1.1.jar 10

4.创建并执行作业流

在左侧 选择 工作流设计->新建工作流,选择执行集群为创建的集群模板。

拖动spark并关联已保存的作业pi_test,拖动end,并按顺序链接start->pi_test->end节点。

保存并执行

5.查看集群和日志

在控制概览/集群管理可以查看启动中的集群,也可以查看 运行记录 中的作业日志

总结

优异的自动化创建集群让小伙伴可以专心于业务开发,不再纠结于hadoop版本,spark版本,甚至某些jar版本引发的各种奇怪问题,按需集群按小时计费模式替小伙伴们极大节省了开支,可以50个节点执行1小时,也可以3个节点执行5小时,非常灵活。可以保留更多精力和成本用于业务开发和维护,而把集群运维/存储(oss)问题托管给阿里云。

本文是一篇入门文章分享,后续还会有更多结合阿里云生态(不仅仅是EMR)的介绍和实践。

欢迎对EMR及相关技术感兴趣的同学进钉钉群一起讨论 :)

上一篇:强化协作联动,严把食品安全关,山东省威海市市场监管局多维发力构建食品监管新格局
下一篇:“路歌”母公司维天运通赶数字货运上市潮冲刺港交所,盈利依靠政府补助
相关文章

 发表评论

暂时没有评论,来抢沙发吧~