MapReduce快速实现单词统计【玩转华为云】

举报
龙哥手记 发表于 2022/08/20 14:16:59 2022/08/20
【摘要】 云上创建、配置、访问MapReduce服务,并基于MapReduce服务提供的HDFS实现单词统计,tm肝起!!

主要内容有:

一 MapReduce的优势是啥

二 应用场景在哪

三 基础先打牢

四 手把手部署MRS

五 实现HDFS单词统计

1.gif

1.1 啥是MapReduce服务?

是一个在华为云上部署管理Hadoop系统的服务,一键即可部署Hadoop集群。MRS提供租户完全可控的企业级大数据集群云服务,轻松运行Hadoop、Spark、HBase、Kafka、Storm等大数据组件,并具备在后续根据业务需要进行定制开发;

1.gif

一 🚀 MapReduce的优势是啥

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

用户自建大数据集群面临成本高、周期长、运维难和不灵活等问题。针对这些问题,MRS支持一键式创建、删除、扩容和缩容集群的能力,用户可以自定制集群的类型,组件范围,各类型的节点数、虚拟机规格、可用区、VPC网络、认证信息,MRS将为用户自动创建一个符合配置的集群,全程无需用户参与。同时支持用户快速创建多应用场景集群,比如快速创建Hadoop分析集群、HBase集群、Kafka集群。MRS支持部署异构集群,在集群中存在不同规格的虚拟机,允许在CPU类型,硬盘容量,硬盘类型,内存大小灵活组合;

MRS提供了基于弹性公网IP来便捷访问组件WebUI的安全通道,并且比用户自己绑定弹性公网IP更便捷,只需界面鼠标操作,即可简化原先用户需要自己登录虚拟私有云添加安全组规则,获取公网IP等步骤,减少了用户操作步骤;

MRS提供了自定义引导操作,用户可以以此为入口灵活配置自己的集群,通过引导操作用户可以自动化地完成安装MRS还没支持的第三方软件,修改集群运行环境等自定义操作;

MRS支持WrapperFS特性,提供OBS的翻译能力,兼容HDFS到OBS的平滑迁移,解决客户将HDFS中的数据迁移到OBS后,即可实现客户端无需修改自己的业务代码逻辑的情况下,访问存储到OBS的数据;

2.png


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

MRS可以按业务峰谷,自动弹性伸缩,在业务繁忙时申请额外资源,业务不繁忙时释放闲置资源,用户按需使用,帮助用户节省大数据平台闲时资源,尽可能的帮助用户降低使用成本,聚焦核心业务;

在大数据应用,尤其是周期性的数据分析处理场景中,需要根据业务数据的周期变化,动态调整集群计算资源以满足业务需要。MRS的弹性伸缩规则功能支持根据集群负载对集群进行弹性伸缩。此外,如果数据量为周期有规律的变化,并且希望在数据量变化前提前完成集群的扩缩容,可以使用MRS的资源计划特性。MRS服务支持规则和时间计划两种弹性伸缩的策略:

  • 弹性伸缩规则:根据集群实时负载对Task节点数量进行调整,数据量变化后触发扩缩容,有一定的延后性。
  • 资源计划:若数据量变化存在周期性规律,则可通过资源计划在数据量变化前提前完成集群的扩缩容,避免出现增加或减少资源的延后。

弹性伸缩规则与资源计划均可触发弹性伸缩,两者即可同时配置也可单独配置。资源计划与基于负载的弹性伸缩规则叠加使用可以使得集群节点的弹性更好,足以应对偶尔超出预期的数据峰值出现;


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

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

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

1.png


4 MRS支持自研CarbonData与自研超级调度器Superior Scheduler,性能更优

MRS支持自研的CarbonData存储技术,CarbonData是一种高性能大数据存储方案,以一份数据同时支持多种应用场景,并通过多级索引、字典编码、预聚合、动态Partition、准实时数据查询等特性提升了IO扫描和计算性能,实现万亿数据分析秒级响应;

MRS支持自研超级调度器Superior Scheduler,突破单集群规模瓶颈,单集群调度能力超10000节点。Superior Scheduler是一个专门为Hadoop YARN分布式资源管理系统设计的调度引擎,是针对企业客户融合资源池,多租户的业务诉求而设计的高性能企业级调度器。Superior Scheduler可实现开源调度器、Fair Scheduler以及Capacity Scheduler的所有功能。另外,相较于开源调度器,Superior Scheduler在企业级多租户调度策略、租户内多用户资源隔离和共享、调度性能、系统资源利用率和支持大集群扩展性方面都做了针对性的增强,让Superior Scheduler直接替代开源调度器;

5 温馨提示

“Kerberos认证”关闭,用户可使用MRS集群的所有功能,建议单用户场景下使用;“Kerberos认证”开启时,普通用户无权限使用MRS集群的“文件管理”和“作业管理”功能,并且无法查看Hadoop、Spark的作业记录以及集群资源使用情况。如果需要使用集群更多功能,需要找MRS Manager的管理员分配权限。建议在多用户场景下使用;


