在 Docker 上建立多節點的 Hadoop 集群

jopen 10年前發布 | 30K 次閱讀 Docker 虛擬化

在 Docker 上建立多節點的 Hadoop 集群

上篇文章中你已經看到了在你的devbox創建一個單點Hadoop 集群是多么簡單。

現在我們提高門檻,在Docker上創建一個多點hadoop集群。在開始前,確保你有最新的Ambari鏡像:

docker pull sequenceiq/ambari:latest

一行命令

一旦你得到了最新的鏡像,你就可以啟動Docker容器。我們已經創建了幾個shell 函數來幫你輸入Docker命令,從而避免輸入像docker run [options] image [command]這樣冗長的命令。

有了這些功能,創建3個節點的hadoop簇,只需要下面一行代碼搞定:

curl -Lo .amb j.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-cluster 2
amb-shell

AmbariShell啟動的前提:

  • Ambari REST API 將幫助你建立多個hadoop端.

host list
blueprint add --url https://gist.githubusercontent.com/lalyos/xxx/raw/custum-blueprint.json
cluster build --blueprint custom-blueprint
cluster assign --hostGroup host_group_1 --host amb0.mycorp.kom
cluster assign --hostGroup host_group_2 --host amb1.mycorp.kom
cluster assign --hostGroup host_group_2 --host amb1.mycorp.kom
cluster create

AmbariShell 的 hint命令能幫助開發人員實現自動補全等功能.

自動補全包括:

  • 補全命令行 (例如,沒有這個幫助下 cluster命令是不可用的)

  • 添加需要的參數

  • 添加備選參數: --后加上<TAB>

  • 添加變參,像是參數名,宿主名等等 …

總結

基本上我們開始使用Docker的時候就已經使用多端的hadoop功能了 – 筆記本上運行3到4簇面臨的極限問題比 Sandbox VM少得多.

我們使用了docker的模式簡化了hadoop的使用模式 – 可以在 LinkedIn找到我們關于Cloudbreak的最新進展 – 開源云端的Hadoop as a Service API應用并構建在 docker上.

希望本文能幫你簡化你的開發流程 – 如有什么關于docker上使用hadoop問題,歡迎溝通.

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!