在Docker上建立多節(jié)點(diǎn)的Hadoop集群
在上篇文章中你已經(jīng)看到了在你的devbox創(chuàng)建一個(gè)單點(diǎn)Hadoop 集群是多么簡單。
現(xiàn)在我們提高門檻,在Docker上創(chuàng)建一個(gè)多點(diǎn)hadoop集群。在開始前,確保你有***的Ambari鏡像:
- docker pull sequenceiq/ambari:latest
一行命令
一旦你得到了***的鏡像,你就可以啟動(dòng)Docker容器。我們已經(jīng)創(chuàng)建了幾個(gè)shell 函數(shù)來幫你輸入Docker命令,從而避免輸入像docker run [options] image [command]這樣冗長的命令。
有了這些功能,創(chuàng)建3個(gè)節(jié)點(diǎn)的hadoop簇,只需要下面一行代碼搞定:
- curl -Lo .amb j.mp/docker-ambari && . .amb && amb-deploy-cluster
默認(rèn)參數(shù)值都是可以根據(jù)需要更改的,像是blueprint,簇大小,等等 … 在shellj.mp/docker-ambari功能函數(shù)的頭文件有參數(shù)列表.
它是按照下面步驟來實(shí)現(xiàn)的:
-
在Docker (后臺運(yùn)行) 容器的守護(hù)進(jìn)程上運(yùn)行sambari-server start (記得還有 anambari-agent start)
-
運(yùn)行sn-1 守護(hù)進(jìn)程容器并用ambari-agent start連接到服務(wù)器
-
運(yùn)行AmbariShell 以及其終端控制臺 (監(jiān)控子進(jìn)程)
-
AmbariShell 會把內(nèi)置的多節(jié)點(diǎn)blueprint發(fā)送至 /api/v1/blueprintsREST API
-
AmbariShell 依照blueprint的設(shè)置自動(dòng)分配宿主信息
-
通過發(fā)送至/api/v1/clustersREST API的內(nèi)容創(chuàng)建簇
-
自定義
如果你有自己定義好的腳本,可以放在 gist然后運(yùn)行 AmbariShell. 先啟動(dòng) AmbariShell:
- amb-start-cluster 2
- amb-shell
AmbariShell啟動(dòng)的前提:
-
Ambari REST API 將幫助你建立多個(gè)hadoop端.
AmbariShell 的 hint命令能幫助開發(fā)人員實(shí)現(xiàn)自動(dòng)補(bǔ)全等功能.
自動(dòng)補(bǔ)全包括:
-
補(bǔ)全命令行 (例如,沒有這個(gè)幫助下 cluster命令是不可用的)
-
添加需要的參數(shù)
-
添加備選參數(shù): --后加上<TAB>
-
添加變參,像是參數(shù)名,宿主名等等 …
總結(jié)
基本上我們開始使用Docker的時(shí)候就已經(jīng)使用多端的hadoop功能了 – 筆記本上運(yùn)行3到4簇面臨的極限問題比 Sandbox VM少得多.
我們使用了docker的模式簡化了hadoop的使用模式 – 可以在 LinkedIn找到我們關(guān)于Cloudbreak的***進(jìn)展 – 開源云端的Hadoop as a Service API應(yīng)用并構(gòu)建在 docker上.
希望本文能幫你簡化你的開發(fā)流程 – 如有什么關(guān)于docker上使用hadoop問題,歡迎溝通。
英文原文:Multi-node Hadoop cluster on Docker
譯文出自:http://www.oschina.net/translate/multinode-hadoop-cluster-on-docker