阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Docker安装Hadoop集群

430次阅读
没有评论

共计 7580 个字符,预计需要花费 19 分钟才能阅读完成。

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>

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

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

在 slaves 文件中添加
slave1
slave2
slave3

 

似乎一切都好像搞定了, 少年, 别急, 吓死你!

ldd /home/hadoop/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0

然后你会看到:

/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)
 linux-vdso.so.1 => (0x00007fff24dbc000)
 libdl.so.2 => /lib64/libdl.so.2 (0x00007ff8c6371000)
 libc.so.6 => /lib64/libc.so.6 (0x00007ff8c5fdc000)
 /lib64/ld-linux-x86-64.so.2 (0x00007ff8c679b000)

 

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

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

yum install -y wget

wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz

tar zxvf glibc-2.14.tar.gz

cd glibc-2.14

mkdir build

cd build

../configure –prefix=/usr/local/glibc-2.14

make

make install

ln -sf /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

此时,ldd /home/hadoop/hadoop-2.6.0/lib/native/libhadoop.so.1.0.0

就没有任何问题了

linux-vdso.so.1 => (0x00007fff72b7c000)
 libdl.so.2 => /lib64/libdl.so.2 (0x00007fb996ce9000)
 libc.so.6 => /lib64/libc.so.6 (0x00007fb99695c000)
 /lib64/ld-linux-x86-64.so.2 (0x00007fb997113000

这样, 我们的镜像就可以 commit 了

docker commit master songfy/hadoop

我们可以用 docker images 来查看镜像.

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
songfy/hadoop latest 311318c0a407 42 seconds ago 1.781 GB

insaneworks/centos latest 9d29fe7b2e52 9 days ago 121.1 MB

下面我们来启动 hadoop 集群

 

三. 启动 hadoop 集群

docker rm master

sudo docker run -it -p 50070:50070 -p 19888:19888 -p 8088:8088 -h master –name master songfy/hadoop /bin/bash

sudo docker run -it -h slave1 –name slave1 songfy/hadoop /bin/bash

sudo docker run -it -h slave2 –name slave2 songfy/hadoop /bin/bash

sudo docker run -it -h slave3 –name slave3 songfy/hadoop /bin/bash

 

attach 到每个节点上执行

source /etc/profile

service sshd start

接下来我们还要给每台机器配 host

docker inspect –format='{{.NetworkSettings.IPAddress}}’ master

这条语句可以查看 ip

172.17.0.4 master

172.17.0.5 slave1

172.17.0.6 slave2

172.17.0.7 slave3

用 scp 将 hosts 文件分发到各个 node 中.

 

好了, 我们终于要启动 hadoop 了.

hadoop namenode -format

/home/hadoop/hadoop-2.6.0/sbin/start-dfs.sh

/home/hadoop/hadoop-2.6.0/sbin/start-yarn.sh

用 jps 查看, 发现都起来了.

 

下面我们简单来对 hdfs 操作一下.

hadoop fs -mkdir /input

hadoop fs -ls /

drwxr-xr-x  – root supergroup          0 2015-08-09 09:09 /input 

下面我们来运行一下大名鼎鼎的 wordcount 程序来看看.

hadoop fs -put /home/hadoop/hadoop-2.6.0/etc/hadoop/* /input/

hadoop jar /home/hadoop/hadoop-2.6.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar wordcount /input/ /output/wordcount/ 

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

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>

嗯, 意思是内存不够, 我们就分 2G 过去.

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

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

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

好了, 结果出来了, 我们来看看: 

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

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

Docker 安装应用 (CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm 

Ubuntu 14.04 安装 Docker  http://www.linuxidc.com/linux/2014-08/105656.htm 

Ubuntu 使用 VNC 运行基于 Docker 的桌面系统  http://www.linuxidc.com/Linux/2015-08/121170.htm

阿里云 CentOS 6.5 模板上安装 Docker http://www.linuxidc.com/Linux/2014-11/109107.htm 

Ubuntu 15.04 下安装 Docker  http://www.linuxidc.com/Linux/2015-07/120444.htm 

在 Ubuntu Trusty 14.04 (LTS) (64-bit) 安装 Docker http://www.linuxidc.com/Linux/2014-10/108184.htm 

Docker 的详细介绍 :请点这里
Docker 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-08/121439.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计7580字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7826643
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛NAS-4:飞牛NAS安装istore旁路由,家庭网络升级的最佳实践

星哥带你玩飞牛 NAS-4:飞牛 NAS 安装 istore 旁路由,家庭网络升级的最佳实践 开始 大家好我是...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件 大家好,我是星哥,很多人都希望能高效地保存微信公众号的文章,用于...
让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级

让微信公众号成为 AI 智能体:从内容沉淀到智能问答的一次升级 大家好,我是星哥,之前写了一篇文章 自己手撸一...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

星哥带你玩飞牛NAS-16:不再错过公众号更新,飞牛NAS搭建RSS

  星哥带你玩飞牛 NAS-16:不再错过公众号更新,飞牛 NAS 搭建 RSS 对于经常关注多个微...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...