使用Docker搭建部署Hadoop分布式集群
在網上找了很長時間都沒有找到使用docker搭建hadoop分布式集群的文檔,沒辦法,只能自己寫一個了。
一:環境準備:
1:首先要有一個Centos7操作系統,可以在虛擬機中安裝。
2:在centos7中安裝docker,docker的版本為1.8.2
安裝步驟如下:
<1>安裝制定版本的docker
yum install -y docker-1.8.2-10.el7.centos
<2>安裝的時候可能會報錯,需要刪除這個依賴

rpm -e lvm2-7:2.02.105-14.el7.x86_64
啟動docker
service docker start
驗證安裝結果:
<3>啟動之后執行docker info會看到下面有兩行警告信息

需要關閉防火墻并重啟系統
systemctl stop firewalldsystemctl disable firewalld#注意:執行完上面的命令之后需要重啟系統reboot -h(重啟系統)
<4>運行容器可能會報錯

需要關閉selinux
解決方法:
1:setenforce 0(立刻生效,不需要重啟操作系統)
2:修改/etc/selinux/config文件中的SELINUX=disabled ,然后重啟系統生效
建議兩個步驟都執行,這樣可以確保系統重啟之后selinux也是關閉狀態
3:需要先構建一個hadoop的基礎鏡像,使用dockerfile文件方式進行構建。
先構建一個具備ssh功能的鏡像,方便后期使用。(但是這樣對于容器的安全性會有影響)
注意:這個鏡像中的root用戶的密碼是root
Mkdir centos-ssh-root Cd centos-ssh-root Vi Dockerfile
# 選擇一個已有的os鏡像作為基礎 FROM centos # 鏡像的作者 MAINTAINER crxy # 安裝openssh-server和sudo軟件包,并且將sshd的UsePAM參數設置成no RUN yum install -y openssh-server sudo RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_config #安裝openssh-clientsRUN yum install -y openssh-clients# 添加測試用戶root,密碼root,并且將此用戶添加到sudoers里 RUN echo "root:root" | chpasswd RUN echo "root ALL=(ALL) ALL" >> /etc/sudoers # 下面這兩句比較特殊,在centos6上必須要有,否則創建出來的容器sshd不能登錄 RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key # 啟動sshd服務并且暴露22端口 RUN mkdir /var/run/sshd EXPOSE 22 CMD ["/usr/sbin/sshd", "-D"]
構建命令:
docker build -t=”crxy/centos-ssh-root” .
查詢剛才構建成功的鏡像
4:基于這個鏡像再構建一個帶有jdk的鏡像
注意:jdk使用的是1.7版本的Mkdir centos-ssh-root-jdk Cd centos-ssh-root-jdk Cp ../jdk-7u75-Linux-x64.tar.gz . Vi Dockerfile
新聞熱點
疑難解答