CN105808354A - 利用WLAN网络组建临时Hadoop环境的方法 - Google Patents
利用WLAN网络组建临时Hadoop环境的方法 Download PDFInfo
- Publication number
- CN105808354A CN105808354A CN201610135680.7A CN201610135680A CN105808354A CN 105808354 A CN105808354 A CN 105808354A CN 201610135680 A CN201610135680 A CN 201610135680A CN 105808354 A CN105808354 A CN 105808354A
- Authority
- CN
- China
- Prior art keywords
- machine
- file
- hadoop
- map
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4416—Network booting; Remote initial program loading [RIPL]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
利用WLAN网络组建临时Hadoop环境的方法,步骤为:1)主机开启WLAN热点功能,将此终端的身份设置为Master,等待其余终端连接此WLAN网络;2)从机连接WLAN热点,将此从机设为Slave;3)主机检测到全部从机接入本WLAN网络后测试,主机配置SSH无密码连接,生成并发送SSH公匙到各从机上,等待从机完成相关配置后发送HDFS命令;4)启动Hadoop;5)将数据、运算条件传送给JobClient进程;6)主机的JobClient进程向JobTracker进程请求Job ID;7)将运行作业所需要的资源文件复制到HDFS上;8)主机的JobTracker接收到作业后,等待对其进行调度;9)从机的TaskTracker进程每隔一段时间发起另一个进程,给主机的JobTracker进程发送心跳,获得从机TaskTracker的运行状态;具有环境搭建简单,不受网络条件限制,自由配置主机或从机的特点。
Description
技术领域
本发明属于计算机信息处理技术领域,具体涉及利用WLAN网络组建临时Hadoop环境的方法。
背景技术
随着互联网技术的不断发展,人类逐渐步入大数据时代,数据资源正和土地、劳动力、资本等生产要素一样,成为促进经济增长和社会发展的基本要素。任何一个行业和领域都会产生有价值的数据,而对这些数据的统计、分析、挖掘和人工智能则会创造意想不到的价值和财富。如今,大数据引擎业已成为组织创新、产业升级、经济社会发展、国家治理能力现代化的核心驱动力。
Hadoop是Apache组织管理的一个开源分布式计算平台,是一个能够对大量数据进行分布式处理的软件框架。以Hadoop分布式文件系统HDFS和MapReduce为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。HDFS的高容错性、高伸缩性、高可扩展性、高获得性、高吞吐率等优点允许用户将Hadoop部署在低廉的硬件上,形成分布式系统;MapReduce分布式编程模型允许用户在不了解分布式系统底层细节的情况下开发并行应用程序。
HDFS是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的。它的特性为海量数据提供了不怕故障的存储,为超大数据集的应用处理带来了很多便利。HDFS是一个主/从(Mater/Slave)体系结构,其体系结构中有两类节点,一类是NameNode,又叫"元数据节点";另一类是DataNode,又叫"数据节点",这两类节点分别承担Master和Worker具体任务的执行节点。但由于分布式存储的性质,HDFS集群拥有一个NameNode和多个DataNode。元数据节点用来管理文件系统的命名空间;数据节点是文件系统中真正存储数据的地方。
MapReduce并行计算框架是一个并行化程序执行系统。它提供了一个包含Map和Reduce两个阶段的并行处理模型和过程,以键值对数据输入方式来处理数据,并能自动完成数据的划分和调度管理。在程序执行中,MapReduce并行计算框架将负责调度和分配计算资源,划分和输入、输出数据,调度程序的执行,监控程序的执行状态,并负责程序执行时各计算节点的同步以及中间结果的收集整理。
如今智能移动终端的CPU型号众多,并且不断推新,著名的摩尔定律的内容是:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。尽管这种趋势已经持续了超过半个世纪,摩尔定律仍应该被认为是观测或推测,而不是一个物理或自然法。预计定律将持续到至少2015年或2020年。然而,2010年国际半导体技术发展路线图的更新增长已经放缓在2013年年底,之后的时间里晶体管数量密度预计只会每三年翻一番。尽管如此,智能终端的处理器的处理能力也是冗余的,而且也将会越来越快。
WLAN使用ISM(Industrial、Scientific、Medical)无线电广播频段通信。WLAN的802.11a标准使用5GHz频段,支持的最大速度为54Mbps,而802.11b和802.11g标准使用2.4GHz频段,分别支持最大11Mbps和54Mbps的速度。目前WLAN所包含的协议标准有:IEEE802.11b协议、IEEE802.11a协议、IEEE802.11g协议、IEEE802.11E协议、IEEE802.11i协议、无线应用协议(WAP)。
Android系统架构由5部分组成,分别是:LinuxKernel、AndroidRuntime、Libraries、ApplicationFramework、Applications。
1)LinuxKernel
Android基于Linux2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。
2)HAL(HardwareAbstractLayer)
硬件抽象层是Google开发的Android系统里上层应用对底层硬件操作屏蔽一个软件层次,它隐藏具体硬件细节而为上层提供统一的服务。
3)AndroidRuntime
Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik虚拟机依赖于Linux内核提供基本功能,如线程和底层内存管理。
4)Libraries
Android包含一个C/C++库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(applicationframework)暴露给开发者。
5)ApplicationFramework
通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等。
开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。
6)Applications
Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的。
如今智能移动终端的CPU型号众多,并且不断推新,著名的摩尔定律的内容是:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。尽管这种趋势已经持续了超过半个世纪,摩尔定律仍应该被认为是观测或推测,而不是一个物理或自然法。预计定律将持续到至少2015年或2020年。然而,2010年国际半导体技术发展路线图的更新增长已经放缓在2013年年底,之后的时间里晶体管数量密度预计只会每三年翻一番。
尽管如此,智能终端的处理器的处理能力也是冗余的,而且也将会越来越快。现有技术并没有一个能够利用这样的计算冗余创造出更多贡献的解决方案,而这也是一个值得深究的问题。如果没有了互联网,没有集群和服务器,是否就意味着没有处理大数据的环境了?在应对突发的数据处理需求时,移动终端可以作为临时承接任务的计算中心,其好处不仅在于移动终端的便携性、灵活性,更在于深度挖掘了现有设备的价值。
发明内容
为克服上述现有技术的不足,本发明的目的在于提供利用WLAN网络组建临时Hadoop环境的方法,具有环境搭建简单,不受网络条件限制,自由配置主机或从机的特点。
为实现上述目的,本发明才有的技术方案是:利用WLAN网络组建临时Hadoop环境的方法,包括以下步骤:
1)主机开启WLAN热点功能,打开内置Hadoop设置程序将此终端的身份设置为Master,等待其余终端连接此WLAN网络,同时用户根据本次处理任务的需要在APP里调整其他设置项;
2)从机关闭其他消耗资源的APP后连接主机提供的WLAN热点,同时打开从机内置Hadoop设置程序将此终端的身份设置为Slave,同时,用户还可以对本从机通过设置APP进行相关设置;
3)主机检测到所有的从机接入本WLAN网络后进行逐一测试,测试内容包括通过HadoopStub能否正常调用底层无线驱动、从机的内存是否足够、本机CPU处理速度是否达到标准,通过测试的从机将进行编号标记,表示该从机可用,同时,主机配置SSH无密码连接,生成并发送SSH公匙到各从机上,等待从机完成相关配置后发送格式化HDFS的命令;
4)启动Hadoop;
5)用户运行经过分布式数据处理APP将数据、运算条件传送给JobClient进程;
6)主机的JobClient进程向JobTracker进程请求一个JobID;
7)将运行作业所需要的资源文件复制到HDFS上,包括MapReduce程序打包的JAR文件、配置文件和客户端计算所得的输入划分信息,这些文件存放在JobTracker专门为该作业创建的文件夹中,文件夹名为该作业的JobID,JAR文件默认会有10个副本(mapred.submit.replication属性控制),输入划分信息告诉JobTracker应该为这个作业启动多少个map任务信息,这些参数可在应用层的Hadoop设置程序中进行调整,所述的参数包含在core-default.xml、hdfs-default.xml和mapred-default.xml文件中的参数,如控制读写中可以使用的缓存大小io.file.buffer.size和默认启动的reduce数mapred.reduce.tasks;
8)主机的JobTracker接收到作业后,将其放在一个作业队列里,等待作业调度器对其进行调度,当作业调度器根据自己的调度算法调度到该作业时,根据输入划分信息为每个划分创建一个map任务,并将map任务通过调用主机底层的HadoopStub开放接口传输到WLAN网络进而分配给从机的TaskTracker进程执行;对于map和reduce任务,TaskTracker根据主机核的数量和内存的大小有固定数量的map槽和reduce槽动态调整;数据本地化机制将map任务分配给含有该map处理的数据块的TaskTracker上,同时将程序JAR包复制到该TaskTracker上来运行,而分配reduce任务时并不考虑数据本地化;
9)从机的TaskTracker进程每隔一段时间会发起另一个进程,给主机的JobTracker进程发送一个心跳,这个信息被主机监听到,可以获得从机TaskTracker的运行状态,同时心跳中还携带着很多的信息,比如当前map任务完成的进度信息,当JobTracker收到作业的最后一个任务完成的进度信息时,便把该作业设置成“成功”;当JobClient查询任务已完成时,便显示一条消息给上层数据处理APP。
在所述步骤5)-步骤9)MapReduce的过程中,一个作业分为map部分和reduce部分两个计算阶段,其具体步骤如下:
步骤1,主机的Map阶段,主机的作业队列里的任务作业在划分后,每个输入分片会让一个后台服务map程序来处理,每个map程序都有一个环形内存缓冲区,用于存储map函数的输出;默认情况下,缓冲区的大小是100MB,该值通过mapred-site.xml文件的io.sort.mb的配置项配置,用户界面的Hadoop设置程序则实现了该设置项;若缓冲区的内容达到阀值(默认为缓冲区大小的80%,由io.sort.spill.percent属性控制),则在本地文件系统中创建一个溢出文件,一个后台线程会将该缓冲区中的数据写入溢出文件;
步骤2,在写入本地存储区之前,线程首先根据reduce任务的数目将数据划分为相同数目的分区,后台线程按键进行内部排序;若此时设置了combiner,将排序后的结果进行combiner操作,运行combiner的意义在于使map输出的中间结果更紧凑,使得写到本地存储和传给reducer的数据更少;
步骤3,当map任务输出最后一个记录时,可能会有很多的溢出文件,需要将此溢出文件合并;合并的过程中会不断地进行排序和combiner操作,目的有两个:1)尽量减少每次写入磁盘的数据量;2)尽量减少下一复制阶段网络传输的数据量;最后合并成了一个已分区且已排序的文件,为了减少网络传输的数据量,可将数据压缩,只要将mapred-site.xml文件的配置项mapred.compress.map.out设置为true就可以开启压缩功能,同样可以在Hadoop设置APP里对其进行设置;
步骤4,将分区且已排序的文件中的数据通过WLAN网络传给相对应的从机的reduce进程;由于从机的map进程一直和其父TaskTracker保持联系,而TaskTracker又一直和主机的JobTracker通过心跳机制保持联系,主机的JobTracker中保存了整个集群中的所有可用从机地址和其状态;通过查询地址,主机将map输出的中间结果发送到从机运行TaskTracker进程的本地存储区里;发送工作线程数量由mapred-site.xml文件的tasktracker.http.threads设置,此设置项在APP中进行设置;
步骤5,从机的Reduce阶段,从机的TaskTracker进程需要为分区且已排序的文件运行reduce任务,若reduce端接受的数据量小,则直接存储在内存中,若数据量超过了该缓冲区大小的一定比例,比例由mapred-site.xml中的mapred.job.shuffle.merge.percent参数决定,默认值是0.66,则对数据合并后溢写到从机存储空间中;
步骤6,随着溢写文件的增多,后台线程会将溢写文件合并成一个有序的文件;这样做是为了给后面的合并节省时间,为了合并,压缩的中间结果都将在内存中解压缩;
步骤7,合并的过程中会产生多个中间文件,MapReduce让写入存储的数据减少,且最后一次合并的结果不写入存储,直接输入到reduce函数;
步骤8,Reduce阶段操作是对经过数据混洗处理后的文件调用reduce函数处理。
本发明的有益效果是:
现有的Hadoop平台都需要一个固定的网络,通过有实体的线路建立,面对移动需求日益增长的今天,本发明解决了没有网络这一条件下的Hadoop平台搭建的方式,利用移动设备自身的计算资源以及WLAN网络技术,可以实现和传统Hadoop类似的效果。随着芯片技术的不断突破,未来的发展将着重在移动设备上,本发明的重要性得以体现。
主流手机CPU都是四核、八核,而且主频也越来越高,近年来,还出现了64位的处理器,极大的扩展可寻地址范围,加速了指令执行速度,从而提升了处理器计算速度;本发明在充分考虑手机CPU处理性能的前提下,基于现有移动设备比如Android手机,发明一种基于移动Android设备的搭建WLAN网络从而建立临时Hadoop运行环境的方法。通过分析常规Hadoop运行环境和Android系统构架,提出了一种通过对Android底层开发,将Hadoop结构植入Android框架的方法,并在此框架下定制一款能够支持Hadoop分布式数据处理应用的安卓系统;通过开放相关接口函数能够让开发者针对不同的使用情况开发出满足不同需求的数据处理APP提供用户使用;该定制的系统提供控制集群参数设置和总控制开关的系统级APP,用户只需要点击该应用里相应的设置项就能够完成对Hadoop环境的初始化、HDFS本地存储区域路径选择等Hadoop设置。
Android底层移植开发方案,融入Hadoop运行库,构建Hadoop调用接口,同时在HAL层编写底层硬件驱动集成接口,将原JobClient和JobTracker中的内容和功能置入Android应用框架层里,在本机存储区开辟一块专属Hadoop运行的空间作为HDFS的一部分,将Hadoop运行所需要的jar包放入系统lib里并封装,在上层应用层编写hadoop设置程序,提供其运行所需设置项,并在Android系统中增加一个监听器,目的是将与调用Hadoop方法有关的程序的优先权置顶。
本发明能够利用手机的便携性极大的扩展了手机的应用,在突遇临时数据处理任务时,本发明方法可以在没有外界网络的条件下,快速处理相关数据,集合团队的力量,充分利用身边的资源设备。
附图说明
图1为本发明方法的总体效果示意图。
图2为本发明方法的融合Hadoop组件的Android框架图。
图3为本发明方法的工作流程图。
图4为本发明方法的通过HadoopStub调用底层硬件接口的示意图。
图5为本发明方法的Android移植开发实现基本流程图。
具体实施方式
下面结合实施例和附图对本发明的技术方案做详细的说明,但不限于此。
参见图1、2、3、4,本方法的使用场景如图1所示,一个主机终端作为Hadoop里的Master的角色,若干个从机终端作为Hadoop里的Slave的角色,从机终端包括:从机A、从机B、从机C、从机D、从机E……,主机终端通过开启无线热点共享WLAN网络,从机终端通过连接该网络而构建出一个星状小型局域网。
通过对比Android框架和Hadoop运行所处的Linux框架,提出一种结合二者的方式,其结合后的框架图如图2所示。首先,对Android底层Linuxkernel层中的所有驱动原封不动的保留过来,而在HAL(硬件抽象层)中,除了保留原有的HAL方法,还需定义一个HadoopStub作为直接调用无线网卡驱动、内存驱动和其他内核驱动的交互接口;其次,在支持库中加入Hadoop运行所需要的所有jar包文件,在本地存储空间中划分出一块连续区域作为Hadoop的本地存储空间;最后,在上层应用框架层中,新增了三大内容,第一个是JobTracker,由一系列进程构成的模拟现实Hadoop模型中的JobTracker的模块,第二个是TaskTracker,同样是由一系列进程构成的模拟现实Hadoop模型中的TaskTracker的模块,第三个是个Executor,从TaskTracker中单独剥离出来的用来运行由TaskTracker传递的计算任务,具有较高的CPU使用权。顶层应用里主要是由一个全局Hadoop设置APP和若干个经过特殊编程开发的Mapreduce数据处理APP构成,其中,Hadoop设置APP能够提供所有Hadoop集群搭建选项和控制开关,还能监视运行状态和显示集群状态等功能。
HadoopStub作为底层驱动的代理人拥有相对于其他Stub对象较高的优先级,上层通过HALmodule获得HadoopStub的函数指针,通过该指针获得运行Hadoop所需要的硬件设备对象,从而进行相应操作。
如图5,进行植入Hadoop模块的Android系统移植的大致步骤有:
1)从官方网站上准备Hadoop安装包和Android系统源码,搭建Linux下的Android开发环境,建立新工程,调试编译环境;
2)由于Hadoop没有使用java语言的管理配置文件,也没有使用Apache管理配置文件,而是使用了一套独有的配置文件管理系统,并提供自己的API;以XML文档格式进行配置,使用相应的配置文件类读取,并配置集群的运行;所以要将Hadoop运行所需要的lib文件添加到Android的lib库中,同时,将C或C++文件也一并放入;
3)编写相应的程序模拟实现Hadoop端的JobTracker、TaskTracker、JobClient的java代码,定义JAVA层所需要的类,编写后台进程服务,用来监听和控制Hadoop运行状态的程序;
4)将所有Hadoop所需要运行的代码封装成JNI,在上层编写相关程序控制和调用,在Android系统权限里增加对Hadoop用户的支持,修改其CPU作业调度优先级为高级;
5)结合编写的程序和运行所需要的环境基础,修改Android的系统权限,确保Hadoop的端口地址不被Android系统使用;编写向上层应用层提供的数据和操作接口,同时编写系统级的软件HadoopSetting用来全局设置Hadoop的各项属性;
6)编译修改过后的Android系统,刷入手机;
7)根据开放的接口,结合实际需求编写数据收集和MapReduce软件APP。
实施例:
首先搭建基于Android系统的Hadoop分布式集群环境,包括6台Android手机搭建,一台作为主机,其余五台为从机;在每部手机上刷入经过编译后的Android系统,在手机上安装预先编写的wordscount软件,根据前文所述的操作步骤搭建Hadoop运行环境,并确保在环境成功建立的条件下运行wordscount软件,检查软件运行结果;
其次,根据用户的具体使用场景,编写适当的应用程序,充分考虑数据的传入及结果展示,计算过程调用底层的MapReduce函数进行处理,再将打包好的程序安装在主机上,通过运行该软件,得到返回计算结果,显示的计算耗时可分析使用了本方法的计算速度和没有使用有多少提升。
Claims (2)
1.利用WLAN网络组建临时Hadoop环境的方法,其特征在于,包括以下步骤:
1)主机开启WLAN热点功能,打开内置Hadoop设置程序将此终端的身份设置为Master,等待其余终端连接此WLAN网络;
2)从机关闭其他消耗资源的APP后连接主机提供的WLAN热点,同时打开从机内置Hadoop设置程序将此终端的身份设置为Slave;
3)主机检测到所有的从机接入本WLAN网络后进行逐一测试,测试内容包括通过HadoopStub能否正常调用底层无线驱动、从机的内存是否足够、本机CPU处理速度是否达到标准,通过测试的从机将进行编号标记,表示该从机可用,同时,主机配置SSH无密码连接,生成并发送SSH公匙到各从机上,等待从机完成相关配置后发送格式化HDFS的命令;
4)启动Hadoop;
5)用户运行经过分布式数据处理APP将数据、运算条件传送给JobClient进程;
6)主机的JobClient进程向JobTracker进程请求一个JobID;
7)将运行作业所需要的资源文件复制到HDFS上,包括MapReduce程序打包的JAR文件、配置文件和客户端计算所得的输入划分信息,这些文件存放在JobTracker专门为该作业创建的文件夹中,文件夹名为该作业的JobID,JAR文件默认会有10个副本,输入划分信息告诉JobTracker应该为这个作业启动多少个map任务信息,这些参数可在应用层的Hadoop设置程序中进行调整,所述的参数包含在core-default.xml、hdfs-default.xml和mapred-default.xml文件中的参数;
8)主机的JobTracker接收到作业后,将其放在一个作业队列里,等待作业调度器对其进行调度,当作业调度器根据自己的调度算法调度到该作业时,根据输入划分信息为每个划分创建一个map任务,并将map任务通过调用主机底层的HadoopStub开放接口传输到WLAN网络进而分配给从机的TaskTracker进程执行;对于map和reduce任务,TaskTracker根据主机核的数量和内存的大小有固定数量的map槽和reduce槽动态调整;数据本地化机制将map任务分配给含有该map处理的数据块的TaskTracker上,同时将程序JAR包复制到该TaskTracker上运行,分配reduce任务时不考虑数据本地化;
9)从机的TaskTracker进程每隔一段时间会发起另一个进程,给主机的JobTracker进程发送一个心跳,主机监听到此信息,获得从机TaskTracker的运行状态,同时心跳中还携带着很多的信息,当JobTracker收到作业的最后一个任务完成的进度信息时,将该作业设置成“成功”;当JobClient查询任务已完成时,显示一条消息给上层数据处理APP。
2.根据权利要求1所述的利用WLAN网络组建临时Hadoop环境的方法,其特征在于,在所述的步骤5)-步骤9)MapReduce的过程中,一个作业分为map部分和reduce部分两个计算阶段,其具体步骤如下:
步骤1,主机的Map阶段,主机的作业队列里的任务作业在划分后,每个输入分片会让一个后台服务map程序来处理,每个map程序都有一个环形内存缓冲区,用于存储map函数的输出;默认情况下,缓冲区的大小是100MB,该值通过mapred-site.xml文件的io.sort.mb的配置项配置,用户界面的Hadoop设置程序则实现了该设置项;若缓冲区的内容达到阀值,则在本地文件系统中创建一个溢出文件,一个后台线程会将该缓冲区中的数据写入溢出文件;
步骤2,在写入本地存储区之前,线程首先根据reduce任务的数目将数据划分为相同数目的分区,后台线程按键进行内部排序;将排序后的结果进行combiner操作;
步骤3,当map任务输出最后一个记录时,有多个溢出文件,需要将此溢出文件合并;合并的过程中会不断地进行排序和combiner操作;最后合并成一个已分区且已排序的文件,将mapred-site.xml文件的配置项mapred.compress.map.out设置为true,进行数据压缩;
步骤4,将分区且已排序的文件中的数据通过WLAN网络传给相对应的从机的reduce进程;由于从机的map进程一直和其父TaskTracker保持联系,而TaskTracker又一直和主机的JobTracker通过心跳机制保持联系,主机的JobTracker中保存了整个集群中的所有可用从机地址和其状态;通过查询地址,主机将map输出的中间结果发送到从机运行TaskTracker进程的本地存储区里;发送工作线程数量由mapred-site.xml文件的tasktracker.http.threads设置,此设置项在APP中进行设置;
步骤5,从机的Reduce阶段,从机的TaskTracker进程需要为分区且已排序的文件运行reduce任务,若reduce端接受的数据量小,则直接存储在内存中,若数据量超过了该缓冲区大小的一定比例,比例由mapred-site.xml中的mapred.job.shuffle.merge.percent参数决定,默认值是0.66,则对数据合并后溢写到从机存储空间中;
步骤6,随着溢写文件的增多,后台线程会将溢写文件合并成一个有序的文件;
步骤7,合并的过程中会产生多个中间文件,MapReduce让写入存储的数据减少,且最后一次合并的结果不写入存储,直接输入到reduce函数;
步骤8,Reduce阶段操作是对经过数据混洗处理后的文件调用reduce函数处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610135680.7A CN105808354B (zh) | 2016-03-10 | 2016-03-10 | 利用WLAN网络组建临时Hadoop环境的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610135680.7A CN105808354B (zh) | 2016-03-10 | 2016-03-10 | 利用WLAN网络组建临时Hadoop环境的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105808354A true CN105808354A (zh) | 2016-07-27 |
CN105808354B CN105808354B (zh) | 2019-02-15 |
Family
ID=56468106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610135680.7A Active CN105808354B (zh) | 2016-03-10 | 2016-03-10 | 利用WLAN网络组建临时Hadoop环境的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105808354B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107070981A (zh) * | 2017-01-23 | 2017-08-18 | 努比亚技术有限公司 | 多终端的设备协同控制系统及方法 |
CN107391250A (zh) * | 2017-08-11 | 2017-11-24 | 成都优易数据有限公司 | 一种提高Mapreduce任务Shuffle性能的控制器 |
CN110209645A (zh) * | 2017-12-30 | 2019-09-06 | 中国移动通信集团四川有限公司 | 任务处理方法、装置、电子设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455374A (zh) * | 2012-06-05 | 2013-12-18 | 阿里巴巴集团控股有限公司 | 一种基于MapReduce的分布式计算方法和装置 |
US20140047422A1 (en) * | 2012-08-07 | 2014-02-13 | Nec Laboratories America, Inc. | Compiler-guided software accelerator for iterative hadoop jobs |
US20140067992A1 (en) * | 2012-08-28 | 2014-03-06 | Fujitsu Limited | Computer product, communication node, and transmission control method |
CN103699627A (zh) * | 2013-12-20 | 2014-04-02 | 北京遥测技术研究所 | 一种基于Hadoop集群的超大文件并行数据块定位方法 |
CN103838847A (zh) * | 2014-03-06 | 2014-06-04 | 中国科学院软件研究所 | 一种面向海云协同网络计算环境的数据组织方法 |
CN104008007A (zh) * | 2014-06-12 | 2014-08-27 | 深圳先进技术研究院 | 基于流式计算和批处理计算的互操作数据处理系统及方法 |
CN104036031A (zh) * | 2014-06-27 | 2014-09-10 | 北京航空航天大学 | 基于分布式Mysql集群存储的大规模CFD并行计算方法 |
US8954568B2 (en) * | 2011-07-21 | 2015-02-10 | Yahoo! Inc. | Method and system for building an elastic cloud web server farm |
KR20150039118A (ko) * | 2013-10-01 | 2015-04-09 | 크라우데라, 인크. | 하둡에서의 개선된 sql-형 질의를 위한 백그라운드 포맷 최적화 |
WO2015154686A1 (en) * | 2014-04-09 | 2015-10-15 | Tencent Technology (Shenzhen) Company Limited | Scheduling method and apparatus for distributed computing system |
-
2016
- 2016-03-10 CN CN201610135680.7A patent/CN105808354B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8954568B2 (en) * | 2011-07-21 | 2015-02-10 | Yahoo! Inc. | Method and system for building an elastic cloud web server farm |
CN103455374A (zh) * | 2012-06-05 | 2013-12-18 | 阿里巴巴集团控股有限公司 | 一种基于MapReduce的分布式计算方法和装置 |
US20140047422A1 (en) * | 2012-08-07 | 2014-02-13 | Nec Laboratories America, Inc. | Compiler-guided software accelerator for iterative hadoop jobs |
US20140067992A1 (en) * | 2012-08-28 | 2014-03-06 | Fujitsu Limited | Computer product, communication node, and transmission control method |
KR20150039118A (ko) * | 2013-10-01 | 2015-04-09 | 크라우데라, 인크. | 하둡에서의 개선된 sql-형 질의를 위한 백그라운드 포맷 최적화 |
CN103699627A (zh) * | 2013-12-20 | 2014-04-02 | 北京遥测技术研究所 | 一种基于Hadoop集群的超大文件并行数据块定位方法 |
CN103838847A (zh) * | 2014-03-06 | 2014-06-04 | 中国科学院软件研究所 | 一种面向海云协同网络计算环境的数据组织方法 |
WO2015154686A1 (en) * | 2014-04-09 | 2015-10-15 | Tencent Technology (Shenzhen) Company Limited | Scheduling method and apparatus for distributed computing system |
CN104008007A (zh) * | 2014-06-12 | 2014-08-27 | 深圳先进技术研究院 | 基于流式计算和批处理计算的互操作数据处理系统及方法 |
CN104036031A (zh) * | 2014-06-27 | 2014-09-10 | 北京航空航天大学 | 基于分布式Mysql集群存储的大规模CFD并行计算方法 |
Non-Patent Citations (3)
Title |
---|
岳雨俭: "《基于Hadoop分布式网络爬虫技术的研究》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
潘飞, 高岭: "《网络测量及其关键技术》", 《计算机技术与发展》 * |
陈赣: "《基于Hadoop框架的WLAN网络智能管道大数据分析》", 《信息通信》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107070981A (zh) * | 2017-01-23 | 2017-08-18 | 努比亚技术有限公司 | 多终端的设备协同控制系统及方法 |
CN107070981B (zh) * | 2017-01-23 | 2020-02-04 | 努比亚技术有限公司 | 多终端的设备协同控制系统及方法 |
CN107391250A (zh) * | 2017-08-11 | 2017-11-24 | 成都优易数据有限公司 | 一种提高Mapreduce任务Shuffle性能的控制器 |
CN110209645A (zh) * | 2017-12-30 | 2019-09-06 | 中国移动通信集团四川有限公司 | 任务处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105808354B (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11989117B2 (en) | Big data application lifecycle management | |
US12063265B2 (en) | Efficient, automated distributed-search methods and systems | |
CN107766126B (zh) | 容器镜像的构建方法、系统、装置及存储介质 | |
CN104954453B (zh) | 基于云计算的数据挖掘rest服务平台 | |
US9703890B2 (en) | Method and system that determine whether or not two graph-like representations of two systems describe equivalent systems | |
US20200410031A1 (en) | Systems and methods for cloud computing | |
Yang et al. | A profile-based approach to just-in-time scalability for cloud applications | |
CN108415832A (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
US10503630B2 (en) | Method and system for test-execution optimization in an automated application-release-management system during source-code check-in | |
US20190036766A1 (en) | Methods and systems that synchronize configuration of a clustered application | |
CN107343007A (zh) | 基于用户身份及权限认证的分布式文件管理方法及系统 | |
CN112199164A (zh) | 一种保证容器镜像一致性的方法 | |
CN107294771A (zh) | 一种适用于大数据集群的高效部署系统以及使用方法 | |
CN107403110A (zh) | Hdfs数据脱敏方法及装置 | |
CN105808354B (zh) | 利用WLAN网络组建临时Hadoop环境的方法 | |
US11184244B2 (en) | Method and system that determines application topology using network metrics | |
Chen et al. | Evolution of cloud operating system: from technology to ecosystem | |
Popchev et al. | A Web Application for Data Exchange Blockchain Platform | |
Kalyanaraman et al. | Implementing hadoop container migrations in OpenNebula private Cloud Environment | |
Shih | MASS HDFS: multi-agent spatial simulation hadoop distributed file system | |
Kaplan | Framework for migrating deployed serverless applications | |
Petrovic | Enabling flexibility of data-intensive applications on container-based systems with Node-RED in fog environments | |
Baur | Packaging of kubernetes applications | |
D'Amore | Implementation of a serverless application | |
Göttsche | Automated Deployment and Distributed Execution of Scientific Software in the Cloud using DevOps and Hadoop MapReduce |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |