在Hadoop 2.0上实现深度学习

如何在Hadoop 2.0上实现深度学习? - 文章 - 伯乐在线 http://blog.jobbole.com/84619/

//
鉴于深度学习天生就继承了迭代性,MapReduce模式可能不太适合运行这些算法。然而Hadoop 2.0 和 基于Yarn的资源管理出现后,我们就可以写出迭代式应用,因为我们可以很好的控制应用占用的资源。我们使用了IterativeReduce, 它是一个在Hadoop YARN里写迭代式算法的一个简单抽象,然后我们就能把它部署到某个运行Hadoop 2.4.1的Paypal集群里。

//
特别要提到的是,客户端程序和ResourceManager之间通信采用了YarnClient API。还采用了AMRMClient和AMNMClient在ApplicationMaster和ResourceManager以及NodeManager之间通信。
首先我们使用YarnClient API将程序提交给YARN resource manager



提交之后,YARN resource manager 运行 application master,它将根据需要负责分配和释放工作节点容器。 application master采用AMRMClient与resource manager进行通信。



application master 采用 NMClient API在容器中运行来自application master的命令。

application master运行工作节点容器后,它会立即设置端口用来和工作节点通信。对于我们的深度学习来说,我们给原本的IterativeReduce接口添加了一些方法,用来实现参数初始化,逐层训练和微调信号。IterativeReduce采用Apache Avro IPC进行主节点-工作节点通信。

下面的代码段展示了主节点-工作节点在分布式训练中的一系列步骤。主节点把初始参数发送给工作节点,然后工作节点基于自己的数据对RBM进行训练。训练完成后,它将结果发送给主节点,主节点会将结果进行合并。整个迭代完成后,主节点开始back propagation(反向传播算法)微调阶段,标志着主节点流程结束。


//
Hadoop Yarn框架带有更精细的集群资源控制,它能为我们提供这种灵活性。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • YarnYarn产生背景:Yarn直接来自于MR1.0MR1.0 问题:采用的是master slave结构,ma...
    时待吾阅读 5,866评论 2 23
  • 先思考问题 我们处在一个大数据的时代已经是不争的事实,这主要表现在数据源多且大,如互联网数据,人们也认识到数据里往...
    墙角儿的花阅读 7,422评论 0 9
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 目录-[-]1 先决条件2 实验环境搭建 21 准备工...
    三三At你阅读 855评论 0 3
  • 1. spark三种分布式部署模式 Spark支持的主要的三种分布式部署方式分别是standalone、spark...
    ZPPenny阅读 10,179评论 0 5
  • 小豆豆今年七岁了,上小学一年级。她是个爱笑又有礼貌的小姑娘,小朋友们都喜欢和她一起玩。 不过呀,我悄悄的告诉你一个...
    梁涵阅读 458评论 0 1