Hadoop集群搭建 | 基于Docker搭建3节点的Hadoop完全分布式集群

参考资料:http://dblab.xmu.edu.cn/blog/1233/

注:本篇博文的实验需要一个具有Hadoop集群环境的Docker镜像。

运行环境

Ubuntu20.04

Hadoop3.3.1

JDK8

1. 使用Docker开启三个容器


在这里插入图片描述
本次测试的节点介绍

节点名称 作用
master 主节点
slave1 副节点
slave2 副节点

使用已具有Hadoop集群环境的镜像创建容器、一个终端负责控制一个容器

主节点

sudo docker run -it -h master --name master ubuntu/hadoop

副节点1

sudo docker run -it -h slave1 --name slave1 ubuntu/hadoop

副节点2

sudo docker run -it -h slave2 --name slave2 ubuntu/hadoop

在这里插入图片描述

*2. 配置ip映射 测试ssh


接下来的操作需对三个节点同时进行

每次容器重新启动后都需要配置hosts

vim etc/hosts

在这里插入图片描述

根据查询可知,三个节点的IP信息如下表所示:

节点名称 映射的IP
master 172.17.0.2
slave1 172.17.0.3
slave2 172.17.0.4

为了使他们三个节点能互相连接,需要在每个的配置文件里加上另外两个的IP,如下图所示
在这里插入图片描述

修改好后保存退出

测试SSH

以Master节点为例,如果它能连接slave1和slave2,说明ssh功能完好(对slave1、slave2执行同样的操作,这里略过)

ssh slave1

exit

ssh slave2

exit

在这里插入图片描述
在这里插入图片描述

3. 修改Hadoop的配置文件


搭建Hadoop集群需要修改的配置文件有如下3个。因为已经开启了3个节点,这里采取的策略是先在master节点修改好配置文件,接着将该所有配置文件使用 cp命令复制到其他两个节点的对应目录下。注:表示集群节点的配置文件(workers) 需要单独修改

文件都在 ./etc/hadoop 的位置

  • hadoop-env.sh 配置Hadoop运行相关的环境变量,比如设置JDK路径、集群各个进程的用户等等
  • core-site.xml设置hadoop临时目录、HDFS的远程地址
  • hdfs-site.xml 对于HDFS,名称/数据节点存放位置、文件副本个数等
  • mapred-site.xml 设置MapReduce参数
  • yarn-site.xml 配置集群资源管理系统参数
  • workers 指定集群中工作的副节点

修改配置时,只添加内容,其他内容原封不变。

3.1 hadoop-env.sh


export JAVA_HOME=/usr/local/jdk8
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

在这里插入图片描述

3.2 core-site.xml


<configuration>
<property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供基于Docker,Ubuntu搭建节点Hadoop集群的详细实例教程。 以下是具体步骤: 1. 安装DockerDocker Compose 首先您需要安装DockerDocker Compose。您可以按照以下命令来进行安装: ``` sudo apt-get update sudo apt-get install docker.io sudo systemctl start docker sudo systemctl enable docker sudo curl -L "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ``` 2. 创建Docker镜像 接下来,您需要在每个节点上创建Docker镜像。您可以使用以下命令在每个节点上创建Docker镜像: ``` sudo docker build -t hadoop-base . ``` 3. 创建Docker Compose文件 在每个节点上,您需要创建一个Docker Compose文件。您可以使用以下模板文件来创建Docker Compose文件: ``` version: '3' services: namenode: image: hadoop-base container_name: namenode hostname: namenode ports: - "50070:50070" - "9000:9000" volumes: - ./hadoop:/opt/hadoop environment: - CLUSTER_NAME=hadoop-cluster - NODE_TYPE=namenode datanode1: image: hadoop-base container_name: datanode1 hostname: datanode1 ports: - "50075:50075" - "50010:50010" - "50020:50020" - "9001:9001" volumes: - ./hadoop:/opt/hadoop environment: - CLUSTER_NAME=hadoop-cluster - NODE_TYPE=datanode datanode2: image: hadoop-base container_name: datanode2 hostname: datanode2 ports: - "50076:50075" - "50011:50010" - "50021:50020" - "9002:9001" volumes: - ./hadoop:/opt/hadoop environment: - CLUSTER_NAME=hadoop-cluster - NODE_TYPE=datanode ``` 在此文件,您需要定义三个服务:namenode、datanode1、datanode2。您需要在每个服务指定Docker镜像名称、容器名称、主机名、端口号、数据卷和环境变量。您需要将此文件保存为docker-compose.yml。 4. 启动集群 接下来,您需要在每个节点上使用以下命令来启动集群: ``` sudo docker-compose up -d ``` 这将启动集群并在后台运行。 5. 验证集群 最后,您需要验证Hadoop集群是否成功启动。您可以使用以下命令来验证: ``` sudo docker exec -it namenode bash /opt/hadoop/bin/hadoop fs -mkdir /test /opt/hadoop/bin/hadoop fs -ls / ``` 如果您在上述命令看到/test目录,则表明您成功地启动了Hadoop集群。 希望这个实例教程对您有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值