在上篇文章中你已经看到了在你的devbox创建一个单点Hadoop 集群是多么简单。现在我们提高门槛,在Docker上创建一个多点hadoop集群。
在上篇文章中你现已看到了在你的devbox创立一个单点Hadoop 集群是多么简略。
现在咱们进步门槛,在Docker上创立一个多点Hadoop集群。在开端前,保证你有***的Ambari镜像:
- dockerpullsequenceiq/ambari:latest
一行指令
一旦你得到了***的镜像,你就能够发动Docker容器。咱们现已创立了几个shell 函数来帮你输入Docker指令,然后防止输入像Docker run [options] image [command]这样冗长的指令。
有了这些功用,创立3个节点的hadoop簇,只需求下面一行代码搞定:
- curl-Lo.ambj.mp/docker-ambari&&..amb&&amb-deploy-cluster
默许参数值都是能够根据需求更改的,像是blueprint,簇巨细,等等… 在shellj.mp/docker-ambari功用函数的头文件有参数列表.
它是按照下面过程来完成的:
-
在Docker (后台运转) 容器的看护进程上运转sambari-server start (记住还有 anambari-agent start)
-
运转sn-1 看护进程容器并用ambari-agent start连接到服务器
-
运转AmbariShell 以及其终端控制台 (监控子进程)
-
AmbariShell 会把内置的多节点blueprint发送至/api/v1/blueprintsREST API
-
AmbariShell 按照blueprint的设置主动分配宿主信息
-
经过发送至/api/v1/clustersREST API的内容创立簇
-
自界说
假如你有自己界说好的脚本,能够放在 gist然后运转AmbariShell. 先发动 AmbariShell:
- amb-start-cluster2
- amb-shell
AmbariShell发动的条件:
-
Ambari REST API 将协助你树立多个hadoop端.
- hostlist
- blueprintadd--urlhttps://gist.githubusercontent.com/lalyos/xxx/raw/custum-blueprint.json
- clusterbuild--blueprintcustom-blueprint
- clusterassign--hostGrouphost_group_1--hostamb0.mycorp.kom
- clusterassign--hostGrouphost_group_2--hostamb1.mycorp.kom
- clusterassign--hostGrouphost_group_2--hostamb1.mycorp.kom
- clustercreate
AmbariShell 的 hint指令能协助开发人员完成主动补全等功用.
主动补全包含:
-
补全指令行 (例如,没有这个协助下 cluster指令是不可用的)
-
增加需求的参数
-
增加备选参数: --后加上<TAB>
-
增加变参,像是参数名,宿主名等等…
总结
基本上咱们开端运用Docker的时分就现已运用多端的hadoop功用了 – 笔记本上运转3到4簇面对的极限问题比Sandbox VM少得多.
咱们运用了docker的形式简化了hadoop的运用形式– 能够在LinkedIn找到咱们关于Cloudbreak的***发展– 开源云端的Hadoop as a Service API运用并构建在 docker上.
期望本文能帮你简化你的开发流程 – 如有什么关于docker上运用hadoop问题,欢迎交流。
英文原文:Multi-node Hadoop cluster on Docker
译文出自:http://www.oschina.net/translate/multinode-hadoop-cluster-on-docker