数据并行处理方法、装置及系统的制作方法

文档序号:6334110阅读:471来源:国知局
专利名称:数据并行处理方法、装置及系统的制作方法
技术领域
本发明涉及数据处理技术,具体涉及一种数据并行处理方法、装置及系统。
背景技术
Hadoop是基于shared-nothing架构的海量数据存储和计算的分布式系统,它由 若干个成员组成,主要包括HDFS (Hadoop Distributed File System,分布式文件系统)、 MapReduce (并行计算框架),HBase (Google BigTable的开源实现)等。其中,MapReduce作 为一套开放式的并行计算框架能够与目前流行的各种分布式产品结合实现灵活的并行计 算和分布式计算功能,可以将HDFS、HBase、Cassandra(—个混合型的非关系的数据库)等 平台的数据作为MapReduce的输入源进行并行加工处理,并将处理后的数据输出到HDFS、 HBase, Cassandra 等输出源中。MapReduce的计算过程简而言之,就是将大数据集分解为成百上千的小数据集,每 个或若干个数据集分别由集群中的一个节点(通常是一台普通的计算机)进行处理并生成 中间结果,然后这些中间结果又由大量的节点进行合并,形成最终结果。MapReduce计算模型的原理是利用一个输入key/value对来产生一个或一批输 出的key/value对,其核心是利用两个函数即Map和Reduce来表达这个计算,而函数Map 和Reduce由用户来实现。在MapReduce框架中,每一次计算请求被称为作业。在分布式计算MapReduce框 架中,分两步完成这个作业。首先是将该作业拆分成若干个Map任务,分配到不同的机器上 去执行,每一个Map任务将输入文件的一部分作为自己的输入,经过一些计算,生成某种格 式的中间文件,其格式与最终所需的文件格式完全一致,但是仅仅包含一部分数据。等到所 有Map任务完成后,进入下一个步骤,用以合并这些中间文件获得最后的输出文件。此时, 系统会生成若干个Reduce任务,同样也是分配到不同的机器去执行,它的目标就是将若干 个Map任务生成的中间文件为汇总到最后的输出文件中去。经过如上步骤,作业完成,所需 的目标文件生成。整个算法的关键,就在于增加了一个中间文件生成的流程,大大提高了灵 活性,使其分布式扩展性得到了保证。目前,要实现数据的分布式加工处理,由于采集系统采集文件存储在本地,无法直 接通过并行计算框架MapReduce进行处理,需要先将文件从采集服务器拷贝到HDFS上,然 后再通过MapReduce进行数据加工处理。这种处理方式至少存在以下缺点1.需要将文件从本地文件系统拷贝到分布式文件系统中;2.需要在分布式文件系统和本地文件系统中保留两份相同的数据,增加了不必要 的存储空间;3.对于数据一致性要求高的系统,需要确定拷贝过程中没有丢失数据和重复数 据,增加了数据一致性检查的难度;4.由于处理大量小文件的时候,需要为每个小文件启动一个任务来进行处理,增 加了任务多次启动和停止的额外开销,处理效率非常低。

