大数据时代Hadoop和Spark技术研究

2020-12-20 11:04王玉河源职业技术学院
品牌研究 2020年4期
关键词:存储系统经办内存

文/王玉(河源职业技术学院)

作为专门负责大数据处理的Hadoop平台与Spark 平台,为加快大数据计算与处理效率,确保大数据资源实现充分利用发挥了重要作用。而明确Hadoop 技术与Spark技术当中的核心技术,了解其生态系统等也是实现两种技术深入应用的根本前提。

因此本研究不仅可为人们深化对大数据时代下Hadoop技术与Spark 技术提供相应的理论参考,同时也能为两种技术的实践应用给予一定指导帮助。

一、大数据时代下的Hadoop技术分析

(一)核心技术

1.计算模型

在基于大数据的Hadoop 技术中,其核心技术之一便是MapReduce 计 算 模 型。其 作 为Hadoop大数据处理平台中的关键核心,本质上属于一个并行计算框架,使得Hadoop 平台能够有效完成大数据计算工作。

在该计算模型中,其需要先封装诸多底层问题,包括分割数据与数据并行处理等,令用户能够根据自身实际需要,确定实现相应并行计算任务的逻辑,进而有效实现分布式程序设计优化。在计算时,数据的存在形式固定为<key,value>键值对,并在使用map 函数的基础上配合使用reduce函数。其中前者通过采用key-value格式,在物理存储设备上进行源文件的读取,而后运用相同格式输出。后者也选择使用该格式在map 函数中进行数据读取,经过计算模型处理后的数据将保持key-value 格式,被直接写入物理存储设备中。

2.存储系统

在Hadoop平台中的另一大核心技术即HDFS 分布式存储系统,其作为Hadoop平台中的存储核心,可直接在各种廉价服务器上进行部署与运行,从而有效完成各类文件尤其是超大文件的处理工作。在采用一次写入多次读取的设计理念下,平台中的分布式存储系统将会分块保存上传至HDFS 内的数据。在初代Jadoop 平台中,HDFS系统的主要组成部分除客户端节点外,同时还包括NameNode、DataNode与SecondaryNameNode 节点。其中,NameNode节点作为该分布式存储系统当中的重要管理节点,用以对DataNode节点存储数据的元数据信息进行妥善存储,并对用户请求进行及时接收,而后将其接收得到的请求直接发送至DataNode节点中完成相应操作。而在该分布式存储系统当中的SecondaryNameNode节点,能够为系统中的管理节点存储用户修改内容提供相应辅助作用,使得修改内容能够在磁盘中得到安全存储。

(二)技术升级

随着大数据技术的持续发展,用于大数据处理的Hadoop 平台也从初代1.0 版本更新升级至2.0版本。初代版本中的Hadoop 平台采用分布式设计理念,其主要构成部分包括HDFS即分布式存储系统以及MapReduce计算模型。在HDFS 中,有且仅有一个管理节点即NameNode节点,但有若干物理存储节点DataNode。升级至2.0 版本的Hadoop 平台,其组成部分除了原有的分布式存储系统与计算模型外,还新增YARN即资源管理器。YARN的出现使得以往存在于Hadoop 平 台 中 的jobTracker 单点瓶颈以及编程框架缺乏较高灵活性等问题,在一定程度上得到有效改善。其通过令集群资源管理、作业管理各自保持较高独立性,并分别交由resourceManager 与applicationMaster 负责进行管理,这也使得jobTracker 负载可以得到相应控制。集群当中各节点的资源调度则统一交由container 负责,在联合平台内的各nodeManager 计算节点下,使得最新版本的Hadoop 平台的数据计算框架更加完善。

(三)生态系统

Hadoop 在持续完善的过程中,出现了诸多新技术,其围绕Hadoop 核心技术共同构成这一大数据处理平台的生态系统。具体来说,各个客户端根据自身实际需要,将其资源请求发送至Hadoop中的resourceManager 中,计算节点nodeManager 的节点状态与其中Application Master 的资源请求也一并发送至resourceManager。同样,各计算阶段中的container 与Application Master 之间也相互保持MapReduce状态连接。在Hadoop平台的生态系统中,包含众多子项目,其对应的项目功能也不尽相同。例如其中的Hive与Hbase生态系统子项目,其对应的项目功能分别为Hadoop 基础上的文件系统数据仓库与面向列存储的数据库。Pig 作为Hadoop 生态系统当中的一个子项目,主要用于完成大规模的数据分析与处理工作。

二、大数据时代下的Spark技术分析

(一)核心技术

1.DAG

在大数据时代下,Spark 技术中的核心技术之一是DAG。数据执行流程的存在形式始终为有向无环图,其核心组成部分为RDD。在Spark技术中,用户根据自身实际需要完成应用逻辑提交操作后,Spark计算平台将以此为依据进行DAG 的绘制。而后结合各RDD相互间的依赖性与内在关联,对DAG进行stage划分,即将其划分成若干阶段。但在完成DAG 全部绘制工作后并不立即进入到执行环节,由此可见在Spark 计算平台中,DAG 的主要作用在于对数据集进行明确标记。

根据商保公司经办城乡居民基本医保模式主要要素,总结分析商保机构经办城乡居民基本医保的试点情况。依据理论研究和实践结果,目前安徽省商保公司经办城乡居民基本医保试点初步形成的模式主要是委托经办模式,即:政府将业务委托商保公司,按照协议由后者获取适当的经办费用,提供经办服务。在委托经办模式中,按照经办费用来源已初步形成委托经办支付费用模式、委托经办不支付费用模式两种。每一大类中,按照经办服务内容、经办费用获取方式、基金风险承担实际运行情况又可分不同的模式。见表2

2.RDD

在Spark 计算平台当中,RDD通过对平台中的分布式内存数据进行抽象,转换数据各项操作,使之成为RDD操作,因此Spark 技术中的数据操作以RDD作为其最为基础性的一个单位。Transformation转换以及action执行共同组成RDD操作,其中前者中含有诸如map 与flatmap 以及nuion等在内的诸多基本操作,而以count 与collect 等为代表的操作则归属于执行操作范畴。针对转换与执行操作,Spark技术采用的机制也存在一定差异性。在Spark计算平台中任何一项转换操作均属于惰性操作,也就是说在转换操作下,任意一个RDD虽然可以有效生成一个全新RDD,但在RDD新生成之后其并不会立即在Spark 计算平台上进行执行。只有当触发执行操作即action 时才会正式执行转换操作。

3.结构部署

Spark 计算平台内的部署模式多种多样,常见的部署模式主要包括以Mesos或Yarn 为基础的部署模式。

在现阶段的Spark当中,最常使用的部署模式为建立在Yarn基础上的部署模式,该部署模式通过对Hadoop中的Yarn 即资源管理器进行充分利用,用以达到集群化管理Hadoop平台内各项资源的目的。值得注意的是,虽然Spark 平台中的部署模式具有明显的多样化特征,但其基本组成部分基本一致。主 要 包 括mater 与driver、worker与clusterManager 等等,即控制节点与作业控制进程、执行节点与资源管理器等。而作业控制进程在主控节点maters上,执行节点和执行单元一一对应,即一个执行节点在Spark 计算平台中通常只对与之相对应的执行单元进程进行有效维护。

(二)技术升级

为顺应大数据时代发展潮流,同时尽可能满足多样化的大数据计算需求,Spark技术也在不断进行更新升级。最新的Spark技术中使用的计算模型以内存为基础,即内存当中统一缓存作业执行过程中产生的各种中间数据,并且Spark平台抽象处理各作业使其成为各个DAG 图,进而有效优化整体作业计算流程。相比于初代Spark计算平台,升级后的Spark平台在无需计算shuffle的情况下便可以合并多项操作。与此同时,shuffle操作中DAG 内划分出若干不同阶段,对提高资源利用率,缩减资源等待时间等均发挥了重要作用。

(三)生态系统

Spark 的生态系统指的就是专门对应该计算平台的数据分析软件栈,其组成部分包括Spark计算平台专用的数据库、机器学习算法库等等。例如在该计算平台生态系统的SQL 数据库子项目中,对应的项目功能为集成各种复杂数据分析算法,简化SQL 查询,用户访问的数据源也可以得到有机统一。而在Spark streaming 这一生态系统子项目中,其作为一种专门应用在Spark 计算平台中的流式数据计算工具,其内部特殊的API 可以高效、精准地开发相关数据处理程序,加快数据分析计算与处理速度。MLib和GraphX 分别作为Spark 平台上使用的分布式机器学习算法库以及并行图计算框架,同样用于集中解决Spark 平台上的各种数据计算与处理工作。

三、大数据时代下Hadoop与Spark 技术的应用

(一)Hadoop技术应用

