CN110765082B - Hadoop文件处理方法、装置、存储介质及服务器 - Google Patents
Hadoop文件处理方法、装置、存储介质及服务器 Download PDFInfo
- Publication number
- CN110765082B CN110765082B CN201910840684.9A CN201910840684A CN110765082B CN 110765082 B CN110765082 B CN 110765082B CN 201910840684 A CN201910840684 A CN 201910840684A CN 110765082 B CN110765082 B CN 110765082B
- Authority
- CN
- China
- Prior art keywords
- file
- thread
- processing
- target
- entry
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000012545 processing Methods 0.000 claims abstract description 303
- 238000012216 screening Methods 0.000 claims abstract description 66
- 238000000034 method Methods 0.000 claims abstract description 31
- 230000001174 ascending effect Effects 0.000 claims abstract description 11
- 230000006870 function Effects 0.000 claims description 15
- 230000007246 mechanism Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于计算机技术领域,尤其涉及一种Hadoop文件处理方法、装置、计算机可读存储介质及服务器。所述方法包括:接收终端设备下发的Hadoop文件处理指令,并从所述Hadoop文件处理指令中提取文件筛选维度、文件筛选范围以及文件处理方式;按照所述文件筛选维度对预设的第一文件信息表中的文件条目进行升序排序,得到第二文件信息表,所述第一文件信息表用于存储Hadoop分布式文件***中的文件信息;在所述第二文件信息表中查找第一文件条目和第二文件条目;按照所述文件处理方式对指定文件集合进行处理,所述指定文件集合为由所述第一文件条目和所述第二文件条目之间的各个文件条目所对应的各个文件组成的集合。在需要进行批量文件处理时,极大提升了处理效率。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种Hadoop文件处理方法、装置、计算机可读存储介质及服务器。
背景技术
Hadoop框架是目前主流的跨集群分布式大数据处理框架,其子模块Hadoop分布式文件***(Hadoop Distributed File System,HDFS)是一个分布式的文件***,该***可以提供了高吞吐数据访问能力。包括亚马逊、Adobe和阿里巴巴在内的众多国内外大型企业都在使用Hadoop框架进行数据管理和分析工作。HDFS被设计成适合运行在通用硬件上的分布式文件***,它和现有的分布式文件***有很多共同点,但同时,它和其他的分布式文件***的区别也是很明显的。HDFS有着高容错性的特点,并且设计用来部署在低廉的硬件上。而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。HDFS放宽了POSIX的要求,这样可以实现流的形式访问文件***中的数据。HDFS fs是HDFS最常用的命令,这是一个高度类似linux文件***的命令集。用户可以使用这些命令执行查看HDFS上的目录结构文件、上传和下载文件、创建文件夹、复制文件、删除文件夹、删除文件等操作处理。但目前使用HDFS fs命令进行文件处理时,其命令参数一般只能是文件名或文件夹,而无法根据文件日期、大小等其他维度的信息进行文件处理,在需要进行批量文件处理时,处理效率极为低下。
发明内容
有鉴于此,本发明实施例提供了一种Hadoop文件处理方法、装置、计算机可读存储介质及服务器,以解决现有的Hadoop文件处理方法在需要进行批量文件处理时,处理效率极为低下的问题。
本发明实施例的第一方面提供了一种Hadoop文件处理方法,可以包括:
接收终端设备下发的Hadoop文件处理指令,并从所述Hadoop文件处理指令中提取文件筛选维度、文件筛选范围以及文件处理方式;
按照所述文件筛选维度对预设的第一文件信息表中的文件条目进行升序排序,得到第二文件信息表,所述第一文件信息表用于存储Hadoop分布式文件***中的文件信息;
在所述第二文件信息表中查找第一文件条目和第二文件条目,所述第一文件条目为顺序查找到的第一个满足所述文件筛选范围的下限的文件条目,所述第二文件条目为逆序查找到的第一个满足所述文件筛选范围的上限的文件条目;
按照所述文件处理方式对指定文件集合进行处理,所述指定文件集合为由所述第一文件条目和所述第二文件条目之间的各个文件条目所对应的各个文件组成的集合。
本发明实施例的第二方面提供了一种Hadoop文件处理装置,可以包括:
指令接收模块,用于接收终端设备下发的Hadoop文件处理指令,并从所述Hadoop文件处理指令中提取文件筛选维度、文件筛选范围以及文件处理方式;
文件条目排序模块,用于按照所述文件筛选维度对预设的第一文件信息表中的文件条目进行升序排序,得到第二文件信息表,所述第一文件信息表用于存储Hadoop分布式文件***中的文件信息;
文件条目查找模块,用于在所述第二文件信息表中查找第一文件条目和第二文件条目,所述第一文件条目为顺序查找到的第一个满足所述文件筛选范围的下限的文件条目,所述第二文件条目为逆序查找到的第一个满足所述文件筛选范围的上限的文件条目;
文件集合处理模块,用于按照所述文件处理方式对指定文件集合进行处理,所述指定文件集合为由所述第一文件条目和所述第二文件条目之间的各个文件条目所对应的各个文件组成的集合。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如下步骤:
接收终端设备下发的Hadoop文件处理指令,并从所述Hadoop文件处理指令中提取文件筛选维度、文件筛选范围以及文件处理方式;
按照所述文件筛选维度对预设的第一文件信息表中的文件条目进行升序排序,得到第二文件信息表,所述第一文件信息表用于存储Hadoop分布式文件***中的文件信息;
在所述第二文件信息表中查找第一文件条目和第二文件条目,所述第一文件条目为顺序查找到的第一个满足所述文件筛选范围的下限的文件条目,所述第二文件条目为逆序查找到的第一个满足所述文件筛选范围的上限的文件条目;
按照所述文件处理方式对指定文件集合进行处理,所述指定文件集合为由所述第一文件条目和所述第二文件条目之间的各个文件条目所对应的各个文件组成的集合。
本发明实施例的第四方面提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如下步骤:
接收终端设备下发的Hadoop文件处理指令,并从所述Hadoop文件处理指令中提取文件筛选维度、文件筛选范围以及文件处理方式;
按照所述文件筛选维度对预设的第一文件信息表中的文件条目进行升序排序,得到第二文件信息表,所述第一文件信息表用于存储Hadoop分布式文件***中的文件信息;
在所述第二文件信息表中查找第一文件条目和第二文件条目,所述第一文件条目为顺序查找到的第一个满足所述文件筛选范围的下限的文件条目,所述第二文件条目为逆序查找到的第一个满足所述文件筛选范围的上限的文件条目;
按照所述文件处理方式对指定文件集合进行处理,所述指定文件集合为由所述第一文件条目和所述第二文件条目之间的各个文件条目所对应的各个文件组成的集合。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例首先接收终端设备下发的Hadoop文件处理指令,并从所述Hadoop文件处理指令中提取文件筛选维度、文件筛选范围以及文件处理方式,然后按照所述文件筛选维度对预设的第一文件信息表(用于存储Hadoop分布式文件***中的文件信息)中的文件条目进行升序排序,得到第二文件信息表,接着在所述第二文件信息表中查找第一文件条目(顺序查找到的第一个满足所述文件筛选范围的下限的文件条目)和第二文件条目(逆序查找到的第一个满足所述文件筛选范围的上限的文件条目),第一文件条目和第二文件条目之间的各个文件条目所对应的各个文件即为需进行处理的文件(即指定文件集合),则可以按照所述文件处理方式对指定文件集合进行处理。通过本发明实施例,可以根据包含了文件日期、大小等多种信息的筛选维度进行文件处理,本实施例的处理过程中,筛选依据的范围变大了,可适用于多种应用场景下,在需要进行批量文件处理时,可极大提升处理效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例中一种Hadoop文件处理方法的一个实施例流程图;
图2为在在第二文件信息表中查找第一文件条目和第二文件条目的示意图;
图3为对指定文件集合进行并行处理的示意流程图;
图4为按照第二线程数目调用线程组对指定文件集合进行处理的示意流程图;
图5为本发明实施例中一种Hadoop文件处理装置的一个实施例结构图;
图6为本发明实施例中一种服务器的功能框架示意图;
图7为***核心模块的交互示意图;
图8为并行处理模块的交互示意图;
图9为本发明实施例中一种服务器的物理框架示意图;
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例中一种Hadoop文件处理方法的一个实施例可以包括:
步骤S101、接收终端设备下发的Hadoop文件处理指令,并从所述Hadoop文件处理指令中提取文件筛选维度、文件筛选范围以及文件处理方式。
本发明的实施主体为进行Hadoop文件处理的服务器,当用户需要执行Hadoop文件处理操作时,可以通过其终端设备向服务器下发Hadoop文件处理指令,在所述Hadoop文件处理指令中包括但不限于文件筛选维度、文件筛选范围以及文件处理方式。在本实施例中,所述文件筛选维度包括但不限于文件名、文件创建时间、文件修改时间以及文件大小等等维度。当所述Hadoop文件处理指令中的文件筛选维度为文件名这一维度时,所述文件筛选范围即为一个文件名范围;当所述Hadoop文件处理指令中的文件筛选维度为文件创建时间或文件修改时间这一维度时,所述文件筛选范围即为一个时间范围;当所述Hadoop文件处理指令中的文件筛选维度为文件大小这一维度时,所述文件筛选范围即为一个文件大小范围。所述文件处理方式包括顺序处理方式和并行处理方式,所述顺序处理方式每次调用一个线程来对一个文件处理任务进行处理,所述并行处理方式每次调用多个线程来对多个文件处理任务进行并行处理。
步骤S102、按照所述文件筛选维度对预设的第一文件信息表中的文件条目进行升序排序,得到第二文件信息表。
所述第一文件信息表用于存储Hadoop分布式文件***中的文件信息。在本实施例中,可以将每个文件的具体文件信息均记录为所述第一文件信息表中的一个文件条目,每个文件条目包括但不限于文件名、文件创建时间、文件修改时间文件大小、文件哈希值、以及其所属的文件夹等信息。
一般地,所述第一文件信息表中的内容会随用户对文件的操作动态进行更新,当有新的文件添加入***时,为其在所述第一文件信息表中新增一个文件条目,而在原有文件被从***中删除后,则将其在所述第一文件信息表中的文件条目予以删除。
当所述文件筛选维度为文件名这一维度时,可以按照文件名的首字母进行排序,即按照a、b、c、…依次进行排序,若首字母相同,则可以按照文件名的第二个字母进行排序,以此类推。在排序过程中,可以选择区分大小写,也可以选择不区分大小写,若选择区分大小写,则可以根据实际情况设置大写字母排序在前或者小写字母排序在前。
步骤S103、在所述第二文件信息表中查找第一文件条目和第二文件条目。
如图2所示,所述第一文件条目为顺序查找到的第一个满足所述文件筛选范围的下限的文件条目,所述第二文件条目为逆序查找到的第一个满足所述文件筛选范围的上限的文件条目。
步骤S104、按照所述文件处理方式对指定文件集合进行处理。
所述指定文件集合为由所述第一文件条目和所述第二文件条目之间的各个文件条目(包括所述第一文件条目和所述第二文件条目)所对应的各个文件组成的集合。
若所述文件处理方式为顺序处理方式,则仅需调用一个线程来对各个文件处理任务依次进行处理,具体的处理方式与现有技术中的Hadoop文件处理方式相同,此处不再赘述。
若所述文件处理方式为并行处理方式,则对所述指定文件集合进行处理的过程具体可以包括如图3所示的步骤:
步骤S301、计算文件处理任务的数目。
具体地,可以根据下式计算文件处理任务的数目:
TaskNum=Ceil(TotalNum/FileNum)
其中,TotalNum为所述指定文件集合中的文件数目,FileNum为预设的单任务处理文件数目,其具体取值可以根据实际情况进行设置,例如,可以将其设置为100、200、300、400或者其它取值等等,本实施例对其不作具体限定,Ceil为向上取整函数,TaskNum为文件处理任务的数目。
步骤S302、计算第一线程数目。
具体地,可以根据下式计算第一线程数目,所述第一线程数目为完成各个文件处理任务所需的线程数目:
ThreadNum=Ceil(TaskNum/StdNum)
其中,StdNum为预设的基准值,在本实施例中,可以将每个线程在指定时间(例如5分钟、10分钟等)内完成的任务数作为基准值,该基准值可以根据对历史数据的统计得到,ThreadNum为所述第一线程数目。
步骤S303、计算第二线程数目。
具体地,可以根据下式计算第二线程数目,所述第二线程数目为在考虑预设的限制条件下,完成各个文件处理任务所需的线程数目:
ThreadNum’=Min(ThreadNum,LmtNum)
其中,Min为求最小值函数,一般地,所述限制条件可以为线程数目极限值,LmtNum即为所述线程数目极限值,其具体取值可以根据实际情况进行设置,例如,可以将其设置为20、30、50、100或者其它取值等等,本实施例对其不作具体限定,ThreadNum’为所述第二线程数目。
步骤S304、按照所述第二线程数目调用线程组对所述指定文件集合进行处理。
所述线程组中包括ThreadNum’个线程。在本实施例中,可以将所述指定文件集合划分为TaskNum个文件子集,对应于TaskNum个文件处理任务,每个文件处理任务即为对相应的文件子集中的各个文件进行处理的任务,可以调用所述线程组中的各个线程对这些文件处理任务进行并行处理,从而大大提升文件处理的效率。
进一步地,为了保证各个线程对文件处理任务的均衡处理,避免有的线程处理的任务过多,而有的线程处理的任务过少的情况,在步骤S304的具体处理过程中可以包括如图4所示的步骤:
步骤S401、按照预设的轮询机制从所述线程组中选取一个线程作为目标处理线程。
由于所述线程组中包括多个线程,服务器可以通过轮询机制进行文件处理任务的初始分发,例如,文件处理任务首先分配给线程#1进行处理,下一个文件处理任务分配给线程#2进行处理,……,以此类推,当轮询一遍之后,下一个文件处理任务重新分配给线程#1进行处理。
经过上述初始分配,可以保证文件处理任务较为平均的分配到各个线程中,但是,考虑到各个线程的处理效率存在较大的差异,有的处理速度较快,有的处理速度较慢,因此不久后即可能会出现文件处理任务处理不均衡的情况,还需要通过后续步骤进行调节。
步骤S402、向目标范围中的各个线程分别发送任务查询请求,并分别接收所述目标范围中的各个线程反馈的待处理任务数目。
在本实施例中,为了保证文件处理任务的均衡处理,将所述线程组中的各个线程组织为分布式的处理网络,其中的每个线程均与一个以上的其它线程有连接,整个线程组构成一个连通图。需要注意的是,本实施例中所谓的连接指的是两个线程有直接的通信线路进行信息交互,而无需借助于其它线程进行中转。
所述目标范围中包括所述目标处理线程、直接关联线程以及间接关联线程,所述直接关联线程为与所述目标处理线程相关联的线程,所述间接关联线程为与所述直接关联线程相关联的线程。
步骤S403、根据所述目标范围中的各个线程的待处理任务数目从所述目标范围中选取一个线程作为优选处理线程。
首先,根据所述目标处理线程以及各个直接关联线程的待处理文件处理任务数目计算所述目标处理线程的文件处理任务数目差值。
在本实施例的一种具体实现中,可以根据下式计算所述目标处理线程的文件处理任务数目差值:
其中,fn为各个直接关联线程的序号,1≤fn≤FN,FN为直接关联线程的总数,FstDbNumfn为第fn个直接关联线程的待处理文件处理任务数目,TgtDbNum为所述目标处理线程的待处理文件处理任务数目,DiffNum0为所述目标处理线程的文件处理任务数目差值。
例如,若所述目标处理线程为线程#1,其待处理文件处理任务数目为6,即TgtDbNum=6,与之连接的共有两个线程,即FN=2,分别为线程#2和线程#4,其中,线程#2的待处理文件处理任务数目为4,即FstDbNum1=4,线程#4的待处理文件处理任务数目为5,即FstDbNum2=5,则:
然后,根据各个直接关联线程以及各个间接关联线程的待处理文件处理任务数目计算各个直接关联线程的文件处理任务数目差值。
在本实施例的一种具体实现中,可以根据下式计算各个直接关联线程的文件处理任务数目差值:
其中,sn为各个间接关联线程的序号,1≤sn≤SN(fn),SN(fn)为与第fn个直接关联线程相连接的间接关联线程的总数,SndDbNumfn,sn为与第fn个直接关联线程相连接的第sn个间接关联线程的待处理文件处理任务数目,DiffNumfn为第fn个直接关联线程的文件处理任务数目差值。
例如,与线程#2与之连接的共有3个线程,即SN(1)=3,分别为线程#1、线程#3和线程#4,其中,线程#1的待处理文件处理任务数目为6,即SndDbNum1,1=6,线程#3的待处理文件处理任务数目为7,即SndDbNum1,2=7,线程#4的待处理文件处理任务数目为5,即SndDbNum1,3=5,则:与线程#4与之连接的共有4个线程,即SN(2)=4,分别为线程#1、线程#2、线程#5和线程#9,其中,线程#1的待处理文件处理任务数目为6,即SndDbNum2,1=6,线程#2的待处理文件处理任务数目为4,即SndDbNum2,2=4,线程#5的待处理文件处理任务数目为8,即SndDbNum2,3=8,线程#9的待处理文件处理任务数目为8,即SndDbNum2,4=8,则:/>
最后,从所述目标范围中选取文件处理任务数目差值最大的一个线程作为所述优选处理终端,即可以根据下式选取所述优选处理终端:
SelSeq=Argmax(DiffNum0,DiffNum1,...,DiffNumfn,...,DiffNumFN)
其中,Argmax为最大自变量函数,SelSeq为所述优选处理终端的序号,仍以上述例子进行说明,则应选取线程#2作为所述优选处理终端。
步骤S404、判断所述优选处理线程是否为所述目标处理线程。
若所述优选处理线程不是所述目标处理线程,则执行步骤S405,若所述优选处理线程为所述目标处理线程,则执行步骤S406。
步骤S405、将所述优选处理线程确定为新的目标处理线程。
所述优选处理终端的文件处理任务数目差值最大,即说明此时所述优选处理终端相比于其他线程还有较强的处理能力,则将其确定为新的目标处理线程,然后返回执行步骤S402及其后续步骤,直至在某一次计算过程中得到所述优选处理终端即为所述目标处理线程为止。
步骤S406、将当前的文件处理任务发送至所述目标处理线程进行处理。
若所述优选处理终端即为所述目标处理线程,则说明所述目标处理线程在此时相比于其他线程还有较强的处理能力,因此,可以直接将所述当前的文件处理任务发送至所述目标处理线程进行处理。
需要注意的是,通过如图4所示的过程,为一个文件处理任务(即所述当前的文件处理任务)找到了对应的线程进行处理,对于其余的文件处理任务,可以依次通过上述过程为其找到对应的线程进行处理。
通过以上的处理过程,可以在所述线程组中为各个文件处理任务找到一个处理能力最强的线程进行处理,使得分发给各个线程的文件处理任务数目可以随着线程的处理状态及时进行调整,保证各个线程处理的文件处理任务数目与其处理能力相匹配,充分利用***资源,避免出现文件处理任务积压长时间得不到处理的情况,极大提高了整体的数据处理效率。
综上所述,本发明实施例本发明实施例首先接收终端设备下发的Hadoop文件处理指令,并从所述Hadoop文件处理指令中提取文件筛选维度、文件筛选范围以及文件处理方式,然后按照所述文件筛选维度对预设的第一文件信息表(用于存储Hadoop分布式文件***中的文件信息)中的文件条目进行升序排序,得到第二文件信息表,接着在所述第二文件信息表中查找第一文件条目(顺序查找到的第一个满足所述文件筛选范围的下限的文件条目)和第二文件条目(逆序查找到的第一个满足所述文件筛选范围的上限的文件条目),第一文件条目和第二文件条目之间的各个文件条目所对应的各个文件即为需进行处理的文件(即指定文件集合),则可以按照所述文件处理方式对指定文件集合进行处理。通过本发明实施例,可以根据包含了文件日期、大小等多种信息的筛选维度进行文件处理,本实施例的处理过程中,筛选依据的范围变大了,可适用于多种应用场景下,在需要进行批量文件处理时,可极大提升处理效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上文实施例所述的一种Hadoop文件处理方法,图5示出了本发明实施例提供的一种Hadoop文件处理装置的一个实施例结构图。
本实施例中,一种Hadoop文件处理装置可以包括:
指令接收模块501,用于接收终端设备下发的Hadoop文件处理指令,并从所述Hadoop文件处理指令中提取文件筛选维度、文件筛选范围以及文件处理方式;
文件条目排序模块502,用于按照所述文件筛选维度对预设的第一文件信息表中的文件条目进行升序排序,得到第二文件信息表,所述第一文件信息表用于存储Hadoop分布式文件***中的文件信息;
文件条目查找模块503,用于在所述第二文件信息表中查找第一文件条目和第二文件条目,所述第一文件条目为顺序查找到的第一个满足所述文件筛选范围的下限的文件条目,所述第二文件条目为逆序查找到的第一个满足所述文件筛选范围的上限的文件条目;
文件集合处理模块504,用于按照所述文件处理方式对指定文件集合进行处理,所述指定文件集合为由所述第一文件条目和所述第二文件条目之间的各个文件条目所对应的各个文件组成的集合。
进一步地,所述文件集合处理模块可以包括:
任务数目计算子模块,用于根据下式计算文件处理任务的数目:
TaskNum=Ceil(TotalNum/FileNum)
其中,TotalNum为所述指定文件集合中的文件数目,FileNum为预设的单任务处理文件数目,Ceil为向上取整函数,TaskNum为文件处理任务的数目;
第一线程数目计算子模块,用于根据下式计算第一线程数目,所述第一线程数目为完成各个文件处理任务所需的线程数目:
ThreadNum=Ceil(TaskNum/StdNum)
其中,StdNum为预设的基准值,ThreadNum为所述第一线程数目;
第二线程数目计算子模块,用于根据下式计算第二线程数目,所述第二线程数目为在考虑预设的限制条件下,完成各个文件处理任务所需的线程数目:
ThreadNum’=Min(ThreadNum,LmtNum)
其中,Min为求最小值函数,LmtNum为预设的线程数目极限值,ThreadNum’为所述第二线程数目;
文件集合处理子模块,用于按照所述第二线程数目调用线程组对所述指定文件集合进行处理。
进一步地,所述文件集合处理子模块可以包括:
目标处理线程选取单元,用于按照预设的轮询机制从所述线程组中选取一个线程作为目标处理线程;
任务查询单元,用于向目标范围中的各个线程分别发送任务查询请求,并分别接收所述目标范围中的各个线程反馈的待处理任务数目,所述目标范围中包括所述目标处理线程、直接关联线程以及间接关联线程,所述直接关联线程为与所述目标处理线程相关联的线程,所述间接关联线程为与所述直接关联线程相关联的线程;
优选处理线程选取单元,用于根据所述目标范围中的各个线程的待处理任务数目从所述目标范围中选取一个线程作为优选处理线程;
第一处理单元,用于若所述优选处理线程为所述目标处理线程,则将当前的文件处理任务发送至所述目标处理线程进行处理;
第二处理单元,用于若所述优选处理线程不是所述目标处理线程,则将所述优选处理线程确定为新的目标处理线程。
进一步地,所述优选处理线程选取单元可以包括:
第一计算子单元,用于根据所述目标处理线程以及各个直接关联线程的待处理任务数目计算所述目标处理线程的任务数目差值;
第二计算子单元,用于根据各个直接关联线程以及各个间接关联线程的待处理任务数目计算各个直接关联线程的任务数目差值;
优选处理线程选取子单元,用于根据下式选取所述优选处理线程:
SelSeq=Argmax(DiffNum0,DiffNum1,...,DiffNumfn,...,DiffNumFN)
其中,fn为各个直接关联线程的序号,1≤fn≤FN,FN为直接关联线程的总数,DiffNumfn为第fn个直接关联线程的任务数目差值,DiffNum0为所述目标处理线程的任务数目差值,Argmax为最大自变量函数,SelSeq为所述优选处理线程的序号。
进一步地,所述第一计算子单元具体用于根据下式计算所述目标处理线程的任务数目差值:
其中,TgtDbNum为所述目标处理线程的待处理任务数目,FstDbNumfn为第fn个直接关联线程的待处理任务数目。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
图6所示为所述服务器的功能框架示意图,该服务器在功能上被划分为文件操作模块、Tornado接口服务模块、***核心模块、顺序处理模块以及并行处理模块。其中,Tornado接口模块接受Hadoop文件处理指令,提供Hadoop文件处理功能,可以根据文件名、时间、大小等信息进行处理,可以选择顺序执行或者并行执行。所述***核心模块采用Python实现了Hadoop具体操作,如图7所示,所述***核心模块通过Python封装的ParamikoSSH模块直接操作Hadoop客户端,使用hadoop fs命令操作hadoop文件***,该模块实现自动从关系数据库如MySQL、Oracle等中获取要操作的文件名的接口,通过该接口获取需要处理的文件信息,并调用顺序处理模块或并行处理模块执行处理。如图8所示,所述并行处理模块可以调用并行调度模块,所述并行调度模块通过上述方法实施例中的方法控制线程数目,根据文件处理任务等因素自动调节线程数目。
图9所示为所述服务器的物理框架示意图,为了便于说明,仅示出了与本发明实施例相关的部分。
在本实施例中,该服务器9可包括:处理器90、存储器91以及存储在所述存储器91中并可在所述处理器90上运行的计算机可读指令92,例如执行上述的Hadoop文件处理方法的计算机可读指令。所述处理器90执行所述计算机可读指令92时实现上述各个Hadoop文件处理方法实施例中的步骤,例如图1所示的步骤S101至S104。或者,所述处理器90执行所述计算机可读指令92时实现上述各装置实施例中各模块/单元的功能,例如图5所示模块501至504的功能。
示例性的,所述计算机可读指令92可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器91中,并由所述处理器90执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令92在所述服务器9中的执行过程。
所述处理器90可以是中央处理单元(Central Processing Unit,CPU),还可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器91可以是所述服务器9的内部存储单元,例如服务器9的硬盘或内存。所述存储器91也可以是所述服务器9的外部存储设备,例如所述服务器9上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器91还可以既包括所述服务器9的内部存储单元也包括外部存储设备。所述存储器91用于存储所述计算机可读指令以及所述服务器9所需的其它指令和数据。所述存储器91还可以用于暂时地存储已经输出或者将要输出的数据。
在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机可读指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储计算机可读指令的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种Hadoop文件处理方法,其特征在于,包括:
接收终端设备下发的Hadoop文件处理指令,并从所述Hadoop文件处理指令中提取文件筛选维度、文件筛选范围以及文件处理方式;
按照所述文件筛选维度对预设的第一文件信息表中的文件条目进行升序排序,得到第二文件信息表,所述第一文件信息表用于存储Hadoop分布式文件***中的文件信息;
在所述第二文件信息表中查找第一文件条目和第二文件条目,所述第一文件条目为顺序查找到的第一个满足所述文件筛选范围的下限的文件条目,所述第二文件条目为逆序查找到的第一个满足所述文件筛选范围的上限的文件条目;
若所述文件处理方式为并行处理方式,则根据下式计算文件处理任务的数目:
TaskNum=Ceil(TotalNum/FileNum)
其中,TotalNum为指定文件集合中的文件数目,FileNum为预设的单任务处理文件数目,Ceil为向上取整函数,TaskNum为文件处理任务的数目,所述指定文件集合为由所述第一文件条目和所述第二文件条目之间的各个文件条目所对应的各个文件组成的集合;
根据下式计算第一线程数目,所述第一线程数目为完成各个文件处理任务所需的线程数目:
ThreadNum=Ceil(TaskNum/StdNum)
其中,StdNum为预设的基准值,ThreadNum为所述第一线程数目;
根据下式计算第二线程数目,所述第二线程数目为在考虑预设的限制条件下,完成各个文件处理任务所需的线程数目:
ThreadNum’=Min(ThreadNum,LmtNum)
其中,Min为求最小值函数,LmtNum为预设的线程数目极限值,ThreadNum’为所述第二线程数目;
按照预设的轮询机制从包括ThreadNum’个线程的线程组中选取一个线程作为目标处理线程;
向目标范围中的各个线程分别发送任务查询请求,并分别接收所述目标范围中的各个线程反馈的待处理任务数目,所述目标范围中包括所述目标处理线程、直接关联线程以及间接关联线程,所述直接关联线程为与所述目标处理线程相关联的线程,所述间接关联线程为与所述直接关联线程相关联的线程;
根据所述目标范围中的各个线程的待处理任务数目从所述目标范围中选取一个线程作为优选处理线程;
若所述优选处理线程为所述目标处理线程,则将当前的文件处理任务发送至所述目标处理线程进行处理;
若所述优选处理线程不是所述目标处理线程,则将所述优选处理线程确定为新的目标处理线程。
2.根据权利要求1所述的Hadoop文件处理方法,其特征在于,所述根据所述目标范围中的各个线程的待处理任务数目从所述目标范围中选取一个线程作为优选处理线程包括:
根据所述目标处理线程以及各个直接关联线程的待处理任务数目计算所述目标处理线程的任务数目差值;
根据各个直接关联线程以及各个间接关联线程的待处理任务数目计算各个直接关联线程的任务数目差值;
根据下式选取所述优选处理线程:
SelSeq=Argmax(DiffNum0,DiffNum1,...,DiffNumfn,...,DiffNumFN)
其中,fn为各个直接关联线程的序号,1≤fn≤FN,FN为直接关联线程的总数,DiffNumfn为第fn个直接关联线程的任务数目差值,DiffNum0为所述目标处理线程的任务数目差值,Argmax为最大自变量函数,SelSeq为所述优选处理线程的序号。
3.根据权利要求2所述的Hadoop文件处理方法,其特征在于,所述根据所述目标处理线程以及各个直接关联线程的待处理任务数目计算所述目标处理线程的任务数目差值包括:
根据下式计算所述目标处理线程的任务数目差值:
其中,TgtDbNum为所述目标处理线程的待处理任务数目,FstDbNumfn为第fn个直接关联线程的待处理任务数目。
4.一种Hadoop文件处理装置,其特征在于,包括:
指令接收模块,用于接收终端设备下发的Hadoop文件处理指令,并从所述Hadoop文件处理指令中提取文件筛选维度、文件筛选范围以及文件处理方式;
文件条目排序模块,用于按照所述文件筛选维度对预设的第一文件信息表中的文件条目进行升序排序,得到第二文件信息表,所述第一文件信息表用于存储Hadoop分布式文件***中的文件信息;
文件条目查找模块,用于在所述第二文件信息表中查找第一文件条目和第二文件条目,所述第一文件条目为顺序查找到的第一个满足所述文件筛选范围的下限的文件条目,所述第二文件条目为逆序查找到的第一个满足所述文件筛选范围的上限的文件条目;
文件集合处理模块,用于若所述文件处理方式为并行处理方式,则根据下式计算文件处理任务的数目:TaskNum=Ceil(TotalNum/FileNum),其中,TotalNum为指定文件集合中的文件数目,FileNum为预设的单任务处理文件数目,Ceil为向上取整函数,TaskNum为文件处理任务的数目,所述指定文件集合为由所述第一文件条目和所述第二文件条目之间的各个文件条目所对应的各个文件组成的集合;根据下式计算第一线程数目,所述第一线程数目为完成各个文件处理任务所需的线程数目:ThreadNum=Ceil(TaskNum/StdNum),其中,StdNum为预设的基准值,ThreadNum为所述第一线程数目;根据下式计算第二线程数目,所述第二线程数目为在考虑预设的限制条件下,完成各个文件处理任务所需的线程数目:ThreadNum’=Min(ThreadNum,LmtNum),其中,Min为求最小值函数,LmtNum为预设的线程数目极限值,ThreadNum’为所述第二线程数目;按照预设的轮询机制从包括ThreadNum’个线程的线程组中选取一个线程作为目标处理线程;向目标范围中的各个线程分别发送任务查询请求,并分别接收所述目标范围中的各个线程反馈的待处理任务数目,所述目标范围中包括所述目标处理线程、直接关联线程以及间接关联线程,所述直接关联线程为与所述目标处理线程相关联的线程,所述间接关联线程为与所述直接关联线程相关联的线程;根据所述目标范围中的各个线程的待处理任务数目从所述目标范围中选取一个线程作为优选处理线程;若所述优选处理线程为所述目标处理线程,则将当前的文件处理任务发送至所述目标处理线程进行处理;若所述优选处理线程不是所述目标处理线程,则将所述优选处理线程确定为新的目标处理线程。
5.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现如权利要求1至3中任一项所述的Hadoop文件处理方法的步骤。
6.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现如权利要求1至3中任一项所述的Hadoop文件处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910840684.9A CN110765082B (zh) | 2019-09-06 | 2019-09-06 | Hadoop文件处理方法、装置、存储介质及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910840684.9A CN110765082B (zh) | 2019-09-06 | 2019-09-06 | Hadoop文件处理方法、装置、存储介质及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110765082A CN110765082A (zh) | 2020-02-07 |
CN110765082B true CN110765082B (zh) | 2023-11-24 |
Family
ID=69330424
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910840684.9A Active CN110765082B (zh) | 2019-09-06 | 2019-09-06 | Hadoop文件处理方法、装置、存储介质及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110765082B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625254B (zh) * | 2020-05-06 | 2023-09-08 | Oppo(重庆)智能科技有限公司 | 文件处理方法、装置、终端及存储介质 |
CN113076290B (zh) * | 2021-04-12 | 2024-01-30 | 百果园技术(新加坡)有限公司 | 文件删除方法、装置、设备、***及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231585A (zh) * | 2007-01-26 | 2008-07-30 | 辉达公司 | 用于并行线程计算的虚拟结构和指令集 |
CN101957863A (zh) * | 2010-10-14 | 2011-01-26 | 广州从兴电子开发有限公司 | 数据并行处理方法、装置及*** |
CN105843813A (zh) * | 2015-01-14 | 2016-08-10 | ***通信集团重庆有限公司 | 一种处理大数据的方法及装置 |
CN109753354A (zh) * | 2018-11-26 | 2019-05-14 | 平安科技(深圳)有限公司 | 基于多线程的流媒体任务的处理方法、装置及计算机设备 |
CN109905366A (zh) * | 2019-01-16 | 2019-06-18 | 平安科技(深圳)有限公司 | 终端设备安全验证方法、装置、可读存储介质及终端设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9633041B2 (en) * | 2013-09-26 | 2017-04-25 | Taiwan Semiconductor Manufacturing Co., Ltd. | File block placement in a distributed file system network |
US9990223B2 (en) * | 2015-08-10 | 2018-06-05 | Salesforce.Com, Inc. | Systems and methods of improving parallel functional processing |
-
2019
- 2019-09-06 CN CN201910840684.9A patent/CN110765082B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231585A (zh) * | 2007-01-26 | 2008-07-30 | 辉达公司 | 用于并行线程计算的虚拟结构和指令集 |
CN101957863A (zh) * | 2010-10-14 | 2011-01-26 | 广州从兴电子开发有限公司 | 数据并行处理方法、装置及*** |
CN105843813A (zh) * | 2015-01-14 | 2016-08-10 | ***通信集团重庆有限公司 | 一种处理大数据的方法及装置 |
CN109753354A (zh) * | 2018-11-26 | 2019-05-14 | 平安科技(深圳)有限公司 | 基于多线程的流媒体任务的处理方法、装置及计算机设备 |
CN109905366A (zh) * | 2019-01-16 | 2019-06-18 | 平安科技(深圳)有限公司 | 终端设备安全验证方法、装置、可读存储介质及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110765082A (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10831562B2 (en) | Method and system for operating a data center by reducing an amount of data to be processed | |
US10338961B2 (en) | File operation task optimization | |
CN111913955A (zh) | 数据的排序处理装置、方法和存储介质 | |
US20180248934A1 (en) | Method and System for a Scheduled Map Executor | |
CN111143331B (zh) | 数据迁移方法、装置及计算机存储介质 | |
CN110765082B (zh) | Hadoop文件处理方法、装置、存储介质及服务器 | |
TWI603203B (zh) | 分散式計算之運算參數與叢集系統組態的推薦方法與系統 | |
CN105868218B (zh) | 一种数据处理方法及电子设备 | |
US20230128085A1 (en) | Data aggregation processing apparatus and method, and storage medium | |
CN113779060A (zh) | 数据查询方法和装置 | |
CA3094727C (en) | Transaction processing method and system, and server | |
CN111158904A (zh) | 一种任务调度方法、装置、服务器及介质 | |
CN117056303B (zh) | 适用于军事行动大数据的数据存储方法及装置 | |
CN110688223B (zh) | 数据处理方法及相关产品 | |
CN108664322A (zh) | 数据处理方法及*** | |
US8918555B1 (en) | Adaptive and prioritized replication scheduling in storage clusters | |
Kaur et al. | Image processing on multinode hadoop cluster | |
WO2023124135A1 (zh) | 特征检索方法、装置、电子设备、计算机存储介质和程序 | |
CN106528051A (zh) | 基于MongoDB的大数据队列堆栈高效操作的方法 | |
CN108874798B (zh) | 一种大数据排序方法和*** | |
CN110413670B (zh) | 基于MapReduce的数据导出方法、装置及设备 | |
CN113986846A (zh) | 数据处理方法、***、设备及存储介质 | |
CN110955637A (zh) | 一种基于低内存实现超大文件的排序方法 | |
CN106528577B (zh) | 一种设置待清理文件的方法和装置 | |
CN111842167A (zh) | 物品分拣的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |