使用docker安装分布式hadoop(阿里hadoop镜像)

本文详细介绍了如何使用阿里云镜像搭建Hadoop集群,包括拉取镜像、创建节点容器、配置SSH密钥、分配IP地址及配置Hadoop核心文件等步骤,并确保所有配置经过实践验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面使用了docker自带的镜像安装,那么这篇使用阿里镜像搭建hadoop集群,也参考了网上部分播客,但是多多少少有问题,我这篇播客是全部经过实践测试成功跑起来的。

1、安装hadoop镜像

1)拉取镜像

拉取阿里的hadoop镜像
docker pull registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop
在这里插入图片描述
查看镜像
docker images
在这里插入图片描述

3)创建hadoop容器

(1)创建master节点
docker run --name master -d -h master registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop
参数说明:
-h 为容器设置主机名
–name 设置容器的名称
-d 在后台运行

(2)以此方法创建slave1和slave2节点
docker run --name slave1 -d -h slave1 registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop
docker run --name slave2 -d -h slave2 registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop
(3)查看容器
docker ps -s
在这里插入图片描述
(4)进入容器查看jdk
docker exec -it master bash
jdk都已经自带了
在这里插入图片描述
(5)配置ssh生成秘钥,所有的节点都要配置
进入容器后
启动ssh
/etc/init.d/ssh start
生成秘钥
·ssh-keygen -t rsa
在这里插入图片描述
(5)分别进入每个节点,将其他节点的公钥也都复制到authorized_keys,也就是说每个>authorized_keys 文件中存储的公钥都是3个而且是一样的
将容器中的文件复制到centos本地
·docker cp 容器id/容器名称:/root/.ssh/authorized_keys /home/hadoop/authorized_keys_master在这里插入图片描述
将这三个文件复制到一个文件中
cd /home/hadoop/
cat authorized_keys_master authorized_keys_slave1 authorized_keys_slave2 > authorized_keys
cat authorized_keys
在这里插入图片描述
将centos本地的文件复制到容器
docker cp /home/hadoop/authorized_keys 容器id/容器名称:/root/.ssh/authorized_keys
在这里插入图片描述
(6)分别为每个节点配置ip地址
进入容器,在此容器中可以直接使用ip addr命令查看ip地址
在这里插入图片描述
为每个容器设置地址,vi /etc/hosts 配置
在这里插入图片描述
ssh master 测试一下,测试成功
在这里插入图片描述

2、配置hadoop(配置文件的目录一般都在/opt/tools/hadoop-2.7.2/etc/hadoop/下面)

1)配置hadoop-env.sh,配置jdk

(1)进入容器查找 hadoop-env.sh存放位置

find / -name hadoop-env.sh
(2)查看 hadoop-env.sh文件
在这里插入图片描述

export JAVA_HOME=/opt/tools/jdk1.8.0_77

在这里插入图片描述

2)配置core-site.xml,配置hdfs的地址和端口号
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
  </property>
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/hadoop/tmp</value>
    </property>

在这里插入图片描述

3)配置hdfs-site.xml ,配置hdfs备份数量,配置namenode和datanode的数据路径

/hadoop/data 和 /hadoop/name要提前建立此文件夹
mkdirp -p /hadoop/data
mkdirp -p /hadoop/name

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/hadoop/data</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/hadoop/name</value>
  </property>
</configuration>

slave数量要大于等于备份的数量,否者会报错
在这里插入图片描述

4)配置 mapred-site.xml,指定MapReduce运行在yarn上,配置JobTracker的地址和端口。
  <configuration>
  <property>
    <name>mapred.job.tracker</name>
    <value>localhost:9001</value>
</property>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

在这里插入图片描述

5)配置yarn-site.xml,配置hdfs备份数量

在这里插入图片描述
配置参数

 <property>
     <name>yarn.resourcemanager.address</name>
    <value>master:8032</value>
 </property>
 <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
   <property>
   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
   <value>org.apache.hadoop.mapred.ShuffleHandler</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:8089</value>
</property>

在这里插入图片描述

6)将这些参数发送到其它节点

scp /opt/tools/hadoop-2.7.2/etc/hadoop/yarn-site.xml slave1:/opt/tools/hadoop-2.7.2/etc/hadoop/
将core-site.xml hadoop-env.sh hdfs-site.xml mapred-site.xml yarn-site.xml 发送到slave1 和slave2节点 在这里插入图片描述

3、运行hadoop

1)配置slaves

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

2)在master上格式化namenode

hadoop namenode -format
在这里插入图片描述

3)在master上启动集群

cd /opt/tools/hadoop/sbin/
./start-all.sh
在这里插入图片描述

3)jps 查看进程,查看到说明已启动

在这里插入图片描述

4)进入slave1查看进程

在这里插入图片描述

### 构建分布式Hadoop集群 #### 准备工作 为了在Windows平台上利用Docker构建分布式Hadoop集群,需先完成环境准备。这包括但不限于安装并配置好Docker Desktop应用[^1]。 #### 创建基础镜像与网络设置 一旦确认Docker已成功部署于系统之上,则可以着手创建用于运行Hadoop节点的基础Linux操作系统映像。通常会选择Ubuntu作为底层OS来简化后续操作流程。通过命令`docker pull ubuntu:16.04`获取所需版本的操作系统镜像文件[^3]。之后,建立一个名为"hadoop"的自定义桥接型内部虚拟网络以便各容器间通信顺畅无阻: ```bash docker network create -d bridge hadoop ``` #### 配置Master节点 基于先前拉取到的基础镜像实例化一个新的容器,并赋予其特定的身份标识——即主机名设为'master'以及相应的别名'tag': ```bash docker run -dit --network hadoop --hostname=master --name master nethdp /bin/bash ``` 进入这个新启动起来的服务端口内执行必要的软件包安装任务,比如Java JDK、SSH服务等依赖项;同时调整防火墙策略允许外部访问8088端口(YARN UI)、9870端口(NameNode Web界面)。最后一步是初始化整个HDFS文件系统的命名空间结构体。 #### 添加Slave节点 重复上述过程以增加额外的工作节点加入现有群集之中。这里仅展示添加第二个从属成员的例子: ```bash docker run -dit --network hadoop --hostname=slave2 --name slave2 nethdp /bin/bash ``` 同样地,在这些新增加出来的计算资源上面也需要同步进行相同类型的预处理作业直至满足官方文档所提出的最低限度要求为止。 #### 启动Hadoop集群 当所有的物理硬件设施都已经被正确组装完毕后就可以正式开启业务逻辑层面的功能模块了。返回至主控台下发指令让各个组成部分协同运作形成完整的生态系统: ```bash start-dfs.sh && start-yarn.sh ``` 以上就是在Windows环境下借助Docker技术实现多机协作模式下的大数据存储解决方案的大致框架描述[^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值