如何使用docker搭建Hadoop集群

一. 环境:

1.Ubuntu20
2.Hadoop3.1.4
3.Jdk1.8_301

二. 具体步骤

  1. 拉取最新版本ubuntu 镜像
  2. 利用挂载将jdk,hadoop 等安装包通过xftp 或者使用命令行scp 命令传到挂载目录。
  3. 进入ubuntu 镜像容器docker exec -it 容器id /bin/bash
  4. 更新apt-get 系统源apt-get update
  5. 更新完后可以下载一些必须工具,如vim
  6. 安装sshd
    在开启分布式Hadoop 时,需要用到ssh 连接slave 节点apt-get install ssh
    然后运行如下脚本即可开启sshd 服务器:/etc/init.d/ssh start
    这样在开启镜像时,都需要手动开启sshd 服务,可以把这条命令写进~/.bashrc 文件,保存后每次进入容器会自动启动sshd 服务(这一句一定要放 在最后,一定要,不然后面会启动异常!)
  7. 配置免密登录(这里我试了一下,在容器里使用ssh localhost 输入密码会
    拒绝登录)cd ~/.ssh
    ssh-keygen -t rsa 一路按回车
    最后输入cat ./id_rsa.pub >> ./authorized_keys
    接下来就可以直接输入ssh localhost 登录本机了
  8. 配置jdk,和前面单机版配置一样。
  9. 安装hadoop,将hadoop 解压到自己指定的目录
  10. 配置hadoop 集群
    (1)打开hadoop_env.sh,修改JAVA_HOME
    (2)打开core-site.xml,输入
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>

(3)打开hdfs-site.xml 输入

<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/namenode_dir</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/datanode_dir</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>

(4)打开mapred-site.xml 输入

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>//这里的路径是你安装hadoop 的路径
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
</property>
</configuration>

(5)打开yarn-site.xml 输入

<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>

配置完后hadoop 集群的基本环境已经配置完毕!保存修改后的镜像
docker commit 保存镜像输入docker images 可以查看保存镜像。
在这里插入图片描述

三、配置集群:

我用1 个节点作master,3 个节点作slave。namenode 与secondnamenode 同一
节点。
1.分别打开四个终端,每个终端界面运行刚刚修改后的镜像。分别表示Hadoop
集群中的master,s01、s02 和s03
docker run -it -h Master --name Master...
在这里插入图片描述

2.输入cat /etc/hosts 查看当前容器的ip,如查看master IP 为172.17.0.3
在这里插入图片描述

3.编辑4 个容器的hosts,把每一个主机和ip 保存进去
在这里插入图片描述

4.在master 主机输入ssh s01 等测试master 能否正常连接slave(这里建议全
部ssh 一遍,避免后面启动hadoop 要输入yes 或者报警告)

5.到这里,还差最后一个配置就要完成hadoop 集群配置了,打开master 上的
workers 文件(在hadoop 安装目录下的etc/hadoop 下),hadoop2 版本这个文件
叫做slaves,把原先的默认值localhost 删掉,输入三个slave 的主机名:s03
s02,s03.
在这里插入图片描述

四、启动集群

在master 终端输入start-all.sh 启动集群(第一次启动,务必要format 一下namenode,后面再启动就不需要format 了)
格式化namenode
在这里插入图片描述

启动集群
这里直接启动集群可能会报错
在这里插入图片描述

在hadoop-env.sh 添加以下内容

export HDFS NAMENODE USER=root
export HDFS DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN NODEMANAGER USER=root

添加后:再次启动集群
在这里插入图片描述

在master 节点输入jps
在这里插入图片描述

在slave 节点输入jps
在这里插入图片描述

运行hadoop 自带的词频统计的例子
在这里插入图片描述

查看结果
在这里插入图片描述

至此,基于docker 的hadoop 集群搭建成功。

👉原文链接

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值