在Azure中快速搭建Deep Learning平台

来源:互联网 发布:怎么软件赚钱最快 编辑:程序博客网 时间:2024/06/08 09:57

         近在尝试kaggle中machine learning的竞赛,为了提高成绩强上了deep learning的算法。然而,deep learning耗资源,速度慢,不用个hadoop,单机一跑就是好几天,于是摸索着想在azure上快速搭建一个能跑deep learning的hadoop环境。 H2o(http://0xdata.com/product/ )是我在R上首先尝试的deep learning包,查了文档发现它其实最开始是作为hadoop应用被开发出来的,之后再被推广到R,Python等语言。作为一个资深的懒人,通过一番google找到了如下最省力的搭建方法:

  1. 使用Azure搭建hadoop VM (作为微软员工本来就开通了免费Azure账号微笑
  2. 直接在Azure Marketplace上加载Hortonworks Hadoop Sandbox (比起在Linux上装Hadoop不知道方便多少个指数倍)
  3. 在Hortonworks Hadoop Sandbox 上安装开源H2o deep learning应用平台, 直接包含主流deep learning 算法 (直接上 torch 的大神小女子接受各位的鄙视)
  4. 熟读H2o 教程,导入数据调整参数跑模型!
然而,看似如此简单易懂的几步,安装过程不需要任何编程技能,却着实让楼主好一顿倒腾,期间遇到了各种坑,不胜唏嘘, 从头说起。

第一步:开通Azure账号

八仙过海,各显神通,请保证Azure账号里长期余额超过1000大洋,否则分分钟让你停机!(Azure上VM按分钟收费哦亲!)


第二步:找到Azure Marketplace 安装 Hortonworks Sandbox

贴主使用的是内部通过msdn开通的Azure账号,msdn转到Azure的默认界面是这个manage的界面:

于是,贴主在marketplace里一顿狂找,以hor开头的应用一个也没,这让楼主好生困惑。后来登陆了Azure的portal界面,按照Hortonworks 官方教程(http://hortonworks.com/blog/hortonworks-sandbox-azure/)所述,终于拥有了一台Azure上的Hadoop VM。【坑一,贴主也不明白为什么两个界面进去的marketplace 应用会不一样】


官方教程中要注意的一步就是,记住你的密码和用户名!创建Hadoop Instance时使用的用户名只能是Azure的用户,相当于除了hadoop的一些保留用户名例如root/hue外, Azure在创建Hadoop Instance的同时,也会创建一个新的用户。

第三步: SSH上Azure Hadoop Sandbox 并安装H2o

至此,终于开始了hadoop的一些应用,那么 Azure上Hadoop Sandbox创建之后的IP地址和端口号在哪里呢?悲催的贴主直奔了IP Address  那个选项,不管virtual还是private试了一串都没用。。。然后,贴主看到了Properties, 里面妥妥的写着ssh几个大字,哭晕在厕所!大哭


另, 贴主用的putty做windows下ssh工具,Linux大神可以忽略这句话。

于是,接下来,按照Hortonworks官方视频教程 (http://hortonworks.com/hadoop-tutorial/predictive-analytics-h2o-hortonworks-data-platform/ )和H2o官方文档 (http://h2o-release.s3.amazonaws.com/h2o/master/3053/index.html ),在hadoop sandbox上安装H2o。【坑二】需要注意的是,Hortonworks官方视频教程使用的是上一版的H2o安装文件,新版的hdp jar需要分开安装, 简单来说就是如下几句命令而已 (以hdp2.2为例):

wget http://h2o-release.s3.amazonaws.com/h2o/master/3053/h2o-3.1.0.3053-hdp2.2.zip
unzip h2o-3.1.0.3053-hdp2.2.zip
cd h2o-3.1.0.3053-hdp2.2
hadoop jar h2odriver.jar -nodes 1 -mapperXmx 1g  -output hdfsOutputtest

一切顺利的话,在putty上你就看到了黑框框显示有blocking,表示h2o  已经launch, 注意,h2o默认的端口是54321,一般新建的hadoop这个端口都是空着的:


第四步:登陆H2o Flow 上传数据

【坑四】史上最坑的一步就此开始。按照教程,此时贴主应该可以在浏览器中输入黑框框提示的IP地址+端口号:10.0.0.4:54321。然并卵,不管贴主输 10.0.0.4:54321, 还是Domain Name: 54321, 都报网页不存在。贴主Linux很菜,找了hadoop小伙伴帮忙,小伙伴在hadoop中运行了这个命令

wget http://localhost:54321

发现果然有一个index.html被保存到了hadoop!这直接说明54321这个端口,内部访问已经开通,只是目前还不支持外网访问。

根据贴主多年微软产品经验,修改这种端口问题,大微软从不需要你用code,界面修改是王道。回到Azure portal,赤果果有一个Endpoints 选项,打开一看发现还能新建,那么好,贴主顺理在portal上新建了一个54321的端口。

终于,H2o Flow 的首页可以登陆了,当然地址还是上面提到的10.0.0.4:54321或者Domain Name: 54321,开始享受云上的deep learning平台!【坑五】注意请使用Chrome打开H2o Flow, 用IE的同学你们会死的很惨,基本的运算功能一跑就出错,贴主在IE上生生的浪费了一个下午大哭

具体H2o Flow怎么用那是后话,和本文无关,有兴致了再写。

0 0
原创粉丝点击