在大数据时代下,Hadoop 被广泛应用在各种场景中,包括日志处理、数据采集、挖掘与分析处理等。例如在离线日志处理中,Hadoop平 台 中 的MapReduce可 有效分析各项用户交易数据,并以此为基础进行用户类型划分,使之均有各自对应的客户群。对于电商企业而言,运用Hadoop 平台可使其能够在充分了解各类客户群体及其实际需要下,有针对性地开展营销活动,进而扩大企业自身经济效益规模。譬如阿里巴巴集团通过利用Hadoop 大数据处理平台,在积极引入云计算等各项先进信息技术下,建立起云梯系统,在对涉及用户交易的各类信息数据进行集中整合与统计分析下,确定不同的用户类型,并为电商企业推送与之相符合的客户群,以便其能够针对具体客户开展相应的营销活动,实现企业精准营销。再比如有部分企业通过依托Nutch 采集音乐页面,借助Hadoop平台中的MapReduce框架计算网页评分,以此为依据有针对性地为用户推送其感兴趣的音乐。

2.应用评价

根据Hadoop技术的应用情况可知,在运用MapReduce 作为大数据编程框架下,各种新计算节点加入至Hadoop 集群后,该节点具备的各种计算能力也会随之加入其中,因此使得该计算框架在面向大数据的同时可以保持良好的伸缩性。

其编程模型相对简易,用户在编程中仅仅只需要对应用问题中的应用逻辑进行考虑即可,无需关注其它底层细节问题如负载均衡等。加之该大数据编程框架能够同时处理海量数据,对于提高数据处理效率也具有一定积极效用。

但其同样也存在一定技术不足,例如面向磁盘存储的MapReduce,其在运行应用程序时需要向磁盘输入各种中间数据,只有在有需要的情况下,才从磁盘内调出数据将其输出至内存中,但由于磁盘速度并不与内存速度保持一致,因此在数据计算时经常容易出现高延迟的情况。此外,虽然利用map 函数与reduce函数能够有效简化编程接口,实现MapReduce的编程作用。但也由于算子数量有限,因此随着应用问题类型的逐渐多样,在实现各种应用逻辑时,MapReduce中有限的算子也会出现不适用的情况。

(二)Spark 技术应用

1.应用场景

Spark技术目前也在处理流数据、解决多伦迭代问题等领域中得到了充分运用,并且获得了一定的应用成效。例如眼下已有研究人员在分析移动Web 流量中运用Spark流处理技术,以流数据为基础建立起相应的Web 分析模型,在对用户流量及其使用行为等各方面的信息数据进行汇总整理后,运用Spark技术对其进行快速分析处理,从而使得网络运营商可以更加真实、全面地掌握用户行为,以便可以更有针对性地为用户提供相关服务。在开发推荐系统时,同样也可以运用Spark技 术,相 较 于Hadoop 平 台中的MapReduce,使用Spark技术能够有效训练推荐系统模型成为分钟级推荐系统模型,避免出现高延迟情况,进而达到实时、精准推荐的效果。譬如京东与阿里巴巴等企业,立足公司现下的主营业务运用Spark计算平台自主研发实时推荐系统,即便用户行为偏好随时发生变化,该系统也能够帮助企业实时分析计算用户行为偏好。

2.应用评价

Spark技术中可在内存中统一完成所有数据计算工作,且内存负责集中存储各种中间数据,因此相较于MapReduce,Spark 的计算速度更快。另外,针对MapReduce 中算子数量与类型有限的不足,Spark技术中有转换型算子与执行型算子,可高效完成复杂度较高的数据查询与分析任务。除此之外,利用RDD这一核心技术,以分布式抽象的形式划分调入至内存的各类数据,使得Spark 可以快速、准确地完成海量数据的计算工作。

但其同样也存在一定技术不足,例如其容量内存相对较小,并且在两个以上的Spark 应用数据相同的情况下,同一份数据需要缓存两次,从而使得Spark 计算平台面临较大内存压力,并且也会影响垃圾回收速度,导致该技术在实际使用过程中出现不稳定的情况。

四、结束语

综上所述,在大数据时代下Hadoop 技术与Spark技术均为大数据的分析计算与快速处理,提供了重要的技术支持。两者具有一定的技术优势与不足之处,因此我国未来在继续加大对Hadoop 技术与Spark 技术的开发力度下,还需要主动立足实际,合理选用相应的大数据处理技术,从而使得大数据资源能够真正得到深入、充分利用。

猜你喜欢
存储系统经办内存
分层式大数据存储系统缓存调度策略与性能优化
新时期大数据在社保经办领域的应用思考
社保经办机构的内部控制问题探讨
社会保险经办服务体系存在的问题及对策研究
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
天河超算存储系统在美创佳绩
面向4K/8K的到来 存储该怎么办?
北海市社保网上经办系统正式上线
内存搭配DDR4、DDR3L还是DDR3?