【云驻共创】华为云大数据技术解密之MapReduce服务
目录
1、大数据介绍
2、MRS服务介绍
3、动手实践
大数据是人类进入互联网时代以来面临的一个巨大问题:社会生产生活产生的数据量越来越大,数据种类越来越多,数据产生的速度越来越快。传统的数据处理技术,比如说单机存储,关系数据库已经无法解决这些新的大数据问题。为解决以上大数据处理问题,Apache基金会推出了Hadoop大数据处理的开源解决方案。Hadoop是一个开源分布式计算平台,可以充分利用集群的计算和存储能力,完成海量数据的处理。企业自行部署Hadoop系统有成本高,周期长,难运维和不灵活等问题。
针对上述问题,华为云提供了大数据MapReduce服务(MRS),MRS是一个在华为云上部署和管理Hadoop系统的服务,一键即可部署Hadoop集群。MRS提供租户完全可控的一站式企业级大数据集群云服务,完全兼容开源接口,结合华为云计算、存储优势及大数据行业经验,为客户提供高性能、低成本、灵活易用的全栈大数据平台,轻松运行Hadoop、Spark、HBase、Kafka、Storm等大数据组件,并具备在后续根据业务需要进行定制开发的能力,帮助企业快速构建海量数据信息处理系统,并通过对海量信息数据实时与非实时的分析挖掘,发现全新价值点和企业商机。
一、大数据介绍
随着信息化和智能化的发展,人们的一言一行更容易通过电子设备形成一条条数据进行记录和收集。比较常见的是我们使用的手机、手环等终端设备,数据本身没有特别的作用,但是能从数据里面发现信息、总结规律,那么数据就非常有价值。举个简单的例子,我们常用的购物软件、新闻软件会收集我们的浏览数据,然后对这些数据进行分析,下次就会将我们感兴趣的内容推送过来,提高产品的吸引力。那么由于终端、智能终端的普及,越来越多的人可以使用到这些产品,这时候收集到的数据和种类也越来越多,传统的系统对这些庞大的数据力不从心,解决大数据的技术也就应运而生了。
目前Apache的多个体系是业界通用的大数据解决方案,它受到google的MapReduce和google File System 的启发,在2005年被纳入Apache。而且在开源项目当中,基于它的分布式计算框架和分布式文件系统,能够很好地解决数据量大、种类多、产生速度快的问题,所以在开源社区中反响非常热烈,越来越多的公司开始使用这个解决方案,并且发现将发现的问题反馈给开源社区。同时也有越来越多的开发者投入到开源社区的开发中,逐渐完善整个系统,形成了一个良性循环。并且在Hadoop的基础上也衍生了其他的技术来解决各种各样的大数据问题,例如非关系型数据库HBase、数据仓库hive等。接下来我们来逐一介绍一下常用的大数据组件。
MRS架构包括了基础设施和大数据处理流程各个阶段的能力。
- 基础设施
- 数据集成
数据集成层提供了数据接入到MRS集群的能力,包括Flume(数据采集)、Loader(关系型数据导入)、Kafka(高可靠消息队列),支持各种数据源导入数据到大数据集群中。
- 数据存储
MRS支持结构化和非结构化数据在集群中的存储,并且支持多种高效的格式来满足不同计算引擎的要求。
- HDFS是大数据上通用的分布式文件系统。
- OBS是对象存储服务,具有高可用低成本的特点。
- HBase支持带索引的数据存储,适合高性能基于索引查询的场景。
- 数据计算
MRS提供多种主流计算引擎:MapReduce(批处理)、Tez(DAG模型)、Spark(内存计算)、SparkStreaming(微批流计算)、Storm(流计算)、Flink(流计算),满足多种大数据应用场景,将数据进行结构和逻辑的转换,转化成满足业务目标的数据模型。
- 数据分析
基于预设的数据模型,使用易用SQL的数据分析,用户可以选择Hive(数据仓库),SparkSQL以及Presto交互式查询引擎。
- 数据呈现调度
用于数据分析结果的呈现,并与数据湖工厂(DLF)集成,提供一站式的大数据协同开发平台,帮助用户轻松完成数据建模、数据集成、脚本开发、作业调度、运维监控等多项任务,可以极大降低用户使用大数据的门槛,帮助用户快速构建大数据处理中心。
- 集群管理
以Hadoop为基础的大数据生态的各种组件均是以分布式的方式进行部署,其部署、管理和运维复杂度较高。
MRS集群管理提供了统一的运维管理平台,包括一键式部署集群能力,并提供多版本选择,支持运行过程中集群在无业务中断条件下,进行扩缩容、弹性伸缩。同时MRS集群管理还提供了作业管理、资源标签管理,以及对上述数据处理各层组件的运维,并提供监控、告警、配置、补丁升级等一站式运维能力。
首先是HDFS,HDFS是基于google发布的google File System论文进行设计开发,运行在通用软件上的分布式文件系统,简单来说就是将很多普通配置的机器结合起来,形成一个完整的文件系统。例如我们有一百台机器,每台机器只有1TB的存储空间,这时候HDFS可以将这一百台机器联合起来,管理所有机器的存储空间,从而形成一个100TB的文件系统。
接下来我们来介绍一下HDFS的主要特点。
首先是高容错性,HDFS认为这些普通机器随时可能会坏掉,所以存在HDFS里面的数据通常会有三份,分别存储在不同机器上面。如果有一台机器坏掉了,HDFS会将这台机器存储的数据备份到其他机器上,始终保持三份数据存在,以此来保证自身系统的可靠性。
第二个是高吞吐量,HDFS可以将命令下发到他所管理的机器上,同时进行数据的读写,提高数据的吞吐量。
第三个是大文件存储,HDFS支持存储TB到PB级别的数据。理论上我们可以通过扩容每台机器的硬盘容量和机器数量来达到无限的存储空间。
接着我们来介绍HDFS常用的三个概念。
NameNode : NameNode用于存储、生成文件系统的元数据信息。这些信息包括文件的物理地址、文件大小、备份数据、数据等。
DataNode : DataNode用于存储实际的数据,将自己管理的数据信息上报给NameNode 。
Client :支持业务访问HDFS,从NameNode ,DataNode获取数据返回给业务。
Hadoop:大数据的开源解决方案
然后我们来介绍一下MapReduce。MapReduce是基于google的分布式计算框架MapReduce论文进行设计、开发,用于大规模数据集的并行运算。它的原理是将每一个任务拆分成多个子任务,然后分配到多个节点进行计算,最后将结果进行汇总。比如我们要对1TB数据进行排序,如果单击处理的话,那么排序的时间就会非常的长,但是将这些数据拆分给多台机器,每台机器都对一部分数据进行排序,最后将排序结果进行汇总,这样排序的使用效率就大大的提高了。
其中每个拆分的任务称为map,汇总的任务称为Reduce。MapReduce的主要特点就是易于编程,程序员只需要设计好map和Reduce的工作内容不必考虑如何进行并行计算的调度,大大减轻了开发程序的工作量。那谁来控制MapReduce任务的运行呢?
这边我们就要说到Yarn,Yarn是Hadoop 2.0的资源管理系统主要管理机器的内存和cpu等计算资源,并且对应用程序提供作业调度服务。除了提供MapReduce框架以外,还可以支持spark自动等框架。它具有良好的拓展性,可以通过添加节点以扩展集群能力。它也有高容错性,可以通过计算迁移策略来提高集群的容错性。当他检测到一台机器的任务失败后,他会将这两个任务分配给其他机器继续执行,以此来保证最终任务的完成。接下来我们来了解样的核心理念。resourcemanager、Node manager和container。
resourcemanager是负责集群资源和计算框架的管理,可以根据容量、队列限制条件,将系统中的资源分配给各个正在执行的应用程序,然后监控程序的运行状态。而Nodemanager会运行在每台机器上,是资源分配和监控的最终执行者。container是Yarn的资源抽象,它装在某个节点上面的多维度资源,比如内存、cpu、磁盘、网络等,并且任务最终是运行在container当中。
接下来介绍以Hadoop为基础衍生的大数据技术。很多数据分析师不一定会写程序,但是他们是数据库的专家,精通各种sql语句,于是就有了Hive,Hive是基于哈杜普的数据仓库软件,可以查询和管理pb级别的分布式数据,可以将SQL查询查转换为MapReduce任务实现数据的处理。Hive经常用在于数据清洗、非实时分析和数据挖掘等场景。
接下来我们来了解一下Hive的核心组件,Hiveserver、MetaStore和WebHcat,Hive对外提供的Hive数据库服务,可以将用户提交的sql语句进行编译,解析成对应的MapReduce任务或者HDFS操作,并且返回查询结果。MetaStore提供了hive的原数据服务,负责hive的表结构和属性信息的读、写和修改。为WebHcat提供的rest接口,可以通过rest请求执行hive命令,提交MapReduce任务。由于hive基于MapReduce框架实时查询能力较弱。
当要使用实时查询时,我们可以使用HBase。HBase是一个高可用、高性能、面向列、可伸缩的分布式数据库,提供海量数据的存储功能,用来解决关系型数据库在处理海量数据时的局限性。改变HBase可以满足大表数据的存储,需要高效随机读取和同时存处理结构化和非结构化数据的场景。接下来我们来了解HBase的核心组件HMater和Regionserver。HMater是负责HBase中Regionserver的管理,包括表的增、删、改、查。Regionserver的负载均衡等,而Regionserver是负责提供表数据的读写服务,是HBase数据处理的计算单元。
接下来我们介绍一下HBase的协作组件,HDFS和zookeeper。Zookeeper是作为HBase的文件存储,HBase 的数据全部存储在HDFS当中,并且Regionserver一般与HDFS的datanode部署到一起。而Zookeeper为HBase提供分布式的协作服务。所有的Regionserver会将自己的信息注册到Zookeeper中,HMater可以根据Zookeeper的信息感知到各个Regionserver的健康状态。
Spark是一种通用的高性能集群计算系统,既有类似于MapReduce的分布式内存计算框架,也有类似于hive的类SQL查询,还提供了实时数据的处理引擎和机器学习的算法库,所以它覆盖的使用场景比较多,比如快速的数据清洗、实时数据分析、数据挖掘和机器学习等。相比于MapReduce来讲,它的核心特点就是使用内存进行计算。MapReduce会将计算之后中间结果存放到HDFS当中,然后再从HDFS读取这些数据进行再计算。而Spark会将中间结果存放到内存里面,直接在内存里面进行迭代计算,大大提高了计算的效率。
之前介绍的组件多数适用于离线数据的处理,接下来我们介绍适合实时数据处理的组件。首先是kafka,kafka是一个高吞吐、分布式、基于发布订阅的消息系统,利用kafka技术可以在廉价的机器上搭建起大规模消息系统,适用于离线和在线的消息消费。实时数据就像水流一样源源不断,而kafka就像一个蓄水池,有入水口和出水口,入水口的程序我们称为生产者,出水口的程序我们称为消费者,而生产者往这个水池里生产数据,消费者就在这个水池里对数据进行消费处理,所以kafka常用于常规的消息收集、网站的活性跟踪和聚合统计系统的运营数据等。
刚才提到消费者程序,那我们就来说一下Storm,Storm是一个分布式实时计算框架,具有高度容错、低时延的优点,所谓Storm常用于实时分析、实时统计和实时推荐等场景。我们从Storm的工作流中介绍Storm各个角色的功能。首先,client客户端向Nimbus提交具体的分析任务和Nimbus负责接收客户端提交的任务,并且将任务分发给Supervisor,Supervisor负责监听并接收Nimbus分配的任务,根据需要启动和停止属于自己管理的Worker进程。Worker进程是运行具体处理组件逻辑的进程,每一个Worker是单独的一个jvm进程,其中Executor是Worker里面的线程,负责处理具体的业务逻辑。而Zookeeper为服务提供分布式的协作。
Nimbus、Supervisor、Worker会将自己的信息注册到Zookeeper中,Nimbus可以根据Zookeeper里面的信息感知各个角色的状态。
讲完消费者,我们再来介绍可以作为生产者传说数据的Flume,Flume是一个分布式、可靠和高可用的海量日志聚合的系统,支持在系统中定制各各类数据发送方,用于。收集数据然后写到各种数据接收方的能力,用户几乎不必进行任何额外的开发即可使用,只需要配置好Source、Channel和Sink就可以进行数据传输。所谓Flume适用于需要传输数据并且较少开发的场景。接下来我们来介绍Flume的三个角色,Source也就是数据源。我们会将元始数据建模抽象成自己处理的数据对象,然后缓存到Channel的当中,而Channel的主要作用就是临时缓存数据,接下来就是Sink从Channel中出取出数据,并将数据放到最终的目的地当中。
二、华为云MRS介绍
要使用大数据技术,就需要搭建大数据环境,但是在搭建环境时就会面临以下问题,需要提前购买服务器,并且后续还需要维护这些服务器,建设成本非常高。然后需要搭建完大数据环境再部署业务。近十个组件都要部署的话,没有一周的时间是无法完成的。并且搭建后的集群如果是基于开源社区提供的版本,还没有完全的安全加固措施,很容易被非法人员进行入侵。即使把大数据环境部署好了,还需要专门懂得大数据技术的人维护这些组件,想到这些事情是不是瞬间想要放弃使用大数据技术。
别担心,使用华为的MapReduce可以轻松地解决这些问题。MapReduce服务是云时代全站企业级的大数据服务,简称MRS,MRS可以快速的部署通用大数据技术,并且在开源的基础上进行大量的增强。MRS还有长期在Hadoop、spark社区贡献的专家团队,及时解决开源的大数据问题,并且能提供企业级的集群管理能力,既有高可用的HA部署,也有多级用户管理,所以MRS对企业来说是一个既能满足大数据处理的大数据平台,而且对学习用户来说,也是可以快速学习大数据内核知识的平台,免去安装、部署等繁琐的步骤。
接下来我们来介绍一下MRS的主要优势。首先是易运维,用户可以在分钟级别内完成集群的创建,无需关注硬件的购买和维护,拥有专门研发的企业级集群管理系统,可以让用户更好的监控和管理大数据平台,并且可以通过短信和或者邮件的方式提醒用户平台异常。
然后是高安全,那么是通过华为专业的安全团队和德国PSA安全认证测试,提供Kerberos认证技术和角色级别的安全控制。非法人员无法对集群进行操作,具有完整的审计功能,所有操作都可追溯。
最重要的是低成本,可以灵活配置节点和磁盘规格,最低规格只需要两块两毛五一小时即可体验大数据集群,还可以支持集群按需扩容、缩容,支持临时集群作业运行完自动销毁,支持自定义策略集群自动弹性伸缩。
MRS还可以和华为云的很多服务进行配合使用,例如使用数据湖工厂对MRS进行任务的调度、编排,或者使用机器学习、深度学习服务对存储在MRS的数据进行再加工,提高数据价值。也可以使用语音识别和图像识别服务对存储的视频、音频文件进行处理。
接着我们来介绍MRS的基本使用场景,首先是MRS离线分析场景应用:
1.用户将待分析的数据存储到HDFS中
2.用户向MapReduceSpark或Hive提交数据清洗作业
3.在通过Yan分配资源执行完任务后会将结果数据存放在HDFS中
4.此时用户可以选择将HDFS中的结果数据导入HBase以便直询或直接把结果数据提出到应用做进一步处理
上图便是将杂乱的驾驶行为数据进行分析、处理,最后生成规整的车辆违规统计信息用于查询。
讲完离线场景,我们再来讲讲实时分析场景,应用可以将实时数据通过Flume或编写kafka程序导入到kafka中,然后编写Storm程序对实时分数据进行处理,处理后的数据可以存储到HDFS中,也可以提供给应用进行展示。上图便是将实时的交通车辆信息进行分析。统计路上的交通状况,然后在页面进行展示。
三、动手实践:如何使用MRS服务
作业一:
我们一起来学习如何使用 MRS来完成离线数据的分析
基本步骤:创建MRS分析集群,上传原始数据到OBS,使用Spark程序完成数据处理到查看结果数据
实践项目介绍和具体操作步骤指导下载地址:https://obs-train-data.obs-website.cn-north-1.myhwclouds.com/MRS作业一操作指导书.docx
1.1使用Spark2x实现车联网车主驾驶行为分析
1.场景描述
2.第一步;创建集群
3.第二步:准备Spark 样例程序和样例数据
4.第三步:创建作业
5.第四步;查看作业执行结果
场景描述:
目的:了解MRS的基本功能,利用MRS服务的Spark2x组件,对车主的驾驶行为进行分析统计,得到用户驾驶行为的分析结果。
场景:本次实战的原始数据为车主的驾驶行为信息,包括车主在日常的驾驶行为中,是否急加速、急减速、空挡滑行、超速、疲劳驾驶等信息。通过Spark2x组件的强大的分析能力,分析统计指定时间段内,车主急加速、急减速、空挡滑行、超速、疲劳驾驶等违法行为的次数。
创建集群
步骤1,登录华为云管理控制台。
步骤2,在“服务列表”中,选择“大数据>MapReduce服务”。
步骤3, 单击页面右上角“购买集群”,进入购买集群页面。
步骤4,选择“自定义购买”
自定义购买-硬件配置
步骤6,单击“下一步”,高级配置页签参考表1-3配置以下信息,其他选项保持默认值。
步骤7,单击“立即购买”,进入任务提交成功页面。
步骤8 ,单击“返回集群列表”,可以查看到集群创建的状态。集群创建需要时间,所创集群的初始状态为“启动中”,创建成功后状态更新为“运行中”,请您耐心等待。
准备Spark2x样例程序和样例数据
步骤1 创建OBS并行文件系统,用于存放Spark 样例程序、样例数据、作业执行结果和日志。
1.登录华为云管理控制台。
2.在“服务列表”中,选择“存储>对象存储服务”。
3.单击“并行文件系统>创建并行文件系统”,创建一个名称为obs-demo-analysis-hwt4 的文件系统。存储类别和桶策略等参数分别保持默认值。
创建并行文件系统
步骤⒉单击obs-demo-analysis-hwt4 文件系统名称。选择左侧导航栏“文件”,在“文件”页签下单击“新建文件夹”,分别新建program、input 文件夹,如图所示。
步骤3 从https://mrs-obs-cn-north-4.obs.cn-north-4.myhuaweic loud.com/mrs-demon-samples/demon/driver_behavior.jar路径下载样例程序driver_behavior.jar至本地。
步骤4 进入program文件夹,单击“上传文件”,选择本地存放的driver_behavior.jar样例程序。
步骤5 单击“上传”,上传样例程序到OBS桶。
步骤6 从 https://mrs-obs-cn-north-4.obs.cn-north-4.myhuaweicloud.com/mrs-demon-samples/demon/detail-records.zip获取 Spark样例数据到本地。
步骤7 解压获取到的 Spark样例数据。
步骤8 进入input文件夹,单击“上传文件”,选择本地存放的Spark样例数据。
步骤9单击“上传”,上传样例数据到OBS文件系统。
创建作业
步骤1 在MRS控制台左侧导航栏选择“集群列表>现有集群”,单击名称为“mrs _demo"的集群。
步骤2 在集群信息页面选择“作业管理”页签,单击“添加”,进入添加作业页面。
步骤3 按图完成作业参数配置。
添加作业
步骤4 单击“确定”,开始提交作业,执行程序。
查看作业执行结果
步骤1进入“作业管理”页面,查看作业执行状态。
步骤2 等待1~2分钟,登录OBS控制台,进入obs-demo -ana lysis-hwt4文件系统的output目录中,查看执行结果,在生成的csv文件所在行的“操作”列单击“下载”按钮将该文件下载到本地。
下载作业执行结果如图:
步骤3 在本地将下载后的csv文件使用Excel自文本打开,按照样例程序中定义的字段为每列数据进行分类,得到如下图所示作业执行结果。
执行结果如图:
总结:
华为云提供了大数据MapReduce服务(MRS),MRS是一个在华为云上部署和管理Hadoop系统的服务,一键即可部署Hadoop集群。MRS提供租户完全可控的一站式企业级大数据集群云服务,完全兼容开源接口,结合华为云计算、存储优势及大数据行业经验,为客户提供高性能、低成本、灵活易用的全栈大数据平台,轻松运行Hadoop、Spark、HBase、Kafka、Storm等大数据组件,并具备在后续根据业务需要进行定制开发的能力,帮助企业快速构建海量数据信息处理系统,并通过对海量信息数据实时与非实时的分析挖掘,发现全新价值点和企业商机。
本文整理自华为云社区【内容共创系列】活动。
查看活动详情:https://bbs.huaweicloud.com/blogs/314887
相关任务详情:华为云MapReduce服务
- 点赞
- 收藏
- 关注作者
评论(0)