本发明涉及数据处理技术领域,具体而言,涉及一种海杜普(hadoopdistributedfilesystem,hadoop)集群和分布式系统。
背景技术:
目前,数据处理量越来越大,种类也越来越繁多,呈现出大数据趋势。需要在对数据处理时,将待处理的数据分块后输入hadoop集群进行并行处理(如mapreduce),以得到数据处理结果。
相关技术中,hadoop集群包括主节点和多个从节点,主节点将待处理的数据分配到从节点,从节点对数据进行处理和存储。当在hadoop集群中增加从节点时,需要将hadoop集群中已有从节点上的数据迁移到新增从节点上。当要从hadoop集群中删除从节点时,需要先将待删除的从节点上的数据迁移到其他从节点后,才能删除该待删除的节点。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
由于从节点具有数据处理和存储功能,hadoop集群进行从节点增减时,都需要耗费大量的时间(几个小时或者几天)进行从节点间数据迁移,从而降低了hadoop集群的运行效率。
技术实现要素:
有鉴于此,本发明实施例的目的在于提供一种hadoop集群和分布式系统,以提高hadoop集群的运行效率。
第一方面,本发明实施例提供了一种hadoop集群,包括:主节点和与所述主节点连接的计算从节点;
所述主节点,用于向所述计算从节点分配待处理的数据;
所述计算从节点,用于对所述主节点分配的数据进行计算。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中:还包括:与所述主节点连接的核心从节点;
所述核心从节点,用于对所述主节点分配的数据进行存储。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中:所述主节点、所述核心从节点和所述计算从节点均采用虚拟机。
第二方面,本发明实施例还提供一种分布式系统,包括:节点调整服务器和上述权利要求1-3任一项所述的hadoop集群;
所述hadoop集群,包括:主节点、与所述主节点分别连接的计算从节点和核心从节点;
所述节点调整服务器,与所述主节点连接,用于根据所述计算从节点的计算任务信息和所述核心从节点的存储任务信息,分别调整与所述主节点连接的所述计算从节点和所述核心从节点的数量。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中:所述节点调整服务器,包括:
集群监控器,用于获取所述计算从节点的计算任务信息和所述核心从节点的存储任务信息;
计算节点处理器,用于根据所述计算任务信息,计算所述计算从节点的第一扩容数量;
核心节点处理器,用于根据所述存储任务信息,计算所述核心从节点的第二扩容数量或者缩减数量;
从节点调整单元,用于根据所述第一扩容数量对与所述主节点连接的所述计算从节点的数量进行调整,根据所述第二扩容数量或者所述缩减数量对与所述主节点连接的所述核心从节点的数量进行调整。
结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中:所述计算任务信息,包括:待处理任务量、当前工作中的计算从节点的计算能力参数、当前工作中的计算从节点的空闲计算能力参数和各计算从节点的最大计算能力参数;
所述计算节点处理器,具体用于:
当所述计算能力参数大于预设第一计算能力阈值的时长达到预设时长时,所述第一扩容数量=(所述待处理任务量-所述空闲计算能力参数)/所述最大计算能力参数。
结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,其中:所述计算任务信息,还包括:空闲计算从节点和空闲时间的对应关系表,所述空闲计算从节点和空闲时间的对应关系表记录有当前空闲的计算从节点的标识和对应的空闲时间;
所述计算节点处理器,还具体用于:
当根据所述空闲计算从节点和空闲时间的对应关系表,确定有计算从节点的空闲时间达到预设的第一空闲时间阈值时,将空闲时间达到所述第一空闲时间阈值的计算从节点的标识发送给所述从节点调整单元,使得所述从节点调整单元终止所述标识对应的计算从节点与所述主节点的连接。
结合第二方面,本发明实施例提供了第二方面的第四种可能的实施方式,其中:所述存储任务信息,包括:集群当前存储数据量、复制率、集群最大数据存储量、各核心从节点的最大存储能力参数、数据加载率上限阈值和数据加载率下限阈值:
所述核心节点处理器,具体用于:
通过(所述集群当前存储数据量*所述复制率)/所述集群最大数据存储量,计算所述hadoop集群的当前数据加载率;
当确定所述当前数据加载率大于所述数据加载率上限阈值时,通过(所述集群当前存储数据量*所述复制率-所述集群最大数据存储量)/(各核心从节点的最大存储能力参数*数据加载率上限阈值),计算所述第二扩容数量;
当确定所述当前数据加载率小于所述数据加载率下限阈值时,通过(所述集群当前存储数据量*所述复制率-所述集群最大数据存储量)/(各核心从节点的最大存储能力参数*数据加载率下限阈值),计算所述缩减数量。
结合第二方面,本发明实施例提供了第二方面的第五种可能的实施方式,其中:所述从节点调整单元,用于根据所述第一扩容数量对与所述主节点连接的所述计算从节点的数量进行调整,包括:
从空闲状态的计算从节点中选择所述第一扩容数量的计算空节点与所述主节点连接;
当获取到所述计算节点处理器发送的计算从节点的标识时,终止所述标识对应的计算从节点与所述主节点的连接,并将所述标识对应的计算从节点设置为空闲状态。
结合第二方面,本发明实施例提供了第二方面的第六种可能的实施方式,其中:所述从节点调整单元,用于根据所述第二扩容数量或者所述缩减数量对与所述主节点连接的所述核心从节点的数量进行调整,包括:
当获取到所述第二扩容数量时,从空闲状态的核心从节点中选择所述第一扩容数量的核心空节点与所述主节点连接;
当获取到所述缩减数量时,获取当前与所述主节点连接的各核心从节点的数据存储量;
根据所述各核心从节点的数据存储量,从所述各核心从节点中确定出数据存储量最小的所述缩减数量的核心从节点作为待终止的核心从节点;
终止确定出的所述核心从节点与所述主节点的连接,并将连接被终止的核心从节点设置为空闲状态。
本发明实施例提供的hadoop集群和分布式系统,通过在hadoop集群中设置用于数据计算的计算从节点,与相关技术中在对集群中的从节点进行增减时需要进行数据迁移相比,对计算从节点的增减无需进行数据迁移,只需很短的时间就能完成,保证了hadoop集群中计算从节点的处理性能,提高了hadoop集群的运行效率。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例1所提供的一种hadoop集群的结构示意图;
图2示出了本发明实施例2所提供的分布式系统的结构示意图;
图3示出了本发明实施例2所提供的分布式系统中,节点调整服务器的结构示意图;
图4示出了本发明实施例2所提供的分布式系统中,节点调整服务器的从节点调整单元具体调整核心从节点数量的具体流程。
图标:100-主节点;102-计算从节点;104-核心从节点;200-节点调整服务器;202-hadoop集群;300-集群监控器;302-计算节点处理器;304-核心节点处理器;306-从节点调整单元。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,hadoop集群包括主节点和多个从节点,主节点将待处理的数据分配到从节点,从节点对数据进行处理和存储。当在hadoop集群中增加从节点时,需要将hadoop集群中已有从节点上的数据迁移到新增从节点上。当要从hadoop集群中删除从节点时,需要先将待删除的从节点上的数据迁移到其他从节点后,才能删除该待删除的节点。由于从节点具有数据处理和存储功能,hadoop集群进行从节点增减时,都需要耗费大量的时间(几个小时或者几天)进行从节点间数据迁移,而进行数据迁移的从节点并不能处理主节点分配的数据,从而降低了hadoop集群的运行效率。基于此,本申请提供的一种hadoop集群和分布式系统。
需要注意的是,在本发明的描述中,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
另外,在本发明的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
实施例1
参见图1,本实施例提出一种hadoop集群,包括:主节点100和与上述主节点100连接的计算从节点102;
上述主节点100,用于向上述计算从节点102分配待处理的数据;
上述计算从节点102,用于对上述主节点100分配的数据进行计算。
优选地,上述hadoop集群,可以是应用在云环境下的hadoop集群。
在通过上述hadoop集群进行工作之前,hadoop集群的工作人员可以将待统计分析的数据拆分成若干个等大小的数据瓦片,数据瓦片为hadoopsequencefile8格式并且被加载到coveringhdfs用于处理。通常副本因子设置为3,数据瓦片大小设置为32mb。设置键值对,对输入的数据瓦片按照一定的规则解析成键值对。
在将待统计分析的数据拆分形成多个键值对后,hadoop集群的工作人员在coveringhdfs设置hadoop集群的主节点和计算从节点。主节点存储了元数据信息。建议在hadoop集群中设置主节点的数量为1个。
上述主节点100存储的元数据信息,包括了文件名称、大小、位置、属性、创建时间、修改时间、文件与块和节点的对应关系、以及用户对文件的操作信息。
设置在hadoop集群中的计算从节点,只提供计算能力,不提供数据存储能力。因此当集群增加或者减少时,最先开启或者关闭的是计算从节点。
为了保证hadoop集群能够正常工作,本实施例提出的hadoop集群,还包括:与上述主节点连接的核心从节点104;
上述核心从节点104,用于对上述主节点分配的数据进行存储。
在设置好hadoop集群中的主节点和计算从节点后,可以继续设置hadoop集群中的核心从节点。核心从节点可以作为整个hadoop集群的数据io。hadoop集群中设置的核心从节点越多,整个hadoop集群的io能力越强,“数据本地化(datalocality)”能力越强。一个hadoop集群中核心从节点的最少数量是由整个任务的特点来决定的。比如:处理io密集型任务时,hadoop集群就应该有较多的核心从节点;而处理计算密集的任务时,hadoop集群就可以有较多的计算从节点。
在hadoop集群的各工作节点设置完毕后,用户在客户端上向hadoop集群发送数据分析作业,hadoop集群将运行该数据分析作业所需要的资源文件复制到hdfs上,这些文件都存放在主节点100预设的jobtracker为该作业创建的文件夹中。在文件存储完毕后,jobtracker创建一个作业队列,根据当前各计算从节点和核心从节点的处理器核心的数量和内存的大小进行任务调度。
该核心从节点104,用于提供存储数据能力的同时,还可以对数据进行计算。
综上所述,本发明实施例提供的hadoop集群,通过在hadoop集群中设置用于数据计算的计算从节点,与相关技术中在对集群中的从节点进行增减时需要进行数据迁移相比,对计算从节点的增减无需进行数据迁移,只需很短的时间就能完成,保证了hadoop集群中计算从节点的处理性能,提高了hadoop集群的运行效率。
相关技术中,hadoop集群中的各工作节点(主节点、从节点)只能部署在物理机中,部署速度较慢而且部署数量会受到物理机的数量限制。为了增加hadoop集群中各工作节点的部署速度,本实施例提出的hadoop集群中,上述主节点、上述核心从节点和上述计算从节点均采用虚拟机。
除了采用虚拟机之外,hadoop集群中的上述主节点、上述核心从节点和上述计算从节点还可采用物理机。
通过以上的描述可以看出,hadoop集群中的各工作节点优选采用虚拟机,借助虚拟化技术,理论上可以无限扩展hadoop集群的计算和存储资源,使得增加的工作节点数量不受物理机数量限制;还可以快速增加hadoop集群中的工作节点,提高工作节点的部署效率。
实施例2
相关技术中,hadoop集群的主节点和多个从节点多采用物理机。hadoop集群部署后,一旦需要对hadoop集群中的节点进行扩展或者缩减,则需要hadoop集群的工作人员手动设置参数,操作比较繁琐。为了提高hadoop集群的执行效率,参见图2所示的系统结构,本实施例提出一种分布式系统,包括:节点调整服务器200和上述实施例1描述的hadoop集群202。
上述hadoop集群202,包括:主节点、与上述主节点分别连接的计算从节点和核心从节点;
上述节点调整服务器200,与上述主节点连接,用于根据上述计算从节点的计算任务信息和上述核心从节点的存储任务信息,分别调整与上述主节点连接的上述计算从节点和上述核心从节点的数量。
其中,上述节点调整服务器200从结构上划分,可以包括:一个控制界面,一个数据库和一个集群监控器。
其中,上述控制界面用来显示当前hadoop集群中的存储能力和计算能力的状态,相当于一个ui界面。
上述数据库用来存储当前负载均衡监控器和计算能力调度器的计算结果。
集群监控器包括但不限于:任务分析器、负载均衡监控器和计算能力调度器。
上述节点调整服务器从功能上划分,参见图3所示的节点调整服务器的结构示意图,上述节点调整服务器,包括:
集群监控器300,用于获取上述计算从节点的计算任务信息和上述核心从节点的存储任务信息;
计算节点处理器302,用于根据上述计算任务信息,计算上述计算从节点的第一扩容数量;
核心节点处理器304,用于根据上述存储任务信息,计算上述核心从节点的第二扩容数量或者缩减数量;
从节点调整单元306,用于根据上述第一扩容数量对与上述主节点连接的上述计算从节点的数量进行调整,根据上述第二扩容数量或者上述缩减数量对与上述主节点连接的上述核心从节点的数量进行调整。
其中,集群监控器300分别与计算节点处理器302和核心节点处理器304连接,计算节点处理器302和核心节点处理器304还分别与从节点调整单元306连接。
其中,上述计算任务信息,包括:待处理任务量、当前工作中的计算从节点的计算能力参数、当前工作中的计算从节点的空闲计算能力参数和各计算从节点的最大计算能力参数。
上述待处理任务量,由集群监控器中的任务分析器得到,任务分析器连接hadoop的jobtracker,从而得到当前待处理的任务数量。
上述当前工作中的计算从节点的计算能力参数,是集群监控器的负载均衡监控器中得到,具体是指集群中正在执行计算任务的计算节点的cpu的数量。
上述空闲计算能力参数,是集群监控器的负载均衡监控器中得到,具体是指集群中空闲节点的cpu的数量。
各个节点的最大计算能力参数,是作为节点使用的主机中的cpu数量。是申请虚拟机时得到的参数。
具体地,当上述hadoop集群部署在云环境下时,上述主机可以采用虚拟机实现;在其他情况下,上述主机也可以采用物理机实现。
上述计算节点处理器,具体用于执行以下步骤:
当上述计算能力参数大于预设第一计算能力阈值的时长达到预设时长时,上述第一扩容数量=(上述待处理任务量-上述空闲计算能力参数)/上述最大计算能力参数。
进一步地,上述计算任务信息,还包括:空闲计算从节点和空闲时间的对应关系表,上述空闲计算从节点和空闲时间的对应关系表记录有当前空闲的计算从节点的标识和对应的空闲时间。
在一个实施方式中,上述计算节点处理器,还具体用于执行以下步骤:
当根据所述空闲计算从节点和空闲时间的对应关系表,确定有计算从节点的空闲时间达到预设的第一空闲时间阈值时,将空闲时间达到所述第一空闲时间阈值的计算从节点的标识发送给所述从节点调整单元,使得所述从节点调整单元终止所述标识对应的计算从节点与所述主节点的连接。
在一个实施方式中,上述从节点调整单元,用于根据上述第一扩容数量对与上述主节点连接的上述计算从节点的数量进行调整,包括以下步骤(1)至步骤(2):
(1)当获取到上述计算节点处理器发送的上述第一扩容数量时,从空闲状态的计算从节点中选择上述第一扩容数量的计算空节点与上述主节点连接;
(2)当获取到上述计算节点处理器发送的计算从节点的标识时,终止上述标识对应的计算从节点与上述主节点的连接,并将上述标识对应的计算从节点设置为空闲状态。
通过以上的描述可以看出,通过简单的计算和处理,就可以对hadoop集群中的计算从节点进行扩展或者缩减,降低了hadoop集群中计算节点的部署难度。
在hadoop集群中可以通过以上描述的方法进行计算从节点的扩展和缩减,下面本实施例中继续对如何进行核心从节点进行扩展和缩减进行描述。
上述存储任务信息,包括:集群当前存储数据量、复制率、集群最大数据存储量、各核心从节点的最大存储能力参数、数据加载率上限阈值和数据加载率下限阈值。
具体地,上述集群当前存储数据量:是集群监控器的负载均衡监控器中得到hadoop集群的所有核心从节点当前磁盘存储空间。
复制率,为预设常数,hadoop集群的工作人员可以在进行作业之前通过主节点上的dfs.replication来设置复制率的大小。
在一个实施方式中,复制率可以设置为3。
上述集群最大数据存储量,用于表示hadoop集群中所有核心从节点的硬盘容量。
上述从节点最大存储能力,核心从节点上最大的硬盘容量。
具体地,hadoop集群中所有核心从节点的硬盘容量以及核心从节点上最大的硬盘容量可以在hadoop集群投入使用之前由技术人员设置得到。
上述数据加载率上限阈值和数据加载率下限阈值,是人为设置的数据存储率参数,hadoop集群的工作人员可以在进行作业之前进行设置。
因此,上述核心节点处理器,具体用于执行以下步骤(1)至步骤(3):
(1)通过(上述集群当前存储数据量*上述复制率)/上述集群最大数据存储量,计算上述hadoop集群的当前数据加载率;
(2)当确定上述当前数据加载率大于上述数据加载率上限阈值时,通过(上述集群当前存储数据量*上述复制率-上述集群最大数据存储量)/(各核心从节点的最大存储能力参数*数据加载率上限阈值),计算上述第二扩容数量;
(3)当确定上述当前数据加载率小于上述数据加载率下限阈值时,通过(上述集群当前存储数据量*上述复制率-上述集群最大数据存储量)/(各核心从节点的最大存储能力参数*数据加载率下限阈值),计算上述缩减数量。
在一个实施方式中,参见图4所示的流程,上述从节点调整单元,用于根据上述第二扩容数量或者上述缩减数量对与上述主节点连接的上述核心从节点的数量进行调整,包括以下步骤:
步骤400、当获取到上述第二扩容数量时,从空闲状态的核心从节点中选择上述第一扩容数量的核心空节点与上述主节点连接;
步骤402、当获取到上述缩减数量时,获取当前与上述主节点连接的各核心从节点的数据存储量;
步骤404、根据上述各核心从节点的数据存储量,从上述各核心从节点中确定出数据存储量最小的上述缩减数量的核心从节点作为待终止的核心从节点;
步骤406、终止确定出的上述核心从节点与上述主节点的连接,并将连接被终止的核心从节点设置为空闲状态。
通过以上步骤400至步骤406的描述可以看出,从上述各核心从节点中确定出数据存储量最小的上述缩减数量的核心从节点作为待终止的核心从节点,从而大大减少了缩减从节点过程中数据迁移的时间,提高了hadoop集群的节点调整效率。
为了增加部署效率,上述节点调整服务器200,可以部署在虚拟机上。优选地,节点调整服务器200可以部署在主节点所在物理机的虚拟机上。
综上所述,本实施例提出的分布式系统,提出了hadoop集群中计算从节点和核心从节点的自动化的弹性扩容或者缩减方法;提高了计算资源和存储资源的利用效率,确保数据处理的效率最优和成本最低。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。