您当前的位置:首页 > hadoop

Docker安装Hadoop集群

Docker安装集群?图啥呢?不图啥,就是图好玩,本篇博客主要是来教大家如何搭建一个Docker的Hadoop集群,不要问为什么我要做这么无聊的事情,答案你也许知道,就是喜欢折腾。f8wlinux系统宝典

好了,不多说这些没有必要的东西了,首先,我们来安装Docker。f8wlinux系统宝典

一.docker的安装f8wlinux系统宝典

sudo yum install -y docker-iof8wlinux系统宝典

sudo wget https://get.docker.com/builds/Linux/x86_64/docker-latest -O /usr/bin/dockerf8wlinux系统宝典

我们来启动我们的docker:f8wlinux系统宝典

sudo service docker startf8wlinux系统宝典

开机也自启动dockerf8wlinux系统宝典
sudo chkconfig docker onf8wlinux系统宝典

二.拉取一个镜像f8wlinux系统宝典

如果我们要6.5的 版本,额,不要问我问什么用6.5的,因为宿主机是内核6.5的...f8wlinux系统宝典

sudo docker pull insaneworks/centosf8wlinux系统宝典

然后我们就可以去吃个饭喝壶茶了......反正你就就慢慢等吧.....f8wlinux系统宝典

.......f8wlinux系统宝典

ok,饭吃完了,我们来产生一个容器吧.f8wlinux系统宝典

sudo docker run -it insaneworks/centos /bin/bashf8wlinux系统宝典

ctrl+p ctrl+q可以帮助我们从容器返回宿主机.f8wlinux系统宝典

sudo docker ps 可以查看运行的容器.f8wlinux系统宝典

ok,我们不想要这个容器了,怎么办呢?f8wlinux系统宝典

sudo docker stop b152861ef001f8wlinux系统宝典

同时再把容器删除f8wlinux系统宝典

sudo docker rm b152861ef001f8wlinux系统宝典

三.制作一个hadoop镜像f8wlinux系统宝典

这是这里最繁琐的过程,不过,我们可以分解来做.少年郎,我夹你杠哦,你会了这个,就再也不用担心hadoopf8wlinux系统宝典

不会装了.走起!f8wlinux系统宝典

sudo docker run -it -h master --name master insaneworks/centos /bin/bashf8wlinux系统宝典

进入到容器里,我们第一步就是把gcc给我装了.f8wlinux系统宝典

yum install -y gccf8wlinux系统宝典

装vimf8wlinux系统宝典

yum install -y vimf8wlinux系统宝典

装lrzszf8wlinux系统宝典

yum install -y lrzszf8wlinux系统宝典

装ssh:f8wlinux系统宝典

yum -y install openssh-serverf8wlinux系统宝典

yum -y install openssh-clientsf8wlinux系统宝典

注意,这里我们要改一下ssh的一些配置:vim /etc/ssh/sshd_configf8wlinux系统宝典

放开PermitEmptyPasswords nof8wlinux系统宝典

更改UsePAM nof8wlinux系统宝典

放开PermitRootLogin yesf8wlinux系统宝典

启动sshdf8wlinux系统宝典

service sshd startf8wlinux系统宝典

然后我们要用到ssh密码设置f8wlinux系统宝典

ssh-keygen -t rsa -P '' -f ~/.ssh/id_dsaf8wlinux系统宝典

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keysf8wlinux系统宝典

这样完了后呢,我们ssh连自己试试f8wlinux系统宝典

ssh masterf8wlinux系统宝典

不错,非常好使.f8wlinux系统宝典

接下来我们把java给装了.f8wlinux系统宝典

通过rz将java rpm包给传上去,好了,又该去喝一壶了........f8wlinux系统宝典

rpm -ivh jdk-7u75-linux-x64.rpmf8wlinux系统宝典

修改环境变量 f8wlinux系统宝典

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROLf8wlinux系统宝典
export JAVA_HOME=/usr/java/jdk1.7.0_75f8wlinux系统宝典
export PATH=$JAVA_HOME/bin:$PATHf8wlinux系统宝典
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarf8wlinux系统宝典

