首页 新闻 赞助 找找看

java实现将数据等分存储到不同的服务器

0
悬赏园豆:60 [待解决问题]

数据太大,需要将数据等分存储到不同服务器的内存中,比如一个数组长度为2的32次方,在一台机器上new不出来,将它分别在4个服务器上new长度为2的30次方的数组,这样该怎么实现?

问题补充:

可以用MPI这样类型的工具

xbj902的主页 xbj902 | 初学一级 | 园豆:44
提问于:2018-10-17 15:19
< >
分享
所有回答(2)
0

我很好奇啊,为什么要把这么大一个数组放了内存?有什么用处?
搜索一些分布式内存缓存第三方组件吧,应该有。如果自己实现的话比较费劲了,得考虑一致性、可用性问题。

会长 | 园豆:12401 (专家六级) | 2018-10-17 15:53

因为这些数据不是持久的,计算完毕后给出结果就不需要了,领导要求啊,自己实现,不用大数据框架和redis,老哥可有什么方法

支持(0) 反对(0) xbj902 | 园豆:44 (初学一级) | 2018-10-17 16:03

@xbj902: 什么计算,要全部读到内存里,不能读一点计算一点吗

支持(0) 反对(0) 会长 | 园豆:12401 (专家六级) | 2018-10-17 16:51

@会长: 因为数组中的元素之间有对应关系。而且是根据传过来的数来分段存储,然后并行计算。比如传过来的是3那数组长度就是2的3次方,这样完全就可以之间计算。如果是40,数组长度就是2的30次方。这样就要等分存到不同的服务器上了。方便把QQ给我,请教一下吗

支持(0) 反对(0) xbj902 | 园豆:44 (初学一级) | 2018-10-17 16:55
0

看到你一个问题提了两次,我回来修改一下:
参考hadoop的体系和原理:第一个:节点管理器,作用时监听节点,复查节点状态,统计节点数量,可以用socket实现;第二个:数据管理,作用校验数据,备份数据(参考HDFS的原理),将数据重新切分记录,比如第一台服务器分的是数组第i到第j个元素,需要记录下来(这里也可以类似HDFS管理节点和存储节点),但你的数据是在内存中;第三个:数据处理,参考(MapReduce工作原理)如果只是内存中的话,应该更简单一些,没有复杂的数据交互,就是当前服务器处理当前服务器的数据。

Mario0315 | 园豆:340 (菜鸟二级) | 2018-11-07 19:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册