Spark完成他到底有没有好好开车呢?【玩转华为云】

举报
龙哥手记 发表于 2022/07/17 20:27:55 2022/07/17
【摘要】 用强大的MRS服务里面Spark来分析在统计指定时间内,他的急加速、急刹车、空挡滑行、超速、疲劳驾驶等违法行为的次数最后得出结论是不是又一个马路杀手?哈哈哈
本文的主要内容有:
  • 一 MapReduce先搞懂
  • 二 环境搞通再说
  • 三 准备好数据
  • 四 然后提交任务
  • 五 最后查看下结果

2.png

一 😘 MapReduce先搞懂

1.1 如何定义

MRS为客户提供Hudi、ClickHouse、Spark、Flink、Kafka、HBase等Hadoop生态的高性能大数据组件,支持数据湖、数据仓库、BI、AI融合等能力。MRS同时支持混合云和公有云两种形态:混合云版本,一个架构实现离线、实时、逻辑共三种数据湖,以云原生架构助力客户智能升级;公有云版本,协助客户快速构建低成本、灵活开放、安全可靠的一站式开发平台;

2.gif

1.2 优势在哪,我为啥不自建Hadoop组件呢?

首先MRS支持一键式创建、删除、扩缩容集群,并通过弹性公网IP便携访问MRS集群管理系统,让大数据集群更加易于使用

  1. 用户自建大数据集群面临成本高、周期长、运维难和不灵活等问题。针对这些问题,MRS支持一键式创建、删除、扩容和缩容集群的能力,用户可以自定制集群的类型,组件范围,各类型的节点数、虚拟机规格、可用区、VPC网络、认证信息,MRS将为用户自动创建一个符合配置的集群,全程无需用户参与。同时支持用户快速创建多应用场景集群,比如快速创建Hadoop分析集群、HBase集群、Kafka集群。MRS支持部署异构集群,在集群中存在不同规格的虚拟机,允许在CPU类型,硬盘容量,硬盘类型,内存大小灵活组合;
  2. MRS提供了基于弹性公网IP来便捷访问组件WebUI的安全通道,并且比用户自己绑定弹性公网IP更便捷,只需界面鼠标操作,即可简化原先用户需要自己登录虚拟私有云添加安全组规则,获取公网IP等步骤,减少了用户操作步骤;
  3.  MRS提供了自定义引导操作,用户可以以此为入口灵活配置自己的集群,通过引导操作用户可以自动化地完成安装MRS还没支持的第三方软件,修改集群运行环境等自定义操作;
  4. MRS支持WrapperFS特性,提供OBS的翻译能力,兼容HDFS到OBS的平滑迁移,解决客户将HDFS中的数据迁移到OBS后,即可实现客户端无需修改自己的业务代码逻辑的情况下,访问存储到OBS的数据;

4.png

然后MRS支持自动弹性伸缩,相对自建Hadoop集群的使用成本更低

  1. MRS可以按业务峰谷,自动弹性伸缩,在业务繁忙时申请额外资源,业务不繁忙时释放闲置资源,让用户按需使用,帮助用户节省大数据平台闲时资源,尽可能的帮助用户降低使用成本,聚焦核心业务;
  2. 在大数据应用,尤其是周期性的数据分析处理场景中,需要根据业务数据的周期变化,动态调整集群计算资源以满足业务需要。MRS的弹性伸缩规则功能支持根据集群负载对集群进行弹性伸缩。此外,如果数据量为周期有规律的变化,并且希望在数据量变化前提前完成集群的扩缩容,可以使用MRS的资源计划特性。MRS服务支持规则和时间计划两种弹性伸缩的策略:
  3. 弹性伸缩规则:根据集群实时负载对Task节点数量进行调整,数据量变化后触发扩缩容,有一定的延后性;
  4. 资源计划:若数据量变化存在周期性规律,则可通过资源计划在数据量变化前提前完成集群的扩缩容,避免出现增加或减少资源的延后;
  5. 弹性伸缩规则与资源计划均可触发弹性伸缩,两者即可同时配置也可单独配置,资源计划与基于负载的弹性伸缩规则叠加使用可以使得集群节点的弹性更好,足以应对偶尔超出预期的数据峰值出现;

