Host OS: 10.120.30.79,创建容器,安装Java。
[root@plm-deploy soft]# more /etc/system-releaseCentOS Linux release 7.2.1511 (Core)[root@plm-deploy soft]# docker run -t -i centos /bin/bash[root@plm-deploy soft]# docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES2764044fdc72 centos "/bin/bash" 20 hours ago Up 20 hours grave_almeida[root@plm-deploy soft]# docker cp jdk-7u79-linux-x64.rpm 2764044fdc72:/root/soft/jdk-7u79-linux-x64.r
前期所需的软件:
[root@2764044fdc72 soft]# rpm -ivh jdk-7u79-linux-x64.rpm[root@2764044fdc72 soft]# yum install -y openssh-clients
确保rsync已经安装,如果没有则安装之。
确保ssh localhost成功。
运行/usr/sbin/sshd -D
[root@2764044fdc72 etc]# /usr/sbin/sshd -DCould not load host key: /etc/ssh/ssh_host_rsa_keyCould not load host key: /etc/ssh/ssh_host_ecdsa_keyCould not load host key: /etc/ssh/ssh_host_ed25519_key
解决方案:
ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_keyssh-keygen -t ecdsa -b 521 -f /etc/ssh/ssh_host_ecdsa_keyssh-keygen -t ed25519 -b 2048 -f /etc/ssh/ssh_host_ed25519_key
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys$ chmod 0600 ~/.ssh/authorized_keys
解压hadoop文件,修改配置vi /opt/hadoop/etc/hadoop/hadoop-env.sh
修改其中的export JAVA_HOME=/usr/java/jdk1.7.0_79
修改hadoop配置:
etc/hadoop/core-site.xml:
fs.defaultFS hdfs://localhost:9000
etc/hadoop/hdfs-site.xml:
dfs.replication 1
$ bin/hdfs namenode -format$ sbin/start-dfs.sh
到此hadoop的HDFS已经完成。但是由于之前没有做端口映射,所以容器中的HDFS服务无法通过50070端口访问。
这时可以保存容器到镜像,然后基于此镜像创建新的容器,同时打开50070端口。
docker commit 2764044fdc72 standalone_hadoop:1.0docker run -t -i -p 50070:50070 standalone_hadoop:1.0 /bin/bash
进入新的容器,启动sshd,启动HDFS,然后就可以通过http方式访问HDFS。