二 🎯 应用场景在哪

1 海量数据分析场景

它是大数据系统中的主要场景。通常企业会包含多种数据源,接入后需要对数据进行ETL(Extract-Transform-Load)处理形成模型化数据,以便提供给各个业务模块进行分析梳理,这类业务通常有以下特点:

  • 对执行实时性要求不高,作业执行时间在数十分钟到小时级别
  • 数据量巨大
  • 数据来源和格式多种多样
  • 数据处理通常由多个任务构成,对资源需要进行详细规划

例如在环保行业中,可以将天气数据存储在OBS,定期转储到HDFS中进行批量分析,在1小时内MRS可以完成10TB的天气数据分析;

该场景下MRS的优势:

  • 低成本:利用OBS实现低成本存储。
  • 海量数据分析:利用Hive实现TB/PB级的数据分析。
  • 可视化的导入导出工具:通过可视化导入导出工具Loader,将数据导出到DWS,完成BI分析;


2 海量数据存储场景

用户拥有大量结构化数据后,通常需要提供基于索引的准实时查询能力,如车联网场景下,根据汽车编号查询汽车维护信息,存储时,汽车信息会基于汽车编号进行索引,以实现该场景下的秒级响应。通常这类数据量比较庞大,用户可能保存1至3年的数据;

例如在车联网行业,某车企将数据储存在HBase中,以支持PB级别的数据存储和毫秒级的数据详单查询;

该场景下MRS的优势:

  • 实时:利用Kafka实现海量汽车的消息实时接入;
  • 海量数据存储:利用HBase实现海量数据存储,并实现毫秒级数据查询;
  • 分布式数据查询:利用Spark实现海量数据的分析查询;


3 实时数据处理场景

实时数据处理通常用于异常检测、欺诈识别、基于规则告警、业务流程监控等场景,在数据输入系统的过程中,对数据进行处理。例如在梯联网行业,智能电梯的数据,实时传入到MRS的流式集群中进行实时告警;

该场景下MRS的优势:

  • 实时数据采集:利用Flume实现实时数据采集,并提供丰富的采集和存储连接方式
  • 海量的数据源接入:利用Kafka实现万级别的电梯数据的实时接入;



三 😊 基础打牢先

什么是弹性公网IP?

弹性公网IP(Elastic IP,简称EIP)提供独立的公网IP资源,包括公网IP地址与公网出口带宽服务。可以与弹性云服务器、裸金属服务器、虚拟IP、弹性负载均衡、NAT网关等资源灵活地绑定及解绑。拥有多种灵活的计费方式,可以满足各种业务场景的需要。

什么是OBS?

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

什么是虚拟私有云?

虚拟私有云(Virtual Private Cloud)是用户在华为云上申请的隔离的、私密的虚拟网络环境。用户可以基于VPC构建独立的云上网络空间,配合弹性公网IP云连接云专线等服务实现与Internet、云内私网、跨云私网互通,帮您打造可靠、稳定、高效的专属云上网络;

什么是弹性云服务器?

弹性云服务器(Elastic Cloud Server, ECS)是一种云上可随时自助获取、可弹性伸缩的计算服务,可帮助您打造安全、可靠、灵活、高效的应用环境;


四 😘 手把手部署MRS

4.1 购买MapReduce服务

登录华为云完成后点击“控制台”->“服务列表”->“大数据”->“MapReduce服务MRS”进入MRS控制台,如下图

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

点击右上角“购买集群”,进入购买集群页面,请选择“自定义购买”页面;

按照如下信息配置集群基本信息:
【区域】:华北-北京四
【集群名称】:自定义名称,本实验手册以“mrs-hcia”为例
【集群版本】:MRS 1.9.2
【集群类型】:混合集群

【分析组件】:全选
【流式组件】:全选

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

【CPU架构】:x86计算
【集群节点】:
Master节点:
计费模式:按需计费
实例规格:点击编辑按钮,选择c3ne.xlarge.4|4 vCPUs | 16 GB,实例数量为1,系统盘和数据盘为高IO 100GB
集群高可用:关闭
配置后点击确认。
分析Core节点:
计费模式:按需计费
实例规格:点击编辑按钮,选择c3ne.xlarge.4|4 vCPUs | 16 GB,实例数量为1,系统盘和数据盘为高IO 100GB
配置后点击确认。
流式Core节点:
实例规格:点击编辑按钮,选择c3ne.xlarge.4|4 vCPUs | 16 GB,实例数量为1,系统盘和数据盘为高IO 100GB
其它配置默认,配置后点击确认,点击【下一步】进入高级配置;

高级配置如下:
【标签】:默认
【弹性伸缩】:默认
【引导操作】:默认
【委托】:暂不绑定
【数据盘加密】:关闭
【告警】:关闭
【日志记录】:关闭
其余设置如下图所示:

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