3.png

MRS支持存算分离,大幅提升大数据集群资源利用率

针对传统存算一体大数据架构中扩容困难、资源利用率低等问题,MRS采用计算存储分离架构,存储基于公有云对象存储实现11个9的高可靠,无限容量,支撑企业数据量持续增长;计算资源支持0~N弹性扩缩,百节点快速发放。存算分离后,计算节点可实现真正的极致弹性伸缩;数据存储部分基于OBS的跨AZ等能力实现更高可靠性,无需担心地震、挖断光纤等突发事件。存储和计算资源可以灵活配置,根据业务需要各自独立进行弹性扩展,可使资源匹配更精准、更合理,让大数据集群资源利用率大幅提升,综合分析成本降低50%;

同时通过高性能的计算存储分离架构,打破存算一体架构并行计算的限制,最大化发挥对象存储的高带宽、高并发的特点,数据访问效率和并行计算深度优化(元数据操作、写入算法优化等),实现性能提升;

二 😉 环境搞通再说

2.1 购买MapReduce服务

登录华为云控制台,搜索MRS,选择“MapReduce服务 MRS”,进入MRS控制台,如下

敲黑板啦:需注意,请勿购买包周期资源或购买不符合实验要求的其他规格资源,否则所购买的实验资源将会被自动删除

点击右上角“购买集群”,进入购买集群页

按照如下信息配置集群基本信息
【区域】:华北-北京四
【集群名称】:自己想
【集群版本】:MRS 1.9.2
【集群类型】:分析集群

【分析组件】:全选
【元数据】:本地元数据

点击“下一步”,配置如下
【计费模式】:按需计费
【可用区】:默认
【虚拟私有云】:点击“查看虚拟私有云”,进入虚拟私有云界面,点击“创建虚拟私有云”,所有参数默认,点击“立即创建”即可。回到购买集群页面,点击刷新按钮,即可选中创建的虚拟私有云
【子网】:虚拟私有云创建完成后子网自动创建并选中
【安全组】:自动创建
【弹性公网IP】:暂不绑定

【CPU架构】:x86计算
【集群节点】
Master:实例规格:默认,集群高可用:关闭 
分析Core:实例规格:默认,实例数量改为1,其他默认不变

点击“下一步”,高级配置如下
【标签】:默认
【弹性伸缩】:默认
【引导操作】:默认
【委托】:暂不绑定
【数据盘加密】:关闭
【告警】:关闭
【日志记录】:关闭
其余设置默认即可

【Kerberos认证】:关闭
【用户名】:admin
【密码】:fdtDWS%!$709
【确认密码】:fdtDWS%!$709


【登录方式】:密码
【用户名】:root
【密码】:fdtDWS%!$709
【确认密码】:fdtDWS%!$709
【通信安全授权】:勾选确认安全授权

确认配置参数无误后点击右下方”立即购买”,开始申请MRS服务,此服务完全启动大约需要【10-20分钟】,请耐心等候



三 🎯 准备好数据

3.1 先下好

双击“Xfce终端”打开Terminal,输入以下命令下载保存“driver_behavior.jar”至本地目录

wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhwclouds.com/mrs-spark/driver_behavior.jar

输入以下命令保存“detail-records.zip”压缩包即可

wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhwclouds.com/mrs-spark/detail-records.zip

输入以下命令解压“detail-records.zip”压缩包

unzip detail-records.zip


然后输入以下命令查看下载及解压的文件

ls

数据最终处理如下

3.2 然后获取AK、SK

进入实验环境时程序已把访问密钥AK/SK下载至【实验操作桌面】,在【实验操作桌面】双击图标“Xfce 终端”打开命令行界面,输入以下命令,即可查看AK和SK内容:

vi /home/user/Desktop/credentials.txt

2.3.上传文件至OBS

在浏览器点击“控制台”->"服务列表" -> "存储" -> "对象存储服务",进入到对象存储服务页,如下

什么是OBS?

老朋友了都

是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力,包括:创建、修改、删除桶,上传、下载、删除对象等啥都有

在obs管理页面点击“创建桶”按钮创建一个OBS桶
参数配置如下
【复制桶配置:不选】
【区域】:华北-北京四
【桶名称】:自定义
【数据冗余存储策略】:单AZ存储
【默认存储类别】:标准存储
【桶策略】:私有
【默认加密】:关闭
【归档数据直读】:关闭
【标签】:默认

点击“立即创建”。创建完成后点击桶名称进入对象存储服务,点击左侧栏"对象",进入到对象管理页面,再点击“新建文件夹”创建一个名为“input”的文件夹,如下

点击“上传对象”按钮弹出窗口,点击“添加文件”,选择下载的“driver_behavior.jar”(选择“Home”位置可看到下载的该文件)文件文档,点击“上传”,如下

上传完成如下

点击创建的“input”文件夹,然后点击“上传对象”,在弹出的对话框中选择解压后的数据文件(即将上图所示位置下的“detail-records”文件夹中的所有文件Ctrl+A全选)进行上传。文件逐一上传后,检查一下是否有失败的文件,若是有失败的任务,请重新上传,结果如下


四 👌 然后提交任务

4.1.原理介绍下

原始数据文件通过华为云的对象存储服务(OBS)从线下上传到云上,提交Spark任务到MRS集群读取OBS中的数据,分析完成后将结果文件写回OBS,如下

4.2 然后提交作业

点击“控制台”->“服务列表”->“EI企业智能”->“MapReduce服务”进入MRS控制台,可以看到集群列表中预置实验环境时创建的MRS集群,单击该集群名称进入,点击“概览”->“IAM用户同步”,点击同步;

啥是Spark呢?

鼎鼎大名的流计算框架-Apache Spark,专门给大规模数据处理而设计的快速通用计算引擎。Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法;

同步完成后切换到“作业管理”页签,点击“添加”

在弹出的对话框中,按照以下信息进行作业配置
① 作业类型:SparkSubmit;
② 作业名称:driver_behavior_task;
③ 执行程序路径:点击“OBS”, 选择创建的桶->“driver_behavior.jar”文件并确定;
④ 运行程序参数:参数:--class 值:com.huawei.bigdata.spark.examples.DriverBehavior
⑤ 执行程序参数: AK SK 1
数据输入路径:点击“OBS”,选择创建的桶->“input”文件夹并确定;
输出路径:直接输入“s3a://桶名称/output/”;
说明:其中AK和SK需要替换成之前获取到的Access Key Id和Secret Access Key。注意每个参数之间需要添加空格
⑥ 日志路径:默认

单击“确定”按钮开始执行程序,【约需要1-2分钟】作业状态变为“已完成”,就可以到OBS中查看结果



五 😍 最后查看下结果

5.1 数据介绍

其中数据含义如下,其中每行数据代表一次记录,违章行为的值如果为1就代表违章,如果为空就代表本次记录没有该违章行为;

数据定义和详解如下(作业三的变量名可参考下图)

最终通过分析完成的目标就是得到下面数据

5.2 查看结果数据

仿照上面进入OBS(“控制台”->“服务列表”-> “存储” -> “对象存储服务”->“桶名称”->“对象”),可以看到生成“output”文件夹,点击打开,然后点击列表中以“part”开头的文件右侧的“下载”按钮将该文件下载到本地先;

然后打开命令行,任意位置粘贴以下命令退出AK,SK

:q

输入以下命令“cat /home/user/Downloads/filename”,然后将“filename”替换为下载的文件名(操作提示:命令行“cat”后面输入文件名开头“part”后单击“TAB”键自动补全),回车执行查看下载的文件内容

cat /home/user/Downloads/filename

可以看到Spark最终筛选结果如下

我敲下黑板数据依次为,驾驶员ID、车牌号、急加速次数、急刹车次数、空挡滑行次数、空挡滑行时间总和、超速次数、超速时间总和、疲劳驾驶次数、怠速次数、漏油次数;


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200