Hadoop系列(二):完全分布式搭建(腾讯云服务器+阿里云服务器)

本文详细介绍了如何在腾讯云和阿里云服务器上搭建完全分布式Hadoop集群,涵盖集群简介、部署方式、环境准备、用户创建、SSH免密登录、Java环境配置、Hadoop安装与配置、启动集群、页面访问和使用体验,以及注意事项总结。重点在于集群环境的准备和配置,以及实际操作中的问题解决。
摘要由CSDN通过智能技术生成

Hadoop系列文章

Hadoop系列 (一):在CentOS中搭建hadoop环境(伪分布式)

Hadoop系列 (二):完全分布式搭建(腾讯云服务器+阿里云服务器)

Hadoop系列 (三):HDFS详细介绍

Hadoop系列 (四):Yarn详细介绍

Hadoop系列 (五):MapReduce详细介绍

Hadoop系列 (六):Spark搭建

Hadoop系列 (七):ZooKeeper详细介绍

Hive系列文章

Hive系列 (一):Hive搭建

Hive系列 (二):Hive基础知识

Hive系列 (三):开窗函数详解

Hive系列 (四):自定义函数UDF UDTF UDAF

Hive系列 (五):Hive数据类型

Hive系列 (六):Hive数据类型转换

Hive系列 (七):Hive常用函数

Hive系列 (八):Hive中的explode 与 lateral view

Hive系列 (九):Hive数据存储

Hive系列 (十):Hive调优

一. 集群简介

  1. HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。
  2. HDFS集群负责海量数据的存储,集群中的角色主要有:NameNode、DataNode、SecondaryNameNode
  3. YARN集群负责海量数据运算时的资源调度,集群中的角色主要有:ResourceManager、NodeManager
  4. mapreduce是一个分布式运算编程框架,是应用程序开发包,由用户按照编程规范进行程序开发,后打包运行在HDFS集群上,并且受到YARN集群的资源调度管理。

二. 集群部署方式

2.1 Standalone mode(独立模式)

​ 独立模式又称为单机模式,仅1个机器运行1个java进程,主要用于调试。

2.2 Pseudo-Distributed mode(伪分布式模式)

​ 伪分布模式也是在1个机器上运行HDFS的NameNode和DataNode、YARN的ResourceManger和NodeManager,但分别启动单独的java进程,主要用于调试。

2.3 Cluster mode(群集模式)-单节点模式-高可用HA模式

​ 集群模式主要用于生产环境部署。会使用N台主机组成一个Hadoop集群。这种部署模式下,主节点和从节点会分开部署在不同的机器上。

三. 集群环境准备

​ 集群模式主要用于生产环境部署,需要多台主机,并且这些主机之间可以相互访问,现在使用腾讯云服务器和阿里云服务器2台主机为例进行搭建进行搭建。

3.1 服务器信息如下:

​ 腾讯云服务器(master):2核4G,CentOS 8.3

​ 阿里云服务器(slave1):1核2G, CentOS 8.2

3.2 集群规划如下:

主机组件 master(外网ip:101.36.9.202 内网IP:10.0.8.33) slave1(外网IP:39.136.77.212 内网IP:172.12.227.201)
NameNode ×
Secondary Namenode ×
DataNode
ResourceManager ×
NodeManager

3.3 主机hosts文件配置(重要)

在腾讯云服务器上做如下操作:

调整服务器主机名为master:

[root@V_TENS_EOS ~]# hostnamectl set-hostname master

修改hosts文件 vim /etc/hosts

# 注释掉127.0.0.1 和 ::1 的ipv6地址
# 127.0.0.1 master master 
127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost4.localdomain4 localhost4

#::1 master master 
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6

#新增,这里很重要,内外网地址,弄了很久才搞明白要这样配置,不然无法形成主机回路,会出现slave1无法访问master某些端口,或者本地浏览器无法访问master端口
10.0.8.33 master #master 内网地址
39.136.77.212 slave1 # slave1 外网地址

同样调整slave1节点配置:

[root@V_MNSTE ~]# hostnamectl set-hostname slave1

修改hosts文件 vim /etc/hosts

#注释掉127.0.0.1 和::1 ipv6地址
#::1    localhost       localhost.localdomain   localhost6      localhost6.localdomain6
#127.0.0.1      localhost       localhost

#新增
101.36.9.202    master #master 外网地址
172.12.227.201  slave1 # slave1 内网地址

保存,断开,重新连接,查看主机名生效

#master
[root@master ~]# cd

#slave1
[root@slave1 ~]# cd

四. 用户创建及防火墙设置

4.1 创建hadoop用户

在master和slave1上均执行以下操作

# 新增用户
[root@master ~]# useradd hadoop
# 设置密码
[root@master ~]# passwd hadoop

编辑 sudo vim /etc/sudoers 给hadoop用户赋予sudo权限:

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL	#在root这行下面新增
hadoop  ALL=(ALL)       ALL

保存,退出,切换hadoop用户登录。

4.2 防火墙设置

云服务平台自带防火墙设置,我再这里没有设置centos8系统防火墙。

以下是我的腾讯云服务器(master)防火墙设置,slave1同样设置
云服务器防火墙设置

五. SSH免密登录设置

注意:从本步骤开始,后面所有操作均使用hadoop用户

5.1 ssh密钥生成

分别在master 和 slave1 两台机器的用户目录下生成公钥和私钥,提示输入可以直接回车

#master 机器:
[hadoop@master ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): 
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:HfIkWBAJNCHFKLWuYJW/jWbSMRx2GdfSfV/vnVOL+DI hadoop@master
The key's randomart image is:
+---[RSA 2048]----+
| .o=*oo=..o .    |
|. .oo..o+. o . ..|
| ..o o.oo +   . +|
| .. + o  * .    +|
|...  =  S o . ..=|
|o.  . *    . . +o|
|.  . * .    .   .|
|    +      E .   |
|            o    |
+----[SHA256]-----+
[hadoop@master ~]$ cd .ssh
[hadoop@master .ssh]$ ll
total 8
-rw------- 1 hadoop root 1675 Jun 24 16:14 id_rsa
-rw-r--r-- 1 hadoop root  395 Jun 24 16:14 id_rsa.pub

#slave1机器
[hadoop@slave1 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa): 
Created directory '/home/hadoop/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:uqQhC77i1TU/XOU8fB8fxboS3tCllIKNdL/NuGxyfRc hadoop@slave1
The key's randomart image is:
+---[RSA 3072]----+
|          . .    |
|         . = . o |
|          o o.+ +|
|            =+ O.|
|       oS  .o=*Eo|
|    . ..+ .. =o+*|
|. ....o  +  + B *|
|o..o + .  .  =  o|
|o+o . .          |
+----[SHA256]-----+
[hadoop@slave1 .ssh]$ ll
total 8
-rw------- 1 hadoop hadoop 2602 Jun 24 16:15 id_rsa
-rw-r--r-- 1 hadoop hadoop  567 Jun 24 16:15 id_rsa.pub

5.2 写入公钥

# master上执行
[hadoop@slave1 .ssh]$ cat id_rsa.pub >> authorized_keys 

# 在slave1上执行
[hadoop@master .ssh]$ cat id_rsa.pub >> authorized_keys 

5.3 赋权

# 在master上执行
[hadoop@master ~]$ chmod 700 .ssh
[hadoop@master ~]$ chmod 600 .ssh/authorized_keys 

#在slave1上执行
[hadoop@slave1 ~]$ chmod 700 .ssh
[hadoop@slave1 ~]$ chmod 600 .ssh/authorized_keys 

5.4 交换公钥

执行下面命令,两台机器上生成的公钥,相互发送到对方机器,完成公钥复制。

# 在master上执行
[hadoop@master ~]$ ssh-copy-id hadoop@slave1

# 在slave1上执行
[hadoop@slave1 ~]$ ssh-copy-id hadoop@master

成功提示如下:

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值