【登录方式】:密码
【用户名】:root
【密码】:fdtDWS%!$709
【确认密码】:fdtDWS%!$709
通信安全授权:勾选“确认授权”,如下图所示:

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

4.2 购买弹性公网IP

点击集群名称,进入集群列表页,点击“节点管理”,在”节点组名称”下,找到名称为”master_*”的节点,选择展开,如下图所示

点击节点名称,进入弹性云服务器的控制台,如下图

点击“弹性公网IP”选项,再点击“查看弹性公网IP”,会自动跳转到购买页面

点击“购买弹性公网IP”,信息参数配置如下
【计费模式】:按需计费
【区域】:华北-北京四(与购买集群时所选区域一致)
【线路】:全动态BGP
【公网带宽】:按带宽计费
【带宽大小】:5
【带宽名称】:默认
【高级配置】:默认
【监控】:默认
【购买量】2

点击”立即购买”,确认信息后,点击“提交”完成购买

4.3 绑定弹性IP

浏览器切回到弹性云服务器的管理控制台页面。点击“绑定弹性公网IP”,网卡默认,勾选选择一个IP,点击“确定”

刷新页面,可以看到服务器已成功绑定一个弹性公网IP

4.4 修改安全组

点击左上角服务列表,选择“虚拟私有云”服务

进入虚拟私有云管理界面后,依次单击左侧 “访问控制”->“安全组”,进入安全组管理界面后,点击以mrs开头的安全组

然后点击“入方向规则”->“添加规则”,并按下图添加入方向规则,配置如下
① 优先级:1
② 策略:允许
③ 协议端口:全部放通;
④ IP地址设为0.0.0.0/0
点击“确定”

4.5 访问集群的管理页面

切换浏览器至“mrs-hcia”集群详情页面,点击“概览”->“IAM用户同步”,点击同步,然后点击“前往 Manager”,如下图所示

在弹出框中选择弹性IP,然后勾选确认框,点击”确定”

在弹出的浏览器页面(若未弹出请再次点击“点击查看”按钮,此时浏览器可能会阻止弹出该界面,请选择允许),选择“高级”-> "添加例外" ->“确认安全例外”,如下图所示

在弹出页面中输入用户名:admin及密码(密码是在申请集群时设置的)

点击“登录”,即可进入MRS Manager页面

五 🎨 实现HDFS单词统计

5.1 下载实验数据

切回到桌面双击“Xfce终端”打开Terminal输入执行以下命令下载实验数据

wget https://sandbox-experiment-resource.obs.cn-north-1.myhuaweicloud.com/mapreduce/wordcount

下载成功如下图所示

5.2 下载wordcount jar包

在terminal中执行以下命令下载wordcount jar

wget https://sandbox-experiment-resource.obs.cn-north-1.myhuaweicloud.com/mapreduce/hadoop-mapreduce-examples-3.1.1-mrs-2.0.jar 

下载成功如下图

5.3 将数据和代码上传到OBS

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

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

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

创建完成后,点击“input”文件夹名字进入到“input”文件夹,然后点击“上传对象”按钮弹出窗口(上传方式默认),点击“添加文件”将下载的“wordcount”(选择“Home”位置可看到下载的该文件)文件文档,点击“上传”到“input”文件夹

上传完成如下图

点击上图中“返回上一级”,使用同样的方法,新建一个名为“jar”的文件夹,然后点击名称进入,并将“hadoop-mapreduce-examples-3.1.1-mrs-2.0.jar”上传到jar文件夹中,上传完成如下图

最终目录结构如下图

5.3 提交mapreduce作业,进行单词统计

切回浏览器的集群管理页面,选择“作业管理”,如下图

点击“添加”按钮,如下图

① 作业类型:MapReduce;
② 作业名称:wordcount;
③ 执行程序路径:点击"OBS",选择“obs-xxxx”->“jar”->“hadoop-xxx”文件夹并确定;
④ 执行程序参数:wordcount;
数据输入路径:点击"OBS",选择“obs-xxxx”->“input”文件夹并确定;
数据输出路径:直接输入"/user/wordcount/"(如上图所示);
说明:每个参数之间需要添加空格。
⑤ 日志路径:默认
点击“确定”完成添加,等待程序执行成功,如下图

5.4 使用hdfs命令行客户端查询计算结果

在MRS Manager页面的地址栏,复制弹性IP地址,如下图

然后切换到桌面,双击“Xfce终端”打开Terminal,通过如下步骤,登录弹性服务器:
操作流程
①输入ssh root@EIP;
②用复制的弹性IP替换命令中的EIP,回车执行;
③接受秘钥输入“yes”,回车执行;
④输入密码(创建集群时设置的root密码),回车执行
注意:输入密码时,命令行窗口不会显示密码,输完之后直接回车即可
连接成功,如下图

登录成功后,执行以下命令查看计算结果

source /opt/client/bigdata_env && hdfs dfs -cat /user/wordcount/*

执行成功如下

说明集群运行正常可用的哈

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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