1. 程式人生 > >利用 Docker 搭建單機的 Cloudera CDH 以及使用實踐

利用 Docker 搭建單機的 Cloudera CDH 以及使用實踐

想用 CDH 大禮包,於是先在 Mac 上和 Centos7.3 上分別搞個了單機的測試用。其實操作的流和使用到的命令差不多就一併說了:

首先前往官方下載包:

https://www.cloudera.com/downloads/quickstart_vms/5-13.html

如果使用 mac 並且安裝 docker。 我們可以很輕鬆的使用 kitematic 來獲取最新版本的 cloudera docker 映象。只需要搜 cloudera/quickstar 即可這是地址:

https://hub.docker.com/r/cloudera/quickstart/

 

當我們下載好映象之後就可以愉快的將進行載入起來。macos 基本是全程無腦,linux 稍微麻煩一點使用

docker import cloudera-quickstart-vm-5.13.0-0-beta-docker.tar

將映象 import 進來。

然後使用命令啟動就可以了。

Cloudera 的 docker 版本分成兩部分啟動。一方面是大禮包的啟動 /usr/bin/docker-quickstart,一方面是 Cloudera manager 本身的啟動 /home/cloudera/cloudera-manager

這裡我們使用命令

docker run --name cdh --hostname=quickstart.cloudera --privileged=true -t -i -p 8020
:8020 -p 8022:8022 -p 7180:7180 -p 21050:21050 -p 50070:50070 -p 50075:50075 -p 50010:50010 -p 50020:50020 -p 8890:8890 -p 60010:60010 -p 10002:10002 -p 25010:25010 -p 25020:25020 -p 18088:18088 -p 8088:8088 -p 19888:19888 -p 7187:7187 -p 11000:11000 cloudera/quickstart /bin/bash -c '/usr/bin/docker-quickstart && /home/cloudera/cloudera-manager --express && service ntpd start
'

直接啟動兩個程式。這裡注意引數都可以從下面 refrence 查詢到大概是什麼意思,合理之所以要寫這麼多埠對映也是為了方便我們外面的機器可以方面的訪問 docker 內部的這些埠,訪問這些服務。 Cloudera 本身的 manager 是 7180 埠。當這些啟動起來之後就可以訪問目標機器 ip 的 7180 埠訪問 Cloudera manager 了。

 

 

上圖就是一個 dashbord 的樣子。另外在 linux 機器有一個地方需要注意的是,可能你的 docker 用上面命令起起來之後,docker 內的例項沒有辦法訪問外網,這裡我們配置一下 docker 建立容器時候的引數增加 -net host 即可。也可以在宿主機器上在 /etc/default/docker 檔案。並且配置上 DOCKER_OPTS="--dns host_ip" 即可。

 

從上圖我們還可以注意到另外一個問題,除了主機和 manager 都沒有啟動。在 Cloudera 大禮包中,只有 hue 和 manager 本身是什麼服務都不依賴的可以在任何時候選擇啟動和關閉。其他的應用多多少少存在著一些啟動順序上的依賴這個要注意。 

 

Reference:

https://www.cloudera.com/documentation/enterprise/5-15-x/topics/quickstart_docker_container.html  ---docker 安裝啟動文件

https://www.cloudera.com/documentation/enterprise/5-15-x/topics/cm_mc_start_stop_service.html#cmug_topic_5_6  ---啟動 hdfs 服務教程