VM虚拟机 - Docker - CentOS 7 - 快速使用Docker从零搭建Hadoop完全分布式集群详细教程(亲测有效,※吐血推荐※)(内含快速启动容器脚本)

阅读须知

  1. 为什么用 docker 搭建 hadoop 集群呢?虚拟机超级超级慢,一开始可以带三台虚拟机,慢慢的连一台都慢死了。一怒之下干脆从零再用 docker 搭一个集群算了。除了开始的一些步骤图形化界面是不用操作的,接下来的操作都一样,大部分坑我都走了,好多操作我都从头执行了好几遍,直接复制即可。

虚拟机-Linux-CentOS 7吐血安装Hadoop2.9.2搭建集群教程(详细图解)

  1. 本博客采用最小安装。一开始我是安装了图形化界面(KDE),由于在 docker 里面不能直接使用 systemctl,如果直接 docker run 会报错:Failed to get D-Bus connection: Operation not permitted。解决方法是在创建容器时加上 --privileged/usr/sbin/init。但是我只要一执行就会跳出图形化界面,进入一个命令行界面,然后就回不去了!!!我以为是 CentOS 版本的问题,用最新版也一样,这个问题困扰了我好久都没解决。一怒之下干脆不要图形化界面了,直接最小安装算了,还没这么卡。但是还是会跳转界面,后来我直接用 XShell 控制虚拟机,懒得看它了。
    在这里插入图片描述
  2. 像 Java、Scala、Hadoop、Hive、Spark 这些东西都是从官网下个 tar 包,再继续操作。所以需要用到共享文件夹。
    在这里插入图片描述
    在这里插入图片描述
  3. 集群配置,所以弄三个容器
- master slave1 slave2
HDFS NameNode
DataNode
DataNode SecondaryNameNode
DataNode
Yarn NodeManager ResourceManager
NodeManager
NodeManager
  1. 过程中适当拍摄快照
    在这里插入图片描述
  2. 每一步都很关键!!!

Ctrl C + Ctrl V 走起 👻👻👻👻

最小安装(可跳)

安装虚拟机和CentOS的过程:

  1. ip addr 查看 IP,接下来的操作都在 XShell
    在这里插入图片描述

  2. 安装必要的工具

yum -y install vim             #编辑器
yum -y install net-tools       #ifconfig
yum -y install httpd
yum -y install wget
yum -y install iproute
yum -y install lsof
yum -y install bash-completion	#tab补全
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake	#gcc

#yum -y update				#升级
#yum -y install kernel-devel	   #升级kernel-devel
#yum -y install kernel-headers
  1. 修改 /etc/vimrc 文件,防止中文乱码,vim /etc/vimrc,添加如下代码
    在这里插入图片描述
set encoding=utf-8
set termencoding=utf-8
set fileencodings=utf-8
  1. 如果想格式化JSON可以在 /etc/vimrc 加上下面的代码:
command! JsonFormat :execute '%!python -m json.tool'
\ | :execute '%!python -c "import re,sys;chr=__builtins__.__dict__.get(\"unichr\", chr);sys.stdout.write(re.sub(r\"\\u[0-9a-f]{4}\", lambda x: chr(int(\"0x\" + x.group(0)[2:], 16)).encode(\"utf-8\"), sys.stdin.read()))"'
\ | :set ft=javascript
\ | :

打开json文件,输入:

:JsonFormat

详解Linux安装GCC方法
vmware + centos 7安装vmtools时提示The path “” is not a valid path to the xxx kernel header
VMware下CentOS7最小化安装及配置
CentOS 7 最小化安装后的注意事项及一些必备组件的安装
CentOS7最小化安装-Linux-1
Linux最小化安装后一般需要安装的命令的rpm包合集
让VIM彻底告别乱码
VIM中格式化json

安装VMware Tool(可直接安装)

  1. 在虚拟机菜单栏中点击 虚拟机 -> 安装 VMware Tools
  2. 创建挂载目录:mkdir /mnt/cdrom
  3. 将光驱挂载到/mnt/cdrom目录:mount /dev/cdrom /mnt/cdrom
  4. 将压缩包拷贝到其它地方:cp /mnt/cdrom/VMwareTools-10.3.2-9925305.tar.gz /opt
  5. 解压:tar -zxvf /opt/VMwareTools-10.3.2-9925305.tar.gz -C /opt
  6. 进入解压出来的目录:cd /opt/vmware-tools-distrib
  7. 安装:./vmware-install.pl。这一步可能会遇到问题:bash:./vmware-install.pl :/usr/bin/perl:bad interpreter:No such file or directory。输入 yum groupinstall “Perl Support” 即可。
  8. 卸载光驱:umount /dev/cdrom

Linux VMware Tools安装步骤简易版
CentOS-7 最小安装VMware-tools
在 Linux 虚拟机中手动安装 VMware Tools

关闭防火墙和Selinux

  1. 输入 systemctl status firewalld.service 查看防火墙状态
  2. 输入 systemctl stop firewalld.service 关闭防火墙
  3. 输入 systemctl disable firewalld.service 关闭防火墙自启
  4. 输入 vim /etc/sysconfig/selinux,将 SELINUX=enforcing 改为 SELINUX=disabled

安装docker

  1. 卸载已安装的较旧的 Docker 以及相关的依赖项。
yum remove docker \
      docker-client \
      docker-client-latest \
      docker-common \
      docker-latest \
      docker-latest-logrotate \
      docker-logrotate \
      docker-engin
  1. 安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  1. 设置仓库源
yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  1. 安装最新版本的 Docker Engine-Community 和 containerd
yum -y install docker-ce docker-ce-cli containerd.io
  1. 启动docker 服务:systemctl start docker

  2. 检测 docker 版本:docker version
    在这里插入图片描述

  3. 停止docker服务:systemctl stop docker

  4. 修改镜像源:vim /etc/docker/daemon.json

{
  "registry-mirrors": [
    "https://registry.aliyuncs.com",
    "https://hub-mirror.c.163.com",
    "https://registry.docker-cn.com",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}

迁移docker安装目录

docker镜像容器目录默认存放在 /var/lib/docker,担心后期数据量大导致系统盘空间不足,现把它迁移到其它地方。我有一次好不容易装好了,提示我磁盘空间不足,vim 都用不了了。
在这里插入图片描述

  1. 通过 df -h 看下磁盘大概的情况,找一个大的空间
  2. 创建新目录作为docker的新目录:mkdir -p /opt/docker
  3. 迁移数据:cp -r /var/lib/docker/ /opt/docker
  4. 修改 docker.servicevim /lib/systemd/system/docker.service,在 ExecStart 后面添加 --data-root /opt/docker
  5. systemctl daemon-reload
  6. 重启 docker 服务:systemctl start docker
  7. 查看默认路径是否已修改:docker info | grep " Root Dir",如果修改了会提示这样:Docker Root Dir: /opt/docker
  8. 通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。
docker run hello-world

在这里插入图片描述

  1. 删除原目录数据:rm -rf /var/lib/docker

attempt to change docker data-root fails - why
两种方式迁移 Docker 的默认安装 (存储) 目录
docker的/var/lib/docker目录迁移
docker镜像容器目录迁移

docker安装CentOS 7

  1. 拉取指定版本的 CentOS 镜像
docker pull centos:centos7

在这里插入图片描述
2. 查看本地镜像

docker images

在这里插入图片描述

  1. run 运行容器,然后可以通过 exec 命令进入 CentOS 容器。注意两个地方 --privileged/usr/sbin/init,这样你才能使用 systemctl
docker run -itd --privileged -h base --name base centos:centos7 /usr/sbin/init

docker exec -it 77b6c963033b /bin/bash

在这里插入图片描述

安装必要工具

  1. 分别安装 vim、net-tools、iputils-ping 等
yum -y install vim             #编辑器
yum -y install net-tools       #ifconfig
yum -y install iputils-ping    #ping
yum -y install httpd
yum -y install iproute
yum -y install lsof
yum -y install wget
yum -y install rsync			#同步数据
yum -y install bash-completion	#tab补全
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake	#gcc
yum -y install openssh-server   #ssh
yum -y install openssh-clients  #ssh
systemctl start sshd.service    #启动 ssh 服务
systemctl enable sshd.service   #设置 ssh 开机启动
systemctl start rsyncd.service  #启动 rsync 服务
systemctl enable rsyncd.service
  1. 修改 /etc/vimrc 文件,防止中文乱码,vim /etc/vimrc,添加如下代码
    在这里插入图片描述
set encoding=utf-8
set termencoding=utf-8
set fileencodings=utf-8
  1. vim /etc/ssh/sshd_config,将PermitRootLogin,PubkeyAuthentication 的设置打开。
    在这里插入图片描述

  2. 为了保证系统启动的时候也启动 ssh 服务,我们将启动命令放到bashrc文件末尾中:systemctl start sshd.service

vim ~/.bashrc
  1. 这一步很狠猩狼关键passwd。输入你的密码,后面 ssh 登录要用!!!

安装Java和Scala

  1. 在主机将 JDK 和 Scala 复制到容器的 /opt 目录
docker cp /mnt/hgfs/share/jdk-8u241-linux-x64.tar.gz def8faf07d6b:/opt
docker cp /mnt/hgfs/share/scala-2.12.12.tgz def8faf07d6b:/opt
  1. 解压压缩包到 /opt,并重命名
tar -zxvf /opt/jdk-8u241-linux-x64.tar.gz -C /opt
mv /opt/jdk1.8.0_241 /opt/jdk-1.8.0
tar -zxvf /opt/scala-2.12.12.tgz -C /opt
  1. 更改文件的所有者和所在组:chown -R root:root /opt/jdk-1.8.0 && chown -R root:root /opt/scala-2.12.12
  2. 设置环境变量 vim /etc/profile,在末尾添加
#JAVA
export JAVA_HOME=/opt/jdk-1.8.0
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
#Scala
export SCALA_HOME=/opt/scala-2.12.12
#PATH
export PATH=$PATH:${JAVA_HOME}/bin:${SCALA_HOME}/bin
  1. source /etc/profile && java -version && scala -version 查看 Java 和 Scala 是否配置成功
    在这里插入图片描述
  2. 输入 vim ~/.bashrc,加上 source /etc/profile
  3. 记得删除压缩包

安装Hadoop

  1. 在主机将 Hadoop 复制到容器的 /opt 目录
docker cp /mnt/hgfs/share/hadoop-2.9.2.tar.gz def8faf07d6b:/opt
  1. 解压压缩包到 /opt
tar -zxvf /opt/hadoop-2.9.2.tar.gz -C /opt
  1. 更改文件的所有者和所在组:chown -R root:root /opt/hadoop-2.9.2
  2. 配置 core-site.xml($HADOOP_HOME/etc/hadoop/下)fs.default.name 为默认的master节点。hadoop.tmp.dir为hadoop默认的文件路径。如果本机没有的话需要自己通过 mkdir 命令进行创建。
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
</property>
    <!-- 指定hadoop运行时产生文件的存储路径 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop-2.9.2/data/tmp</value>
</property<
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值