source /etc/profilef8wlinux系统宝典

下面我们该装hadoop了,激动吧,呵呵,先把tar给装了先.f8wlinux系统宝典

yum install -y tarf8wlinux系统宝典

一样,我们用rz把hadoop的tar包传到容器内.事先埋个伏笔,之后会有一件很坑爹的事情,反正到时候你就知道了.f8wlinux系统宝典

嗯......等的真是好漫长..........f8wlinux系统宝典

咚咚哒哒呼噜娃.......咚咚哒哒呼噜娃.......f8wlinux系统宝典

好了,解压:f8wlinux系统宝典

tar zxvf hadoop-2.6.0.tar.gzf8wlinux系统宝典

完美!f8wlinux系统宝典

 f8wlinux系统宝典

配置环境变量f8wlinux系统宝典
export HADOOP_HOME=/home/hadoop/hadoop-2.6.0f8wlinux系统宝典
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATHf8wlinux系统宝典

 f8wlinux系统宝典

然后又一件事情要做,这件事情看上去好像不用做,但老子试过n次,不做就是hadoop起不来.f8wlinux系统宝典

vim hadoop-env.sh 和 yarn-env.sh 在开头添加如下环境变量(一定要添加切勿少了) f8wlinux系统宝典
export JAVA_HOME=/usr/java/jdk1.7.0_75f8wlinux系统宝典

哦,这个文件都在hadoop解压目录的etc中.f8wlinux系统宝典

下面我们来写配置文件. f8wlinux系统宝典

修改hadoop core-site.xml文件f8wlinux系统宝典
<configuration>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>fs.defaultFS</name>f8wlinux系统宝典
 <value>hdfs://master:9000</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>io.file.buffer.size</name>f8wlinux系统宝典
 <value>131702</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>hadoop.tmp.dir</name>f8wlinux系统宝典
 <value>file:/home/songfy/hadoop-2.6.0/tmp</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
</configuration>f8wlinux系统宝典

 f8wlinux系统宝典

修改hdfs-site.xml文件f8wlinux系统宝典
<configuration>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>dfs.namenode.name.dir</name>f8wlinux系统宝典
 <value>file:/home/songfy/hadoop-2.6.0/dfs/name</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>dfs.datanode.data.dir</name>f8wlinux系统宝典
 <value>file:/home/songfy/hadoop-2.6.0/dfs/data</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>dfs.replication</name>f8wlinux系统宝典
 <value>2</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>dfs.namenode.secondary.http-address</name>f8wlinux系统宝典
 <value>master:9001</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>dfs.webhdfs.enabled</name>f8wlinux系统宝典
 <value>true</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
</configuration>f8wlinux系统宝典

修改mapred-site.xml文件f8wlinux系统宝典
<configuration>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>mapreduce.framework.name</name>f8wlinux系统宝典
 <value>yarn</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>mapreduce.jobhistory.address</name>f8wlinux系统宝典
 <value>master:10020</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>mapreduce.jobhistory.webapp.address</name>f8wlinux系统宝典
 <value>master:19888</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
</configuration>f8wlinux系统宝典

修改yarn-site.xmlf8wlinux系统宝典
<configuration>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>yarn.nodemanager.aux-services</name>f8wlinux系统宝典
 <value>mapreduce_shuffle</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>f8wlinux系统宝典
 <value>org.apache.hadoop.mapred.ShuffleHandler</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>yarn.resourcemanager.address</name>f8wlinux系统宝典
 <value>master:8032</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>yarn.resourcemanager.scheduler.address</name>f8wlinux系统宝典
 <value>master:8030</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>yarn.resourcemanager.resource-tracker.address</name>f8wlinux系统宝典
 <value>master:8031</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>yarn.resourcemanager.admin.address</name>f8wlinux系统宝典
 <value>master:8033</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>yarn.resourcemanager.webapp.address</name>f8wlinux系统宝典
 <value>master:8088</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
 <property>f8wlinux系统宝典
 <name>yarn.nodemanager.resource.memory-mb</name>f8wlinux系统宝典
 <value>1024</value>f8wlinux系统宝典
 </property>f8wlinux系统宝典
