本发明涉及移动通信技术领域,具体涉及一种分布式数据分发方法。
背景技术:
计算机网络的发展早已进入多核时代,多个核心的有效搭配极大的提升了硬件设备的工作效率。分布式数据分发服务(datadistributionservice,dds)是对象管理组织发布的关于分布式系统中实时数据分发的一个规范,其定义了一个与平台无关的分布式数据分发模型,以数据为中心,在网络上以发布/订阅方式来传送数据,可满足较高的实时性要求。dds规范了接口与数据格式,具备数据共享能力,可随时将节点加入到网络中来,具有较好的灵活性和扩展性。dds对复杂网络具有良好的适应性,可应用于大多数异构网络。如何避免出现网络堵塞问题,如何降低网络资源损耗是亟需解决的问题。
技术实现要素:
本发明的目的在于克服上述现有技术的缺陷,提出一种可靠性高、有效降低网络资源损耗的一种分布式数据分发方法。
本发明采用的技术方案如下:一种分布式数据分发方法,包括如下步骤:
步骤1)建立分布式数据匹配的端点并建立通信连接;步骤2)建立hadoop的计算机分布式存储;步骤3)建立数据文件分发数学模型并进行了文件分发算法设计。
进一步,所述步骤1)的具体过程为:
步骤1.1,当有新的端点建立或有端点被删除时,更新功能被触发;
步骤1.2,收集当前内部包含的所有端点的特征信息,包含话题、类型构成唯一标志字符串,增加新增端点特征信息或去掉已删除端点特征信息;
步骤1.3,发送代表布隆过滤器位数组的小数值;
步骤1.4,利用逆向二进制算术编码进行解码,获得未经压缩的原布隆过滤器位数组;
步骤1.5,利用逆向布隆过滤器,将本地端点的特征信息与中端点的特征信息进行快速匹配;
步骤1.6,对于匹配的中端点信息,通知其中的端点向相应端点进一步发送确认信息;
步骤1.7,收到端点信息后,将自己的信息与收到的中端点的信息进行匹配,若发现完全匹配,则发送建立连接的消息;否则,不发送建立连接的消息。
进一步,步骤2)的具体过程为:
步骤2.1)进行数据模块的分割:由mapreduce负责数据处理,这些数据全部来源于hdfs,在进行计算前,需要先做好数据的分块;
步骤2.2)进行任务创建:需要先进行job提交,在jobtracker获取到相应提交数据后,便会为本次任务进行maptask与reducetask的分配,并提交至tasktracker;
步骤2.3)经历map过程:在每个datanode中,都运行有一个tasktracker,其为负责进行map任务的执行;在具体执行过程中,maptask会先进行数据的读取,然后借助map函数进行计算,在输出中间结果后,会存放至本地磁盘之中,或者直接读取至内存之中;
步骤2.4)需要经历combiner过程:在上述过程中,会有很多中间结果产出,通常不能将其直接交由reducetask进行处理,否则将会大大增加网络拥塞的概率。而通过combiner过程,能够统一合并这些结果,便于后续进行集中处理;
步骤2.5)shufflfle过程:该过程需要将数据从maptask输出至reducetask;
步骤2.6)reduce过程:该过程会将maptask的数据输送至reduce函数,在完成数据归并后可获得最终结果,待整个job执行完毕后,将会把获得结果存储至hdfs之中。
进一步,步骤3)的具体过程为:
步骤3.1:定义并初始化变量:定义并初始化变量参数m,n,s,u:m←文件个数,n←节点个数,s←[s1,s2,…,sm],u←[u1,u2,…,un];
步骤3.2:计算任务与文件对应关系矩阵deci;定义任务序号变量:taskno←1;计算理论上每个节点的平均任务量:av_work←sum(deci(:,4))/n;
步骤3.3:为混合整数线性规划一般形式的参数进行值设置:
i)为目标函数变量系数矩阵f设置值;
ii)为相应等式约束的变量系数矩阵aeq设置值;
iii)为相应等式约束变量资源矩阵beq设置值;
iv)为相应不等式约束系数矩阵a设置值;
v)为相应不等式约束资源矩阵b设置值:b←u;
vi)为整数变量下标序号向量intcon设置值:intcon←1:length(deci(:,1))*n;
vii)为变量下限lb和上限ub设置值;
利用实现求解混合整数规划模型问题的分支定界法intlinprog
函数求最优解:[x,y]←intlinprog(f,intcon,a,b,aeq,beq,lb,ub);
步骤4:计算任务分配结果矩阵;
本发明的有益效果是:本发明能够实现机载嵌入式环境下的分布式数据分发功能,通过服务发现协议获取服务地址,基于数据发布和数据订阅,摆脱数据通信对网络结构和物理部署的依赖,具备更高的灵活性和可扩展性,为未来空地一体化信息网络提供了有效的数据通信手段,hadoop的计算机分布式存储与数据分发设计应用于移动设备之中,能够提升移动设备文件读取效率,避免出现网络堵塞问题,有效降低网络资源损耗。
具体实施方式
以下对发明的实施做出进一步说明。
一种分布式数据分发方法,包括如下步骤:
步骤1)建立分布式数据匹配的端点并建立通信连接;步骤2)建立hadoop的计算机分布式存储;步骤3)建立数据文件分发数学模型并进行了文件分发算法设计。
所述步骤1)的具体过程为:
步骤1.1,当有新的端点建立或有端点被删除时,更新功能被触发;
步骤1.2,收集当前内部包含的所有端点的特征信息,包含话题、类型构成唯一标志字符串,增加新增端点特征信息或去掉已删除端点特征信息;
步骤1.3,发送代表布隆过滤器位数组的小数值;
步骤1.4,利用逆向二进制算术编码进行解码,获得未经压缩的原布隆过滤器位数组;
步骤1.5,利用逆向布隆过滤器,将本地端点的特征信息与中端点的特征信息进行快速匹配;
步骤1.6,对于匹配的中端点信息,通知其中的端点向相应端点进一步发送确认信息;
步骤1.7,收到端点信息后,将自己的信息与收到的中端点的信息进行匹配,若发现完全匹配,则发送建立连接的消息;否则,不发送建立连接的消息。
步骤2)的具体过程为:
步骤2.1)进行数据模块的分割:由mapreduce负责数据处理,这些数据全部来源于hdfs,在进行计算前,需要先做好数据的分块;
步骤2.2)进行任务创建:需要先进行job提交,在jobtracker获取到相应提交数据后,便会为本次任务进行maptask与reducetask的分配,并提交至tasktracker;
步骤2.3)经历map过程:在每个datanode中,都运行有一个tasktracker,其为负责进行map任务的执行;在具体执行过程中,maptask会先进行数据的读取,然后借助map函数进行计算,在输出中间结果后,会存放至本地磁盘之中,或者直接读取至内存之中;
步骤2.4)需要经历combiner过程:在上述过程中,会有很多中间结果产出,通常不能将其直接交由reducetask进行处理,否则将会大大增加网络拥塞的概率。而通过combiner过程,能够统一合并这些结果,便于后续进行集中处理;
步骤2.5)shufflfle过程:该过程需要将数据从maptask输出至reduce
task;
步骤2.6)reduce过程:该过程会将maptask的数据输送至reduce函数,在完成数据归并后可获得最终结果,待整个job执行完毕后,将会把获得结果存储至hdfs之中。
步骤3)的具体过程为:
步骤3.1:定义并初始化变量:定义并初始化变量参数m,n,s,u:m←文件个数,n←节点个数,s←[s1,s2,…,sm],u←[u1,u2,…,un];
步骤3.2:计算任务与文件对应关系矩阵deci;定义任务序号变量:taskno←1;计算理论上每个节点的平均任务量:av_work←sum(deci(:,4))/n;
步骤3.3:为混合整数线性规划一般形式的参数进行值设置:
i)为目标函数变量系数矩阵f设置值;
ii)为相应等式约束的变量系数矩阵aeq设置值;
iii)为相应等式约束变量资源矩阵beq设置值;
iv)为相应不等式约束系数矩阵a设置值;
v)为相应不等式约束资源矩阵b设置值:b←u;
vi)为整数变量下标序号向量intcon设置值:intcon←1:length(deci(:,1))*n;
vii)为变量下限lb和上限ub设置值;
利用实现求解混合整数规划模型问题的分支定界法intlinprog函数求最优解:[x,y]←intlinprog(f,intcon,a,b,aeq,beq,lb,ub);
步骤4:计算任务分配结果矩阵;
定义临时矩阵变量sum,sum←n行1列元素全为0的矩阵;
fori=1tolength(deci(:,1))doforj=i 1tondo
ifx((i-1)*n j)>0.99999thensum(j)←sum(j) 1;
result(j,sum(j))←i;
endif
endfor
endfor。
本发明说明书中未作详细描述的内容属于本领域专业技术人员公知的现有
技术。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
1.一种分布式数据分发方法,其特征在于,包括如下步骤:
步骤1)建立分布式数据匹配的端点并建立通信连接;步骤2)建立hadoop的计算机分布式存储;步骤3)建立数据文件分发数学模型并进行了文件分发算法。
2.根据权利要求1所述的一种分布式数据分发方法,其特征在于,所述步骤1)的具体过程为:
步骤1.1,当有新的端点建立或有端点被删除时,更新功能被触发;
步骤1.2,收集当前内部包含的所有端点的特征信息,包含话题、类型构成唯一标志字符串,增加新增端点特征信息或去掉已删除端点特征信息;
步骤1.3,发送代表布隆过滤器位数组的小数值;
步骤1.4,利用逆向二进制算术编码进行解码,获得未经压缩的原布隆过滤器位数组;
步骤1.5,利用逆向布隆过滤器,将本地端点的特征信息与中端点的特征信息进行快速匹配;
步骤1.6,对于匹配的中端点信息,通知其中的端点向相应端点进一步发送确认信息;
步骤1.7,收到端点信息后,将自己的信息与收到的中端点的信息进行匹配,若发现完全匹配,则发送建立连接的消息;否则,不发送建立连接的消息。
3.根据权利要求1所述的一种分布式数据分发方法,其特征在于,步骤2)的具体过程为:
步骤2.1)进行数据模块的分割:由mapreduce负责数据处理,这些数据全部来源于hdfs,在进行计算前,需要先做好数据的分块;
步骤2.2)进行任务创建:需要先进行job提交,在jobtracker获取到相应提交数据后,便会为本次任务进行maptask与reducetask的分配,并提交至tasktracker;
步骤2.3)经历map过程:在每个datanode中,都运行有一个tasktracker,其为负责进行map任务的执行;在具体执行过程中,maptask会先进行数据的读取,然后借助map函数进行计算,在输出中间结果后,会存放至本地磁盘之中,或者直接读取至内存之中;
步骤2.4)需要经历combiner过程:在上述过程中,会有很多中间结果产出,通常不能将其直接交由reducetask进行处理,否则将会大大增加网络拥塞的概率。而通过combiner过程,能够统一合并这些结果,便于后续进行集中处理;
步骤2.5)shufflfle过程:该过程需要将数据从maptask输出至reducetask;
步骤2.6)reduce过程:该过程会将maptask的数据输送至reduce函数,在完成数据归并后可获得最终结果,待整个job执行完毕后,将会把获得结果存储至hdfs之中。
4.根据权利要求1所述的一种分布式数据分发方法,其特征在于,步骤3)的具体过程为:
步骤3.1:定义并初始化变量:定义并初始化变量参数m,n,s,u:m←文件个数,n←节点个数,s←[s1,s2,…,sm],u←[u1,u2,…,un];
步骤3.2:计算任务与文件对应关系矩阵deci;定义任务序号变量:taskno←1;计算理论上每个节点的平均任务量:av_work←sum(deci(:,4))/n;
步骤3.3:为混合整数线性规划一般形式的参数进行值设置:
i)为目标函数变量系数矩阵f设置值;
ii)为相应等式约束的变量系数矩阵aeq设置值;
iii)为相应等式约束变量资源矩阵beq设置值;
iv)为相应不等式约束系数矩阵a设置值;
v)为相应不等式约束资源矩阵b设置值:b←u;
vi)为整数变量下标序号向量intcon设置值:intcon←1:length(deci(:,1))*n;
vii)为变量下限lb和上限ub设置值;
利用实现求解混合整数规划模型问题的分支定界法intlinprog函数求最优解:[x,y]←intlinprog(f,intcon,a,b,aeq,beq,lb,ub);
步骤4:计算任务分配结果矩阵。
技术总结