发明内容
本发明实施例针对上述现有技术存在的缺点,提供一种数据并行处理方法、装置 及系统,以简化处理流程,节省存储空间,并提高数据处理效率及数据处理的可靠性。为此,本发明实施例提供如下技术方案一种数据并行处理方法,包括实时检测数据采集服务器中需要处理的数据;对检测到的数据进行分区和/或聚合处理,使其形成大小为预定值的数据分区;建立与各数据分区对应的描述信息,并将所述描述信息依次存入数据分区队列 中;收到Hadoop系统中处理节点的Map任务的请求后,从所述数据分区队列中读取一 个描述信息,并根据所述描述信息获取对应的数据分区中的数据;将获取的数据传送到Map任务的输入源。一种数据并行处理装置,包括检测单元,用于实时检测数据采集服务器中需要处理的数据;数据分区生成单元,用于对所述检测单元检测到的数据进行分区和/或聚合处 理,使其形成大小为预定值的数据分区;描述信息建立单元,用于建立与各数据分区对应的描述信息,并将所述描述信息 依次存入数据分区队列中;请求接收单元,用于接收Hadoop系统中处理节点的Map任务的请求;数据流处理器,用于在所述请求接收单元收到Hadoop系统中处理节点的Map任务 的请求后,从所述数据分区队列中读取一个描述信息,并根据所述描述信息获取对应的数 据分区中的数据;数据传送单元,用于将所述数据流处理器获取的数据传送到Map任务的输入源。一种数据并行处理系统,包括数据采集服务器、并行加载平台和Hadoop系统,所 述Hadoop系统包括处理节点和管理节点,其中所述数据采集服务器,用于采集需要处理的数据;所述并行加载平台,用于实时检测数据采集服务器中需要处理的数据;对检测到 的数据进行分区和/或聚合处理,使其形成大小为预定值的数据分区;建立与各数据分区 对应的描述信息,并将所述描述信息依次存入数据分区队列中;收到Hadoop系统中处理节 点的Map任务的请求后,从所述数据分区队列中读取一个描述信息,并根据所述描述信息 获取对应的数据分区中的数据;将获取的数据传送到Map任务的输入源。所述Hadoop系统,用于并行处理各处理节点的Map任务的输入源收到的数据,并 将处理后的数据输出。本发明实施例数据并行处理方法、装置及系统,应用于Hadoop系统的并行计算框 架MapReduce,将数据从采集服务器上直接传送到MapReduce节点上进行处理,无需将文件 从采集服务器拷贝到HDFS上,从而节省了存储空间,简化了处理流程,提高了数据处理效 率及数据处理的可靠性。进一步地,可以将MapReduce的输入扩展到应用程序的输出上,在不需将应用程
6序的输出首先输出到文件系统的情况下,就可以并行处理应用程序的输出;并且可以将 MapReduce的输出扩展到应用程序的输入上,使MapReduce任务直接将处理后的数据输出 到应用程序。


