Docker安装Hadoop集群?图啥呢?不图啥,就是图好玩,本篇博客主要是来教大家如何搭建一个Docker的Hadoop集群,不要问为什么我要做这么无聊的事情,答案你也许知道,就是喜欢折腾。
好了,不多说这些没有必要的东西了,首先,我们来安装Docker。
一.docker的安装
sudo yum install -y docker-io
sudo wget https://get.docker.com/builds/Linux/x86_64/docker-latest -O /usr/bin/docker
我们来启动我们的docker:
sudo service docker start
开机也自启动docker
sudo chkconfig docker on
二.拉取一个镜像
如果我们要6.5的CentOS 版本,额,不要问我问什么用6.5的,因为宿主机是内核6.5的...
sudo docker pull insaneworks/centos
然后我们就可以去吃个饭喝壶茶了......反正你就就慢慢等吧.....
.......
ok,饭吃完了,我们来产生一个容器吧.
sudo docker run -it insaneworks/centos /bin/bash
ctrl+p ctrl+q可以帮助我们从容器返回宿主机.
sudo docker ps 可以查看运行的容器.
ok,我们不想要这个容器了,怎么办呢?
sudo docker stop b152861ef001
同时再把容器删除
sudo docker rm b152861ef001
三.制作一个hadoop镜像
这是这里最繁琐的过程,不过,我们可以分解来做.少年郎,我夹你杠哦,你会了这个,就再也不用担心hadoop
不会装了.走起!
sudo docker run -it -h master --name master insaneworks/centos /bin/bash
进入到容器里,我们第一步就是把gcc给我装了.
yum install -y gcc
装vim
yum install -y vim
装lrzsz
yum install -y lrzsz
装ssh:
yum -y install openssh-server
yum -y install openssh-clients
注意,这里我们要改一下ssh的一些配置:vim /etc/ssh/sshd_config
放开PermitEmptyPasswords no
更改UsePAM no
放开PermitRootLogin yes
启动sshd
service sshd start
然后我们要用到ssh密码设置
ssh-keygen -t rsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
这样完了后呢,我们ssh连自己试试
ssh master
不错,非常好使.
接下来我们把Java给装了.
通过rz将java rpm包给传上去,好了,又该去喝一壶了........
rpm -ivh jdk-7u75-linux-x64.rpm
修改环境变量
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
export JAVA_HOME=/usr/java/jdk1.7.0_75
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
下面我们该装hadoop了,激动吧,呵呵,先把tar给装了先.
yum install -y tar
一样,我们用rz把hadoop的tar包传到容器内.事先埋个伏笔,之后会有一件很坑爹的事情,反正到时候你就知道了.
嗯......等的真是好漫长..........
咚咚哒哒呼噜娃.......咚咚哒哒呼噜娃.......
好了,解压:
tar zxvf hadoop-2.6.0.tar.gz
完美!
配置环境变量
export HADOOP_HOME=/home/hadoop/hadoop-2.6.0
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
然后又一件事情要做,这件事情看上去好像不用做,但老子试过n次,不做就是hadoop起不来.
vim hadoop-env.sh 和 yarn-env.sh 在开头添加如下环境变量(一定要添加切勿少了)
export JAVA_HOME=/usr/java/jdk1.7.0_75
哦,这个文件都在hadoop解压目录的etc中.
下面我们来写配置文件.
修改hadoop core-site.xml文件
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131702</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/songfy/hadoop-2.6.0/tmp</value>
</property>
</configuration>
修改hdfs-site.xml文件
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/songfy/hadoop-2.6.0/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/songfy/hadoop-2.6.0/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>