使用Spark2x实现车联网车主驾驶行为分析
应用场景
本实践基于华为云MapReduce服务所编写,用于指导您了解MRS的基本功能,利用MRS服务的Spark2x组件,对车主的驾驶行为进行分析统计,得到用户驾驶行为的分析结果。
原始数据为车主的驾驶行为信息,包括车主在日常的驾驶行为中,是否急加速、急减速、空挡滑行、超速、疲劳驾驶等信息,通过Spark2x组件的强大的分析能力,分析统计指定时间段内,车主急加速、急减速、空挡滑行、超速、疲劳驾驶等违法行为的次数。
本实践相关样例数据及程序以MRS 3.1.0版本为例,建议按照指定版本创建集群。
方案架构
Spark的应用运行架构如图1所示,运行流程如下所示:
- 应用程序(Application)是作为一个进程的集合运行在集群上的,由Driver进行协调。
- 在运行一个应用时,Driver会去连接集群管理器(Standalone、Mesos、YARN)申请运行Executor资源,并启动ExecutorBackend。然后由集群管理器在不同的应用之间调度资源。Driver同时会启动应用程序DAG调度、Stage划分、Task生成。
- 然后Spark会把应用的代码(传递给SparkContext的JAR或者Python定义的代码)发送到Executor上。
- 所有的Task执行完成后,用户的应用程序运行结束。
操作流程
本实践基本操作流程如下所示:
- 步骤1:创建MRS集群:创建一个分析集群,版本号为MRS 3.1.0,不启用Kerberos认证。
- 步骤2:准备样例程序和数据:创建OBS并行文件系统,并将Spark2x样例程序和样例数据上传到OBS并行文件系统中。
- 步骤3:创建作业:在MRS管理控制台创建SparkSubmit作业并运行。
- 步骤4:查看作业执行结果:作业执行完成后在OBS路径中获取日志文件并查看执行结果。
步骤1:创建MRS集群
- 进入购买MRS集群页面。
- 选择“自定义购买”。
参见表1配置集群软件信息。
表1 软件配置 参数名称
参数说明
取值样例
区域
选择区域。
不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。
选择“华北-北京四”
说明:本指导以“华北-北京四”为例进行介绍,如果您需要选择其他区域进行操作,请确保所有操作均在同一区域进行。
计费模式
选择待创建的MRS集群的计费模式。
按需计费
集群名称
待创建的MRS集群名称。
mrs_demo
集群类型
待创建的MRS集群类型。
选择“分析集群”,用来做离线数据分析。
版本类型
待创建的MRS集群版本类型。
选择“普通版”。
集群版本
待创建的MRS集群版本。
选择“MRS 3.1.0”。
说明:本实践仅适用于MRS 3.1.0版本。
组件选择
选择待创建的MRS集群配套的组件。
勾选所有组件。
元数据
是否使用外部数据源存储元数据。
选择“本地元数据”。
图2 自定义购买-软件配置
- 单击“下一步”配置硬件信息。
参见表2配置集群硬件信息。
表2 硬件配置 参数名称
参数含义
取值样例
可用区
选择集群工作区域下关联的可用区。
可用区2
企业项目
选择集群所属的企业项目。
default
虚拟私有云
选择需要创建集群的VPC,单击“查看虚拟私有云”进入VPC服务查看已创建的VPC名称和ID。如果没有VPC,需要创建一个新的VPC。
xxx
子网
选择需要创建集群的子网,可进入VPC服务查看VPC下已创建的子网名称和ID。如果VPC下未创建子网,请单击“创建子网”进行创建。
xxx
安全组
安全组是一组对弹性云服务器的访问规则的集合,为同一个VPC内具有相同安全保护需求并相互信任的弹性云服务器提供访问策略。
自动创建
弹性公网IP
通过将弹性公网IP与MRS集群绑定,实现使用弹性公网IP访问Manager的目的。
绑定一个弹性公网IP。
集群节点
配置集群节点信息。
保持默认值。
图3 自定义购买-硬件配置
- 单击“下一步”,高级配置页签参考表3配置以下信息,其他选项保持默认值。
- 单击“下一步”,在“确认配置”页面检查配置集群信息,如需调整配置,可单击,跳转到对应页签后重新设置参数。
- 勾选通信安全授权后,单击“立即购买”,进入任务提交成功页面。
- 单击“返回集群列表”,可以查看到集群创建的状态。
集群创建需要时间,所创集群的初始状态为“启动中”,创建成功后状态更新为“运行中”,请您耐心等待。
步骤2:准备样例程序和数据
- 创建OBS并行文件系统,用于存放Spark样例程序、样例数据、作业执行结果和日志。
- 登录华为云管理控制台。
- 在“服务列表”中,选择 。
- 单击“并行文件系统 > 创建并行文件系统”,创建一个名称为“obs-demo-analysis-hwt4”的文件系统。策略等参数保持默认值。
- 单击文件系统名称。选择左侧导航栏“文件”,在“文件”页签下单击“新建文件夹”,分别新建“program”、“input”文件夹,如图4所示。
- 从 https://mrs-obs-cn-north-4.obs.cn-north-4.myhuaweicloud.com/mrs-demon-samples/demon/driver_behavior.jar路径下载样例程序driver_behavior.jar至本地。
- 进入“program”文件夹,单击“上传文件”,选择本地存放的driver_behavior.jar样例程序。
- 单击“上传”,上传样例程序到OBS并行文件系统。
- 从https://mrs-obs-cn-north-4.obs.cn-north-4.myhuaweicloud.com/mrs-demon-samples/demon/detail-records.zip获取Spark样例数据到本地。
- 将下载的“detail-records.zip”解压,获取图5所示的样例数据。
- 进入“input”文件夹,单击“上传文件”,选择本地存放的Spark样例数据。
- 单击“上传”,上传样例数据到OBS并行文件系统。
上传步骤 7中解压后的数据至“input”文件夹下。
图6 上传样例数据
步骤3:创建作业
- 在MRS控制台左侧导航栏选择 ,单击名称为“mrs_demo”的集群。
- 在集群信息页面选择“作业管理”页签,单击“添加”,进入添加作业页面。
- 完成作业参数配置。
表4 配置作业信息 参数名称
参数说明
取值样例
作业类型
选择待创建的作业类型。
选择“SparkSubmit”。
作业名称
自定义作业名称。
输入“driver_behavior_task”。
执行程序路径
待执行程序包的存放路径。
单击“OBS”,选择步骤2:准备样例程序和数据中上传名称为driver_behavior.jar的jar包。
运行程序参数
为本次执行的作业配置相关优化参数,用于优化资源使用效率,提升作业的执行性能。
参数选择“--class”,值输入“com.huawei.bigdata.spark.examples.DriverBehavior”。
执行程序参数
输入“访问OBS的AK信息 访问OBS的SK信息 1 输入路径 输出路径”。
- AK/SK请参考说明方式获取。
- 1为固定输入,用于指定作业执行时调用的程序函数。
- 输入路径可通过单击“OBS”进行选择输入路径。
- 输出路径请手动输入一个不存在的目录,例如obs://obs-demo-analysis-hwt4/output/。
说明:访问OBS的AK/SK信息可通过如下方式获取:
- 登录华为云管理控制台。
- 单击右上角的用户名,然后选择“我的凭证”。
- 系统跳转至“我的凭证”页面,单击“访问密钥”。
- 单击“新增访问密钥”申请新密钥,按照提示输入密码与验证码之后,浏览器自动下载一个“credentials.csv”文件,文件为csv格式,以英文逗号分隔,中间的为AK,最后一个为SK。
AK信息 SK信息 1 obs://obs-demo-analysis-hwt4/input/ obs://obs-demo-analysis-hwt4/output/
服务配置参数
用于为本次执行的作业修改服务配置参数。
保持默认不配置。
图7 添加作业
- 单击“确定”,开始提交作业,执行程序。