为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他 的附图。图1是现有技术中MapReduce的一个典型处理流程示意图;图2是本发明实施例数据并行处理方法的流程图;图3是本发明实施例数据并行处理装置的一种结构示意图;图4是本发明实施例数据并行处理系统的组网示意图。
具体实施例方式为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本 发明作进一步的详细说明。本发明实施例数据并行处理方法、装置及系统应用于Hadoop的并行计算框架 MapReduce,为了更好地理解本发明方案,首先对现有技术中MapReduce的处理流程做简单 说明。在后面实施例的描述中,将保存在采集服务器端的文件称作本地文件。如图1所示,是现有技术中MapReduce的一个典型处理流程,其中Map任务通过相应的输入源类读取需要处理的数据,经过对数据进行收敛/聚合 处理后,由Reduce任务通过相应的输出源类输出。Hadoop可以处理多种不同的数据格式,存储在分布式文件系统上的文件到数据 库,但其无法直接提供对采集服务器端的本地文件系统(如日志式文件系统ext3 (Third extended file system))的文件进行处理,也无法将处理后的数据直接输出到本地文件系 统中。为此,本发明实施例数据并行处理方法、装置及系统,将数据从采集服务器上直接 传送到MapReduce节点上进行处理,避免了文件拷贝的操作,从而节省存储空间,简化处理 流程,提高数据处理效率及数据处理的可靠性。如图2所示,是本发明实施例数据并行处理方法的流程图,包括以下基本步骤步骤201,实时检测数据采集服务器中需要处理的数据。所述需要处理的数据可以是以下任意一种或多种磁盘上存储的文件中的数据, 实时数据、应用程序输出的数据等。对于磁盘上存储的文件中的数据,可以周期性地对其进行检测,比如周期性地扫 描磁盘上的文件;对于实时数据和应用程序输出的数据,可以通过对其输出接口实时监测 获得,对此将在后面详细说明。步骤202,对检测到的数据进行分区和/或聚合处理,使其形成大小为预定值的数据分区。所述分区是指对检测到的较大文件中的数据进行拆分,相反,所述聚合是指对检 测到小文件中的数据块进行合并。比如,对检测到的数据进行分区和/或聚合处理后,使其形成一个个稳定大小的 数据分区,比如64Mbit的数据分区,这样在后续将其传送到MapReduce节点上处理时,可以 使每个Map任务一次处理一个所述数据分区中的数据,从而提高Hadoop对小文件的处理效率。步骤203,建立与各数据分区对应的描述信息,并将所述描述信息依次存入数据分 区队列中。对于形成的每个数据分区,可以建立与其对应的描述信息,以便在需要将数据传 送给MapReduce节点时,根据该描述信息获得相应分区中的数据。数据分区的描述信息可以包括文件名、偏移量、数据块大小等信息,比如可以采 用以下形式的描述信息List of {struct FileSplit {String fiIeName ;//文件名long offset ; // 偏移量long size ; // 大小}} 步骤204,收到Hadoop系统中处理节点的Map任务的请求后,从所述数据分区队列 中读取一个描述信息,并根据所述描述信息获取对应的数据分区中的数据。在Hadoop系统中,管理节点可以获知采集服务器集群中需要处理的数据量,并根 据该数据量为各MapReduce节点分配任务,以使不同的MapReduce节点对采集服务器集群 中需要处理的数据进行并行处理。每个MapReduce节点启动后,Map任务通过输入源请求数据,Reduce任务通过输出 源输出处理后的数据。在本发明实施例的应用系统与MapReduce节点建立连接后,会接收到Map任务发 送的请求信号,此时,可以根据所述数据分区队列中的描述信息,获得相对应的数据分区中 的数据。需要说明的是,在从所述数据分区队列中读取一个描述信息时,可以依次读取,当 然也可以任意选择其中之一,但读取的描述信息应该是还未处理的数据分区对应的描述信 息。为此,可以通过设置一个读取标记来实现。如果一个描述信息已被读取,则将其标记为 已读取,则在下一次接收到Map任务的请求信号后,从所述数据分区队列中未被标记的描 述信息中进行选择。步骤205,将获取的数据传送到Map任务的输入源。在本发明实施例中,为了防止数据被重复处理,在数据处理完成后,可以将已经处 理完的文件(该文件的所有数据分区都已被处理完成)删除和/或备份起来。具体地,如 果所述数据分区是经过分区处理形成的,则在该数据分区以及与该数据分区同属于一个文
8件的其他数据分区都已被读取后,才可删除和/或备份所述文件;如果所述数据分区是经 过聚合处理形成的,则在该数据分区被读取后,即可删除和/或备份该数据分区中的数据 所属的文件。本发明实施例数据并行处理方法,将数据从采集服务器上直接传送到MapReduce 节点上进行处理,避免了文件拷贝的操作,从而节省了存储空间,简化了处理流程,提高了 数据处理效率及数据处理的可靠性。而且,将MapReduce的输入扩展到了应用程序的输出 上,在不需将应用程序的输出首先输出到文件系统的情况下,就可以并行处理应用程序的 输出。在本发明实施例中,还可进一步包括以下步骤收到Reduce任务的请求信号后,获取Reduce任务的输出源输出的数据;
将输出的数据写到文件或者应用程序中。也就是说,本发明实施例数据并行处理方法,不仅可以将MapReduce的输入扩展 到应用程序中,而且可以将MapReduce并行计算后的输出直接输出到应用程序中,这对于 某些查询应用来说非常有利,提高了处理的响应速度。为了配合实时数据和应用程序加载服务,实现本地实时数据和应用程序数据的并 行计算功能,需要实现输入输出源。在本发明实施例中,所述输入输出源可以通过与实时数 据和应用程序加载服务建立TCP连接,通过网络实现数据的传输功能。对于输入源,可以通过以下方式实现Hadoop系统中管理节点获取数据流处理线程池中空闲的线程数;根据所述空闲的线程数为一个或多个所述处理节点分配任务,并指定该任务需要 侦听的IP地址和端口号;Hadoop系统中处理节点根据所述IP地址和端口号获取实时数据或者应用程序输 出的数据。具体的实现可以从Hadoop的输入数据格式基类继承,并实现其中的虚方法。MapReduce提供的输入格式基类如下所示public abstract class InputFormat<K, V> {public abstractList<InputSplit>getSplits(JobContext context)throws IOException,InterruptedException ;public abstractRecordReader<K, V>createRecordReader(InputSplit split,TaskAttemptContextcontext) throws IOException,InterruptedException ;}该类中提供了两个函数,可以在继承类中实现,其中
第一个函数getSplits的实现逻辑为1)与实时数据和应用数据加载服务建立连接;2)获取数据流处理线程池中空闲置线程数N ;3)根据获取的空闲线程数,建立List<InputSplit>并插入N条记录,每条 InputSplit中指定服务的侦听IP和端口号,用来在后续实现N个任务同时运行,这样可以 使得有N个任务同时从实时数据和应用数据加载服务中获取数据。第二个函数createRecordReader,用来创建一个记录读取器,该记录读取器的实 现逻辑为1)每个任务通过InputSplit中指定的信息,建立与实时数据和应用数据加载服 务的连接;
法。


