java解决分布式存储计算
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java解决分布式存储计算相关的知识,希望对你有一定的参考价值。
数据太大一台服务器内存不够,如何将多数据分段保存在不同的服务器上,这个数据的内存是自己申请的。比如如果传过来的是8,那就要申请2的8次方个元素的数组,如何将这个数组分段在不同的服务器上申请?然后分布式计算?不用spark redis
参考技术A 一、高性能计算Hadoop:Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
Spark:Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。
CUDA:CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员现在可以使用C语言来为CUDA架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA的处理器上以超高性能运行。CUDA3.0已经开始支持C++和FORTRAN。
二、Hadoop生态系统
(1)海量数据怎么存,当然是用分布式文件系统——HDFS。
(2)数据怎么用呢,分析、处理MapReduce框架,让你通过编写代码来实现对大数据的分析工作。
(3)非结构化数据(日志)收集处理——Fuse、WebDAV、Chukwa、Flume和Scribe。
(4)数据导入HDFS中,RDBMS也可以加入HDFS的狂欢了——HIHO、Sqoop。
(5)MaoReduce太麻烦,用熟悉的方式操作Hadoop里的数据——Pig、Hive、Jaql。
(6)让你的数据可见——Drilldown、Intellicus。
(7)用高级语言管理你的任务流——Oozie、Cascading。
(8)Hadoop自己的监控管理工具——Hue、Karmasphere、Eclipse Plugin、Cacti、Ganglia。
(9)数据序列化处理与任务调度——Avro、ZooKeeper。
(10)更多构建在Hadoop上层的服务——Mahout、Elastic Map Reduce。
(11)OLTP存储系统——HBase。
(12)基于Hadoop的实时分析——Impala。 参考技术B 那就用hadoop,自己实现数据的拼接过于复杂,而且还要是计算过后的,大数据的分布式计算最好是借助工具。追问
所有这些大数据分布式框架都不能用
参考技术C一般来说,内存上的数据不共享,提供两个办法:
大数据 split 到文件,多服务器处理。
增加虚拟内存,RMI多台服务器。
能否通过zookeeper和activemq来实现呢,比如上述的8个长度的数组,有一个zookeeper集群,通过activemq发送消息到这个集群的每个节点,然后收到消息后,这个节点根据消息内容来申请内存呢?
参考技术D 搞个简单的rpc调用追问能否发一份demo啊
hadoop介绍
hadoop:是java写的一个框架,可以理解成java写的一个应用,他主要是用来分布式存储和分布式计算。
1 为什么需要分布式存储,因为单台设备不够存储,实现办法的hadoop分布式是文件系统hdfs
2 分布式计算:因为数据量很大、一台机器硬件资料有限,实现办法是yarn和MapReduce、yarn是资料的管理系统,MapReduce是把计算分发到yarn是进行处理,为什么需要yarn是因为在计算过程中会出现资源的争夺等等,需要yarn统一管理,MapReduce分两个过程,map和reduce。
hadoop的基本组件
1 通用组件、比如rpc调用
2 HDFS分布式文件系统、用来分布式存储。
3 yarn分布式资源管理
4 MapReduce分布式批处理
hadoop生态游很多组件
hive
HBASE
spark
等等
以上是关于java解决分布式存储计算的主要内容,如果未能解决你的问题,请参考以下文章
头歌Educoder云计算与大数据——实验五 Java API分布式存储
滴滴出行-杭州职位:实时计算工程师/golang开发专家(分布式存储)/前端Leader/高级java专家/数据仓库专家