Docker + Hadoop 搭建完全分布式

阅读本文需要一定的 Linux 基础,不适合新手,仅提供思路

系统部署

参考

Docker 下载:https://docs.docker.com/desktop/windows/install/

Docker 安装:https://www.runoob.com/docker/windows-docker-install.html

部署 Centos7

Docker 国内源

参考源

  • 中科大

  • 网易源

  • 阿里镜像(建议)

    进入管理控制台 --> 产品与服务 --> 弹性计算 --> 容器镜像服务 --> 镜像加速器,复制自己的专属加速器地址。

添加

# Linux
vi /etc/docker/daemon.json

# MAC
请前往 Preferences -> Daemon 处设置

重启 docker

# Linux
systemctl restart docker

镜像部署

拉取

docker pull centos:centos7

检查本地镜像


docker images

启动

docker run -itd --name 「DIY Image Name」 centos:centos7 /bin/Bash

查看启动信息

docker ps

管理容器

docker start/kill/stop/rm 「CONTAINER ID」

进入容器

docker exec -it 「CONTAINER ID」 /bin/Bash


制作开发环境镜像

Centos 国内源

参考

基础工具安装

vim

Linux 最好用的文本编辑器

yum -y install vim

net-tools

Linux 网络管理工具

yum -y install net-tools

openssh-clients/openssh-server

ssh 客户端

yum -y install openssh-clients && yum -y install openssh-server

openssl

通过 SSL 保障,保证安全通信的软件库包

yum -y install openssl

wget

远程下载工具

yum -y install wget

开发工具安装

Mysql 安装

请参考我的另一篇文章:

《Hadoop 高并发集群 与 开发环境部署》第 5.1 小节

Java 安装

请参考我的另一篇文章:

《Hadoop 高并发集群 与 开发环境部署》第 5.2 小节

Python3 安装

请参考我的另一篇文章:

《Hadoop 高并发集群 与 开发环境部署》第 5.3 小节

Scala 安装

请参考我的另一篇文章:

《Hadoop 高并发集群 与 开发环境部署》第 5.4 小节

制作镜像

打包镜像

docker commit -a "「Image Name」" -m "「Comment」"  「CONTAINER ID」 「Image Name」:v「version」


开始生产集群

统一口径

创建网络

docker network create --subnet=192.168.10.1/24 「Net Name」

统一 IP 和 Host

NameNode

docker run -itd --name nn \
--privileged=true -p 50070:50070 -p 8080:8080\
--hostname nn \
--net hadoop --ip 192.168.10.10 \
--add-host dn1:192.168.10.11 \
--add-host dn2:192.168.10.12 \
-d 「Image Name」(记得带版本号)\
/usr/sbin/init

如果需要开放端口请添加-p参数内容为 容器内端口:映射至本机的端口

DataNode 1

docker run -itd --name dn1 \
--privileged=true \
--hostname dn1 \
--net hadoop --ip 192.168.10.11 \
--add-host nn:192.168.10.10 \
--add-host dn2:192.168.10.12 \
-d 「Image Name」(记得带版本号)\
/usr/sbin/init

DataNode 2

docker run -itd --name dn2 \
--privileged=true \
--hostname dn2 \
--net hadoop --ip 192.168.10.12 \
--add-host dn1:192.168.10.11 \
--add-host nn:192.168.10.10 \
-d 「Image Name」(记得带版本号)\
/usr/sbin/init

SSH 配置

请参考我的另一篇文章:

《Hadoop 高并发集群 与 开发环境部署》第 6.2.2 小节


Hadoop 完全分布式部署

准备

下载地址

wget https://dlcdn.apache.org/hadoop/common/hadoop-2.10.1/hadoop-2.10.1.tar.gz

准备目录

mkdir /usr/hadoop \
&& mkdir /usr/hadoop/tmp \
&& mkdir /usr/hadoop/hdfs/name \
&& mkdir /usr/hadoop/hdfs/data

环境变量请解压后自行配置

变量名请遵守:HADOOP_HOME


修改配置

地址:$HADOOP_HOME/etc/hadoop/

core-site.xml

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://nn:9000</value>
    </property>
</configuration>

hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/hadoop/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/hadoop/hdfs/data</value>
    </property>
</configuration>

mapred-site.xml

复制 mapred-site.xml.template 为 mapred-site.xml

cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration>
  <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
  </property>
   <property>
      <name>mapred.job.tracker</name>
      <value>http://nn:9001</value>
  </property>
</configuration>

yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>nn</value>
    </property>
</configuration>

masters

地址: $HADOOP_HOME/etc/hadoop/masters

内容:

nn

slaves

地址: $HADOOP_HOME/etc/hadoop/slaves

修改内容:

「datanode HOST 1」

「datanode HOST 2」

............

「datanode HOST n」

Hadoop-env.sh

前往该文件中添加 JAVA_HOME 避免出现识别不到 JDK 的情况


同步

使用 scp 命令同步所有变动文件

参考:

scp -r /usr/dt dn1:/usr/

检验

初始化 HDFS

hadoop namenode -format

启动 Hadoop

sh $HADOOP_HOME/sbin/start-all.sh

查看集群状态

hadoop dfsadmin -report
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我想养只猫 •͓͡•ʔ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值