H2O框架简介
H2O是开源的,分布式的,基于内存的,可扩展的机器学习和预测分析框架,适合在企业环境中构建大规模机器学习模型。
H2O核心代码使用Java编写,数据和模型通过分布式 Key/Value 存储在各个集群节点的内存中。H2O的算法使用Map/Reduce框架实现,并使用了Java Fork/Join框架来实现多线程。
H2O目前支持的机器学习算法有DRF,GBM,GLM,GLRM,Kmeans,NB,PCA,Deep Learning,所以目前来看支持的模型还不是很多。
H2O软件栈:
架构图最上层表示与H2O通信的Rest API客户端,它们之间通过socket连接。最下层表示可以运行JVM 进程的基础架构。中间灰色部分是用户的一些算法。
H2O读取数据
1.R用户调用importFile()函数
2.R客户端告诉集群要读数据
3.以分布式H2O Frame的格式从HDFS返回数据
CPU管理
job:创建一个任务就是一个job
MRTask: H2O基于内存的Map/Reduce任务,与Hadoop Map/Reduce任务稍有不同
Fork/Join:task执行框架
Memory管理
Fluid Vector Frame:暴露给用户的基本数据单元
Distributed K/V store:在集群中通过此种方式存储
Non-blocking Hash Map:在K/V实现中使用
转载自 http://blog.csdn.net/yaphat/article/details/52891133