Docker安裝Hadoop
一、概述
形成了安裝有vim、jdk、ssh的centos鏡像,現在我們在這個的基礎上繼續搭建haoop。
在正式開始前,了解一些docker容器的操作命令
docker ps:查看活動的容器
docker ps -a:查看所有的容器(包括終止狀態的)
docker images:查看鏡像
docker run:基於鏡像新建一個容器
docker container start 容器id:啟動已經終止的容器,但不會進入容器,容器在後臺執行
docker container stop 容器id:終止容器
docker container rm 容器id:刪除終止狀態的容器
docker image rm 鏡像id:刪除鏡像
進入容器有兩個命令:attach和exec
docker attach 容器id:進入容器,使用exit退出時,容器會終止
docker exec -it 容器id bash:進入容器,使用exit退出時,容器不會終止(推薦)
二、安裝Hadoop
以之前保存的centos_basic 鏡像新建一個名為hadoop1的容器,容器中是centos系統,主機名為 hadoop1。
[docker@bigdata ~]$ docker run -it -v /home/docker/build:/root/build --privileged -h hadoop1 --name hadoop1 centos_basic /bin/bash
打開一個新的終端輸入命令docker ps查看開啟的名為hadoop1的容器
開啟系統之後,我們把下載下來的Hadoop安裝文件放到共享目錄/home/hadoop/build下面,然後在Docker內部centos系統的/root/build目錄即可獲取到Hadoop安裝文件;在Docker內部的CentOS系統安裝Hadoop和本地安裝一樣
放好Hadoop的安裝文件後,進入Docker內部centos系統的/root/build目錄,解壓壓縮包
[root@hadoop1 build]# tar -zxvf hadoop-2.7.5.tar.gz -C /root/apps/
具體的安裝可以參考http://www.cnblogs.com/qingyunzong/p/8634335.html
三、保存鏡像
基於已有的docker容器,做一新的dokcer image.
$ docker commit <container_id> <image_name>
另開一個窗口
舉例:
四、搭建基於docker的hadoop集群
開啟三個新的終端。然後基於centos/zk_hadoop鏡像,創建三個容器,容器名分別為spark1、spark2和spark3
[docker@bigdata ~]$ docker run -it -v /home/docker/build:/root/build --privileged -h spark1 --name spark1 centos/zk_hadoop /bin/bash
[docker@bigdata ~]$ docker run -it -v /home/docker/build:/root/build --privileged -h spark1 --name spark1 centos/zk_hadoop /bin/bash
[docker@bigdata ~]$ docker run -it -v /home/docker/build:/root/build --privileged -h spark3 --name spark3 centos/zk_hadoop /bin/bash
在每個容器主機中開啟ssh服務
用ssh localhost 查看ssh服務是否開啟成功
/etc/hosts修改本機的ip和主機名信息
[root@spark3 ~]# vi /etc/hosts
可以用如下命令來檢測下是否spark1是否可以連上spark2和spark3
修改zookeeper的變化spark2和spark3修改為2和3
[root@spark1 ~]# vi data/zkdata/myid
創建hadoop的數據目錄
[root@spark3 ~]# mkdir -p /root/data/hadoopdata/dfs/name [root@spark3 ~]# mkdir -p /root/data/hadoopdata/dfs/data
啟動zookeeper
在你配置的各個journalnode節點啟動該進程
格式化namenode
[root@spark1 ~]# hadoop namenode -format
Docker安裝Hadoop