</configuration>f8wlinux系统宝典

在slaves文件中添加f8wlinux系统宝典
slave1f8wlinux系统宝典
slave2f8wlinux系统宝典
slave3f8wlinux系统宝典

 f8wlinux系统宝典

似乎一切都好像搞定了,少年,别急,吓死你!f8wlinux系统宝典

ldd /home/hadoop/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0f8wlinux系统宝典

然后你会看到:f8wlinux系统宝典

/home/hadoop/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /home/hadoop/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0)f8wlinux系统宝典
 linux-vdso.so.1 => (0x00007fff24dbc000)f8wlinux系统宝典
 libdl.so.2 => /lib64/libdl.so.2 (0x00007ff8c6371000)f8wlinux系统宝典
 libc.so.6 => /lib64/libc.so.6 (0x00007ff8c5fdc000)f8wlinux系统宝典
 /lib64/ld-linux-x86-64.so.2 (0x00007ff8c679b000)f8wlinux系统宝典

 f8wlinux系统宝典

人生是这样的无情,人生是这样的冷酷,之前有个小朋友问过我这个问题......我没有理,现在,然我亲手灭了这个问题!f8wlinux系统宝典

不过大家可能明白了为什么我一上来就装个gcc了吧.f8wlinux系统宝典

yum install -y wgetf8wlinux系统宝典

wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gzf8wlinux系统宝典

tar zxvf glibc-2.14.tar.gzf8wlinux系统宝典

cd glibc-2.14f8wlinux系统宝典

mkdir buildf8wlinux系统宝典

cd buildf8wlinux系统宝典

../configure --prefix=/usr/local/glibc-2.14f8wlinux系统宝典

makef8wlinux系统宝典

make installf8wlinux系统宝典

ln -sf /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6f8wlinux系统宝典

此时,ldd /home/hadoop/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0f8wlinux系统宝典

就没有任何问题了f8wlinux系统宝典

