Docker之路(一)Hadoop集群安装

Docker安装Hadoop集群

一、单机hadoop
首先进入我们已有容器:(docker exec -it NAMES(名字) COMMAND ‘/bin/bash’)
mkdir /usr/hadoop
Cd /usr/hadoop
解压上传来的hadoop,或wget获取http://mirrors.sonic.net/apache/hadoop/common/hadoop-2.8.3/hadoop-2.8.3.tar.gz
命令:tar xvzf 压缩包(小编一般解压完直接删除压缩包)

准备工作已完成,开始搭建hadoop

编辑 .bashrc
Vi ~/.bashrc
加入如下内容:
1.# Set Hadoop-related environment variables
export HADOOP_HOME=/usr/local/hadoop
 
2.# Add Hadoop bin/ directory to PATH
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
刷新一下:
Source ~/.bashrc

此处有坑:
找不到which的话执行:yum install which

创建三个文件:
先进cd /usr/local/hadoop/hadoop-2.7.2
mkdir tmp作为Hadoop的临时目录
mkdir datanode作为NameNode的存放目录
mkdir namenode作为DataNode的存放目录

配置文件:cd /usr/local/hadoop/hadoop-2.7.2/etc/hadoop

三个文件:
1.core-site.xml配置:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hadoop-2.7.2/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
<final>true</final>
</configuration>

2.hdfs-site.xml配置:(一些配置为了集群而准备)
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/hadoop-2.7.2/namenode</value>
<final>true</final>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/hadoop-2.7.2/datanode</value>
<final>true</final>
</property>
</configuration>
3.mapred-site.xml配置:(有个mapred-site.xml.template文件,更改为mapred-site.xml)
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
</configuration>


下面就指定JAVA_HOME环境变量:
使用命令vi hadoop-env.sh,添加如下配置:

The java implementation to use.

            export JAVA_HOME=/usr/java/jdk1.8.0_141

接着格式化 namenode
执行命令:hadoop namenode -format
此刻hadoop配置就完成了。

二、 安装SSH:
使用yum: yum install passwd openssl openssh-server -y
因为我们是docker操作,他并不会自动启动,所以我们去给他加到。Bashrc中

执行命令添加如下内容:Vi ~/.bashrc
#autorun
/usr/sbin/sshd
执行命令生成秘钥公钥:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_dsa
cd ~/.ssh/
cat id_dsa.pub >> authorized_keys

chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys

补:
无密登录问题:bash: ssh: command not found
解决办法:yum -y install openssh-clients

到此位置我们保存容器为新的镜像即可:
docker commit -m "hadoop install" 61c9cf8da12f linux:hadoop
此时我们已经装好了一个单机版的hadoop镜像

检测ssh
命令1./usr/sbin/sshd
命令2.ssh
Docker之路(一)Hadoop集群安装

三、 docker hadoop集群

Docker之路(一)Hadoop集群安装

切记: hostname、hosts配置在容器内修改了,只能在本次容器生命周期内有效。如果容器退出了,重新启动,这两个配置将被还原。且这两个配置无法通过commit命令写入镜像。

三个容器启动后分别配置hosts
vi /etc/hosts 注意修改ip地址:

172.17.0.2      master
172.17.0.3      slave1
172.17.0.4      slave2

启动sshd  /usr/sbin/sshd

配置slaves:vi /usr/local/hadoop/hadoop-2.7.2/etc/hadoop/slaves
将:master
slave1
slave2
添加进去之后:

分别启动Hadoop:(进入/usr/local/hadoop/hadoop-2.7.2/sbin)
            start-all.sh
分别查看--》节点上执行jps命令

Docker之路(一)Hadoop集群安装

master如下:
Docker之路(一)Hadoop集群安装

slave1如下:

Docker之路(一)Hadoop集群安装

slave2如下:

Docker之路(一)Hadoop集群安装

还可以通过Web页面看到查看DataNode和NameNode的状态:http://IP:50070/

大功告成,docker—hadoop集群搭建完毕。

猜你喜欢

转载自blog.51cto.com/14224330/2357688