2)实时数据和应用数据加载服务为每个连接分配一个线程;
3)分配的线程将数据传输到任务中,任务对收到的数据进行处理。
对于输出源,同样可以从Hadoop的输出数据格式基类继承,并实现其中的虚方
MapReduce提供的输出格式基类如下所示 public abstract class OutputFormat<K, V> { public abstract Recordffriter<K, V>
getRecordffriter(TaskAttemptContext context
)throws IOException, InterruptedException ; public abstract void checkOutputSpecs(JobContext context
)throws IOException,
InterruptedException ; public abstract
OutputCommitter getOutputCommitter(TaskAttemptContext context
)throws IOException,
InterruptedException ;
}
输出源的实现需要继承OutputFormat基类,实现其中的虚方法。其中 函数getRecordWriter用来创建一个写入器,写入数据到文件或者应用程序中,
写入器的实现逻辑如下
1)连接到实时数据和应用数据加载服务;
2)通过网络将要写入的输入传输到实时数据和应用数据加载服务中;
3)实时数据和应用数据加载服务分配一个线程来接收数据,并写到本地文件系统中。需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部 分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取 存储介质中,所述的存储介质,如R0M/RAM、磁碟、光盘等。在具体应用中,可以设置多个线程,通过调度不同的线程来完成对Map任务的请 求及Reduce任务的请求的处理等操作。
10
另外,在本发明实施例中,为了保证处理资源的平衡性,还可以根据整个服务的运 行情况,进行动态资源控制。资源控制时需要考虑的因素可以是服务相关的信息,如线程 池数量、队列深度、处理延迟情况,也可以是全局信息,如CPU繁忙程度、磁盘IO情况等。比如,为了避免在服务中分配太多的线程,同时也会有足够的线程来满足需要的 并行服务,可以根据队列深度来对线程池的数据进行调节。具体实现方式可以如下周期性获取数据分区队列的长度;如果所述长度达到或超过设定的第一阈值,则增加一个数据流处理线程,并暂缓 检测需要处理的数据;如果所述长度达到或超过设定的第二阈值,则删除增加的数据流处理线程,并恢 复检测需要处理的数据。当然,所述动态资源控制并不仅限于上述具体方式,还可以有其他的控制方式,在 此不再一一举例说明。相应地,本发明实施例还提供一种数据并行处理装置,如图3所示,是该装置的一 种结构示意图。在该实施例中,所述数据并行处理装置包括检测单元301,用于实时检测数据采集服务器中需要处理的数据;数据分区生成单元302,用于对所述检测单元301检测到的数据进行分区和/或聚 合处理,使其形成大小为预定值的数据分区;描述信息建立单元303,用于建立与各数据分区对应的描述信息,并将所述描述信 息依次存入数据分区队列中;请求接收单元304,用于接收Hadoop系统中处理节点的Map任务的请求;数据流处理器305,用于在所述请求接收单元304收到Hadoop系统中处理节点的 Map任务的请求后,从所述数据分区队列中读取一个描述信息,并根据所述描述信息获取对 应的数据分区中的数据;数据传送单元306,用于将所述数据流处理器获取的数据传送到Map任务的输入 源。在本发明实施例中,所述需要处理的数据可以是以下任意一种或多种磁盘上存 储的文件中的数据,实时数据、应用程序输出的数据等。对于磁盘上存储的文件中的数据, 检测单元301可以周期性地对其进行检测,比如周期性地扫描磁盘上的文件;对于实时数 据和应用程序输出的数据,检测单元301可以通过对其输出接口实时监测获得,对此前面 已有详细说明,在此不再赘述。在本发明实施例中,所述请求接收单元304,还可进一步用于接收Hadoop系统中 处理节点的Reduce任务的请求;相应地,所述数据流处理器305,还可进一步用于在所述请 求接收单元304收到Hadoop系统中处理节点的Reduce任务的请求后,获取Reduce任务的 输出源输出的数据,并将获取的数据写到文件或者应用程序中。本发明实施例数据并行处理装置,可以将数据从采集服务器上直接传送到 MapReduce节点上进行处理,避免了文件拷贝的操作,从而节省了存储空间,简化了处理流 程,提高了数据处理效率及数据处理的可靠性。而且,可以将MapReduce的输入扩展到了应 用程序的输出上,在不需将应用程序的输出首先输出到文件系统的情况下,就可以并行处理应用程序的输出。另外,在本发明实施例中,所述装置还可进一步包括文件维护单元(未图示),用 于针对经过分区处理形成的数据分区,在该数据分区以及与该数据分区同属于一个文件的 其他数据分区都已被读取后,删除和/或备份所述文件;针对经过聚合处理形成的,在该数 据分区被读取后,删除和/或备份该数据分区中的数据所属的文件。这样,可以防止数据被
重复处理。在具体实现中,所述数据流处理器305可以设置多个数据流处理线程,通过调度 不同的数据流处理线程来完成对Map任务的请求及Reduce任务的请求的处理等操作。另外,在本发明实施例中,为了保证处理资源的平衡性,还可以根据整个服务的运 行情况,进行动态资源控制。资源控制时需要考虑的因素可以是服务相关的信息,如线程 池数量、队列深度、处理延迟情况,也可以是全局信息,如CPU繁忙程度、磁盘IO情况等。比如,本发明实施例数据并行处理装置还可进一步包括资源控制器(未图示), 用于周期性获取数据分区队列的长度;并在所述长度达到或超过设定的第一阈值后,增加 一个数据流处理线程,并通知所述检测单元暂缓检测需要处理的数据;在所述长度达到或 超过设定的第二阈值后,删除增加的数据流处理线程,并通知所述检测单元恢复检测需要 处理的数据。相应地,本发明实施例还提供一种数据并行处理系统,如图4所示,该系统基于 Hadoop的并行计算框架实现对数据的并行处理,主要包括数据采集服务器、并行加载平台和Hadoop系统,所述Hadoop系统包括处理节点和 管理节点,其中所述数据采集服务器,用于采集需要处理的数据;所述并行加载平台,用于实时检测数据采集服务器中需要处理的数据;对检测到 的数据进行分区和/或聚合处理,使其形成大小为预定值的数据分区;建立与各数据分区 对应的描述信息,并将所述描述信息依次存入数据分区队列中;收到Hadoop系统中处理节 点的Map任务的请求后,从所述数据分区队列中读取一个描述信息,并根据所述描述信息 获取对应的数据分区中的数据;将获取的数据传送到Map任务的输入源。所述Hadoop系统,用于并行处理各处理节点的Map任务的输入源收到的数据,并 将处理后的数据输出。在本发明实施例中,所述并行加载平台,还可用于接收Hadoop系统中处理节点的 Reduce任务的请求,获取Reduce任务的输出源输出的数据,并将获取的数据写到文件或者 应用程序中。需要说明的是,所述需要处理的数据可以包括以下任意一种或多种磁盘上存储 的文件中的数据,实时数据、应用程序输出的数据;在实际应用中,所述并行加载平台,可以通过分配一个或多个数据流处理线程处 理所述Map任务的请求和Reduce任务的请求;所述Hadoop系统中的管理节点,除了具有与现有技术中相同的功能(比如为各处 理节点分配任务)外,在本发明实施例中,还可以用于获取数据流处理线程池中空闲的线 程数;根据所述空闲的线程数为一个或多个所述处理节点分配任务,并指定该任务需要侦 听的IP地址和端口号;相应地,所述Hadoop系统中处理节点,用于根据所述IP地址和端口
12号获取实时数据或者应用程序输出的数据。在实际应用中,对于海量数据的处理,可以由多个数据采集服务器组成采集服务 器集群,每个数据采集服务器上部署一个对应的并行加载平台,由各自的并行加载平台实 现输入服务和输出服务。其中,输入服务从采集服务器的文件系统或者应用程序输出读取 数据,进行数据的重新分解和合并,变成适合MapReduce任务处理的数据单元,并将相应的 数据单元传输给MapReduce任务进行处理;输出服务接收MapReduce任务处理后的结果,并 输出到采集服务器的文件系统。应用本发明实施例数据并行处理系统,可以将需要处理的数据从采集服务器上直 接传送到MapReduce节点上进行处理,无需文件拷贝的操作,从而节省了存储空间,简化了 处理流程,提高了数据处理效率及数据处理的可靠性。进一步地,通过并行加载平台,将实 时数据和应用程序数据的读写能力扩展到Hadoop的输入源,减少了不必要的文件生成的 中间环节,结合MapReduce并行计算框架,实现对实时数据和应用程序数据的并行处理;同 时,能够将MapReduce并行计算后的数据直接输出到应用程序中,有效地提高了处理的响 应速度。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部 分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实 施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例 的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明 的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是 物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要 选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出 创造性劳动的情况下,即可以理解并实施。以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式
对本发明进行 了阐述,以上实施例的说明只是用于帮助理解本发明的方法及设备;同时,对于本领域的 一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所 述,本说明书内容不应理解为对本发明的限制。
权利要求
一种数据并行处理方法,其特征在于,包括实时检测数据采集服务器中需要处理的数据;对检测到的数据进行分区和/或聚合处理,使其形成大小为预定值的数据分区;建立与各数据分区对应的描述信息,并将所述描述信息依次存入数据分区队列中;收到Hadoop系统中处理节点的Map任务的请求后,从所述数据分区队列中读取一个描述信息,并根据所述描述信息获取对应的数据分区中的数据;将获取的数据传送到Map任务的输入源。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括收到Hadoop系统中处理节点的Reduce任务的请求后,获取Reduce任务的输出源输出 的数据;将输出的数据写到文件或者应用程序中。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括如果所述数据分区是经过分区处理形成的,则在该数据分区以及与该数据分区同属于 一个文件的其他数据分区都已被读取后,删除和/或备份所述文件;如果所述数据分区是经过聚合处理形成的,则在该数据分区被读取后,删除和/或备 份该数据分区中的数据所属的文件。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括利用一个或多个数据流处理线程处理所述Map任务的请求信号和Reduce任务的请求 信号。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括 周期性获取数据分区队列的长度;如果所述长度达到或超过设定的第一阈值,则增加一个数据流处理线程,并暂缓检测 需要处理的数据;如果所述长度达到或超过设定的第二阈值,则删除增加的数据流处理线程,并恢复检 测需要处理的数据。
6.根据权利要求4所述的方法,其特征在于,所述需要处理的数据包括以下任意一种 或多种磁盘上存储的文件中的数据,实时数据、应用程序输出的数据。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括 Hadoop系统中管理节点获取数据流处理线程池中空闲的线程数;根据所述空闲的线程数为一个或多个所述处理节点分配任务,并指定该任务需要侦听 的IP地址和端口号;Hadoop系统中处理节点根据所述IP地址和端口号获取实时数据或者应用程序输出的 数据。
8.一种数据并行处理装置,其特征在于,包括检测单元,用于实时检测数据采集服务器中需要处理的数据; 数据分区生成单元,用于对所述检测单元检测到的数据进行分区和/或聚合处理,使 其形成大小为预定值的数据分区;描述信息建立单元,用于建立与各数据分区对应的描述信息,并将所述描述信息依次 存入数据分区队列中;2请求接收单元,用于接收Hadoop系统中处理节点的Map任务的请求;数据流处理器,用于在所述请求接收单元收到Hadoop系统中处理节点的Map任务的请 求后,从所述数据分区队列中读取一个描述信息,并根据所述描述信息获取对应的数据分 区中的数据;数据传送单元,用于将所述数据流处理器获取的数据传送到Map任务的输入源。
9.根据权利要求8所述的装置,其特征在于,所述请求接收单元,还用于接收Hadoop系统中处理节点的Reduce任务的请求;所述数据流处理器,还用于在所述请求接收单元收到Hadoop系统中处理节点的 Reduce任务的请求后,获取Reduce任务的输出源输出的数据,并将获取的数据写到文件或 者应用程序中。
10.根据权利要求8或9所述的装置,其特征在于,所述装置还包括文件维护单元,用于针对经过分区处理形成的数据分区,在该数据分区以及与该数据 分区同属于一个文件的其他数据分区都已被读取后,删除和/或备份所述文件;针对经过 聚合处理形成的,在该数据分区被读取后,删除和/或备份该数据分区中的数据所属的文 件。
11.根据权利要求9所述的装置,其特征在于,所述方法还包括所述数据流处理器,具体用于分配一个或多个数据流处理线程处理所述Map任务的请 求信号和Reduce任务的请求信号。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括资源控制器,用于周期性获取数据分区队列的长度;并在所述长度达到或超过设定的 第一阈值后,增加一个数据流处理线程,并通知所述检测单元暂缓检测需要处理的数据;在 所述长度达到或超过设定的第二阈值后,删除增加的数据流处理线程,并通知所述检测单 元恢复检测需要处理的数据。
13.一种数据并行处理系统,其特征在于,包括数据采集服务器、并行加载平台和 Hadoop系统,所述Hadoop系统包括处理节点和管理节点,其中所述数据采集服务器,用于采集需要处理的数据;所述并行加载平台,用于实时检测数据采集服务器中需要处理的数据;对检测到的数 据进行分区和/或聚合处理,使其形成大小为预定值的数据分区;建立与各数据分区对应 的描述信息,并将所述描述信息依次存入数据分区队列中;收到Hadoop系统中处理节点的 Map任务的请求后,从所述数据分区队列中读取一个描述信息,并根据所述描述信息获取对 应的数据分区中的数据;将获取的数据传送到Map任务的输入源。所述Hadoop系统,用于并行处理各处理节点的Map任务的输入源收到的数据,并将处 理后的数据输出。
14.根据权利要求13所述的系统,其特征在于,所述并行加载平台,还用于接收Hadoop系统中处理节点的Reduce任务的请求,获取 Reduce任务的输出源输出的数据,并将获取的数据写到文件或者应用程序中。
15.根据权利要求13所述的系统,其特征在于,所述需要处理的数据包括以下任意一 种或多种磁盘上存储的文件,实时数据、应用程序输出的数据;所述并行加载平台,具体通过分配一个或多个数据流处理线程处理所述Map任务的请求和Reduce任务的请求;所述Hadoop系统中的管理节点,用于获取数据流处理线程池中空闲的线程数;根据所 述空闲的线程数为一个或多个所述处理节点分配任务,并指定该任务需要侦听的IP地址 和端口号;Hadoop系统中处理节点,用于根据所述IP地址和端口号获取实时数据或者应用程序 输出的数据。
全文摘要
本发明涉及数据并行处理方法、装置及系统,所述方法包括实时检测数据采集服务器中需要处理的数据;对检测到的数据进行分区和/或聚合处理,使其形成大小为预定值的数据分区;建立与各数据分区对应的描述信息,并将所述描述信息依次存入数据分区队列中;收到Hadoop系统中处理节点的Map任务的请求后,从所述数据分区队列中读取一个描述信息,并根据所述描述信息获取对应的数据分区中的数据;将获取的数据传送到Map任务的输入源。利用本发明,可以将数据从采集服务器上直接传送到MapReduce节点上进行处理,从而节省了存储空间,简化了处理流程,提高了数据处理效率及数据处理的可靠性。
文档编号G06F17/30GK101957863SQ20101051259
公开日2011年1月26日 申请日期2010年10月14日 优先权日2010年10月14日
发明者喻先兵, 温文全 申请人:广州从兴电子开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1