linux-vdso.so.1 => (0x00007fff72b7c000)f8wlinux系统宝典
 libdl.so.2 => /lib64/libdl.so.2 (0x00007fb996ce9000)f8wlinux系统宝典
 libc.so.6 => /lib64/libc.so.6 (0x00007fb99695c000)f8wlinux系统宝典
 /lib64/ld-linux-x86-64.so.2 (0x00007fb997113000f8wlinux系统宝典

这样,我们的镜像就可以commit了f8wlinux系统宝典

docker commit master songfy/hadoopf8wlinux系统宝典

我们可以用docker images来查看镜像.f8wlinux系统宝典

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZEf8wlinux系统宝典
songfy/hadoop latest 311318c0a407 42 seconds ago 1.781 GBf8wlinux系统宝典

insaneworks/centos latest 9d29fe7b2e52 9 days ago 121.1 MBf8wlinux系统宝典

下面我们来启动hadoop集群f8wlinux系统宝典

 f8wlinux系统宝典

三.启动hadoop集群f8wlinux系统宝典

docker rm masterf8wlinux系统宝典

sudo docker run -it -p 50070:50070 -p 19888:19888 -p 8088:8088 -h master --name master songfy/hadoop /bin/bashf8wlinux系统宝典

sudo docker run -it -h slave1 --name slave1 songfy/hadoop /bin/bashf8wlinux系统宝典

sudo docker run -it -h slave2 --name slave2 songfy/hadoop /bin/bashf8wlinux系统宝典

sudo docker run -it -h slave3 --name slave3 songfy/hadoop /bin/bashf8wlinux系统宝典

 f8wlinux系统宝典

attach到每个节点上执行f8wlinux系统宝典

source /etc/profilef8wlinux系统宝典

service sshd startf8wlinux系统宝典

接下来我们还要给每台机器配hostf8wlinux系统宝典

docker inspect --format='{{.NetworkSettings.IPAddress}}' masterf8wlinux系统宝典

这条语句可以查看ipf8wlinux系统宝典

172.17.0.4 masterf8wlinux系统宝典

172.17.0.5 slave1f8wlinux系统宝典

172.17.0.6 slave2f8wlinux系统宝典

172.17.0.7 slave3f8wlinux系统宝典

用scp将hosts文件分发到各个node中.f8wlinux系统宝典

 f8wlinux系统宝典

好了,我们终于要启动hadoop了.f8wlinux系统宝典

hadoop namenode -formatf8wlinux系统宝典

/home/hadoop/hadoop-2.6.0/sbin/start-dfs.shf8wlinux系统宝典

/home/hadoop/hadoop-2.6.0/sbin/start-yarn.shf8wlinux系统宝典

用jps查看,发现都起来了.f8wlinux系统宝典

 f8wlinux系统宝典

下面我们简单来对hdfs操作一下.f8wlinux系统宝典

hadoop fs -mkdir /inputf8wlinux系统宝典

hadoop fs -ls /f8wlinux系统宝典

drwxr-xr-x  - root supergroup          0 2015-08-09 09:09 /input f8wlinux系统宝典

下面我们来运行一下大名鼎鼎的wordcount程序来看看.f8wlinux系统宝典

hadoop fs -put /home/hadoop/hadoop-2.6.0/etc/hadoop/* /input/f8wlinux系统宝典

hadoop jar /home/hadoop/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /input/ /output/wordcount/ f8wlinux系统宝典

不要以为一下就成功了.我们发现事实上,程序并没有跑出来,查了下日志,看到:f8wlinux系统宝典

2015-08-09 09:23:23,481 WARN org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.LeafQueue: Node : slave1:41978 does not have sufficient resource for request : {Priority: 0, Capability: <memory:2048, vCores:1>, # Containers: 1, Location: *, Relax Locality: true} node total capability : <memory:1024, vCores:8>f8wlinux系统宝典

嗯,意思是内存不够,我们就分2G过去.f8wlinux系统宝典

我们发现大名鼎鼎的hadoop运行的简直奇慢无比........所以说,当你机器多,你会跑的很快,如果是docker,就歇了吧.f8wlinux系统宝典

当然,本人也试过多宿主机部署hadoop,不过因为没有那么多实体机,因此是在多个vmvare虚拟机上部署的docker hadoop集群.f8wlinux系统宝典

这就是虚拟机上的云端hadoop........事实上,除了统计次数的时候,把其中一台宿主虚拟机跑跪以外,几乎没什么软用.......f8wlinux系统宝典

好了,结果出来了,我们来看看: f8wlinux系统宝典

policy 3f8wlinux系统宝典
port 5f8wlinux系统宝典
ports 2f8wlinux系统宝典
ports. 2f8wlinux系统宝典
potential 2f8wlinux系统宝典
preferred 3f8wlinux系统宝典
prefix. 1f8wlinux系统宝典
present, 1f8wlinux系统宝典
principal 4f8wlinux系统宝典
principal. 1f8wlinux系统宝典
printed 1f8wlinux系统宝典
priorities. 1f8wlinux系统宝典
priority 1f8wlinux系统宝典
privileged 2f8wlinux系统宝典
privileges 1f8wlinux系统宝典
privileges. 1f8wlinux系统宝典
properties 6f8wlinux系统宝典
property 11f8wlinux系统宝典
protocol 6f8wlinux系统宝典
protocol, 2f8wlinux系统宝典

不错....好玩吧.......下次我们再选一个有趣的主题吧,嗯,那就hive或者storm吧......当然本人并不可靠,或许换成lda或者word2vec这种算法主题的,或者cuda异构计算也不一定,博主是个神经病,谁知道呐.f8wlinux系统宝典

Docker安装应用(CentOS 6.5_x64)  f8wlinux系统宝典

14.04安装Docker   f8wlinux系统宝典

Ubuntu使用VNC运行基于Docker的桌面系统  f8wlinux系统宝典

阿里云CentOS 6.5 模板上安装 Docker  f8wlinux系统宝典

Ubuntu 15.04下安装Docker   f8wlinux系统宝典

在Ubuntu Trusty 14.04 (LTS) (64-bit)安装Docker  f8wlinux系统宝典

Docker 的详细介绍f8wlinux系统宝典
Docker 的下载地址f8wlinux系统宝典



沪ICP备10206494号-4