章节内容

上一节完成:

  • HDFS集群XML的配置
  • MapReduce集群XML的配置
  • Yarn集群XML的配置
  • 统一权限
  • DNS统一配置

背景介绍

这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。
之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。

注意,如果你和我一样,打算用公网部署,那一定要做好防火墙策略,避免不必要的麻烦!!!
请大家都以学习为目的,也请不要对我的服务进行嗅探或者攻击!!!

但是有一台公网服务器我还运行着别的服务,比如前几天发的:autodl-keeper 自己写的小工具,防止AutoDL机器过期的。还跑着别的Web服务,所以只能挤出一台 2C2G 的机器。那我的配置如下了:

  • 2C4G 编号 h121
  • 2C4G 编号 h122
  • 2C2G 编号 h123

Hadoop-03-Hadoop集群 免密登录 超详细 3节点公网云 分发脚本 踩坑笔记 SSH免密 服务互通 集群搭建 开启ROOT_大数据


请确保上一节内容已经配置完毕

Hosts 修改(必须!重要!坑多!)

这里是必须的,不然后续集群之间互通会很麻烦。配置不好的话集群之间会互相不认证。

vim /etc/hosts
  • 1.

由于云服务器会给你配置一些没用的东西,导致后续的集群通信有问题,你需要参考我的配置:
目前我在 h121 节点上,你需要把自己这台的域名映射到 0.0.0.0
比如你在h122节点上,你需要配置成0.0.0.0 h122.wzk.icu
此外,其他的你需要注意,尽量不要绑定127localhost,避免服务无法暴露,统一都到 0.0.0.0 !!!
下面的配置供你参考!

h121机器

0.0.0.0  h121.wzk.icu
101.35.209.96 h122.wzk.icu
124.223.26.81 h123.wzk.icu

# The following lines are desirable for IPv6 capable hosts
# :::1  ip6-localhost   ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
#127.0.1.1      localhost
# 127.0.1.1     hecs-393573     hecs-393573
0.0.0.0 hecs-393573     hecs-393573
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

配置结果如下:

Hadoop-03-Hadoop集群 免密登录 超详细 3节点公网云 分发脚本 踩坑笔记 SSH免密 服务互通 集群搭建 开启ROOT_大数据_02

h122机器

0.0.0.0 h122.wzk.icu
114.115.221.144 h121.wzk.icu
124.223.26.81 h123.wzk.icu

#127.0.1.1 localhost.localdomain VM-12-12-ubuntu
#127.0.0.1 localhost
0.0.0.0 localhost.localdomain VM-12-12-ubuntu

#::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

配置结果如下:

Hadoop-03-Hadoop集群 免密登录 超详细 3节点公网云 分发脚本 踩坑笔记 SSH免密 服务互通 集群搭建 开启ROOT_笔记_03

h123机器

0.0.0.0 h123.wzk.icu
114.115.221.144 h121.wzk.icu
101.35.209.96 h122.wzk.icu

0.0.0.0 localhost.localdomain VM-4-5-ubuntu
#127.0.0.1 localhost

# ::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

Hadoop-03-Hadoop集群 免密登录 超详细 3节点公网云 分发脚本 踩坑笔记 SSH免密 服务互通 集群搭建 开启ROOT_java_04

开启ROOT

如果你的账户不是ROOT,那你需要过一下这章节。
如果你是ROOT,那请略过!!!

ROOT密码

sudo passwd root
  • 1.

输入密码,两次确认。

开启SSH

sudo vim /etc/ssh/sshd_config
  • 1.

编辑如下内容,请确保都有:

PasswordAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PermitRootLogin yes
  • 1.
  • 2.
  • 3.
  • 4.

退出保存,重启SSH服务

sudo systemctl restart ssh
  • 1.

SSH Key

生成SSH秘钥

# 121机器上
ssh-keygen -t rsa -b 4096 -C "h121.wzk.icu"
# 122机器上
ssh-keygen -t rsa -b 4096 -C "h122.wzk.icu"
# 123机器上
ssh-keygen -t rsa -b 4096 -C "h123.wzk.icu"
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

一路回车就可以,什么都不需要设置。

Hadoop-03-Hadoop集群 免密登录 超详细 3节点公网云 分发脚本 踩坑笔记 SSH免密 服务互通 集群搭建 开启ROOT_ssh_05

免密登录

配置免密

需要在三台机器上,都执行一次如下的命令。

ssh-copy-id root@h121.wzk.icu
ssh-copy-id root@h122.wzk.icu
ssh-copy-id root@h123.wzk.icu
  • 1.
  • 2.
  • 3.

此时会要求你输入登录机器的密码,输入即可。

测试免密

ssh h122.wzk.icu
  • 1.

如果是可以正常登录,那表示你已经成功配置,恭喜你!

Hadoop-03-Hadoop集群 免密登录 超详细 3节点公网云 分发脚本 踩坑笔记 SSH免密 服务互通 集群搭建 开启ROOT_大数据_06

查看免密

所有免密的 Key 都会放在这里:

~/.ssh/authorized_keys
  • 1.

移除免密

对当中的内容编辑即可,删除对应的,免密就会失效。

vim  ~/.ssh/authorized_keys
  • 1.

分发脚本

安装工具

这里选择使用 rsync

sudo apt install rsync
  • 1.

编写脚本

/usr/local/bin 下的命令 可以全局执行

cd /usr/local/bin
sudo vim rsync-script
  • 1.
  • 2.

写入如下内容,你可能需要稍稍做一些修改,修改成你的,仅供参考:

#!/bin/bash
#1 获取命令输入参数的个数,如果个数为0,直接退出命令
paramnum=$#
if((paramnum==0));then
        echo no params;
        exit;
fi
#2 根据传入参数获取文件名称
p1=$1
file_name=`basename $p1`
echo fname=$file_name
#3 获取输入参数的绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取用户名称
user=`whoami`
#5 循环执行rsync
for((host=121; host<124; host++)); do
        echo ------------------- h$host.wzk.icu --------------
        rsync -rvl $pdir/$file_name $user@h$host.wzk.icu:$pdir
done
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

执行权限

sudo chmod 777 rsync-script
  • 1.

Hadoop-03-Hadoop集群 免密登录 超详细 3节点公网云 分发脚本 踩坑笔记 SSH免密 服务互通 集群搭建 开启ROOT_大数据_07

测试脚本

写了一个文本文件,测试脚本是否正常。

1.txt
helloworld!
  • 1.
  • 2.

Hadoop-03-Hadoop集群 免密登录 超详细 3节点公网云 分发脚本 踩坑笔记 SSH免密 服务互通 集群搭建 开启ROOT_java_08


执行脚本:

rsync-script /opt/wzk
  • 1.

Hadoop-03-Hadoop集群 免密登录 超详细 3节点公网云 分发脚本 踩坑笔记 SSH免密 服务互通 集群搭建 开启ROOT_hadoop_09