《Hadoop入门之“集群搭建“》

《Hadoop入门之"集群搭建"》

1、VMware下载

  • 官方:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html

在这里插入图片描述

  • 下载到桌面,打开安装即可

  • VMware永久注册码:

vmware10永久激活密钥
------------------------------------------
MA491-6NL5Q-AZAM0-ZH0N2-AAJ5A
5A6F6-88247-XZH59-HL0Q6-8CD2V
HF6QX-20187-2Z391-522NH-9AELT
5F29M-48312-8ZDF9-A8A5K-2AM0Z

VMware 12 Pro 永久许可证激活密钥
------------------------------------------
5A02H-AU243-TZJ49-GTC7K-3C61N
VF5XA-FNDDJ-085GZ-4NXZ9-N20E6
UC5MR-8NE16-H81WY-R7QGV-QG2D8
ZG1WH-ATY96-H80QP-X7PEX-Y30V4
AA3E0-0VDE1-0893Z-KGZ59-QGAVF

VMware Workstation Pro 15 激活许可证
------------------------------------------
UY758-0RXEQ-M81WP-8ZM7Z-Y3HDA
VF750-4MX5Q-488DQ-9WZE9-ZY2D6
UU54R-FVD91-488PP-7NNGC-ZFAX6
YC74H-FGF92-081VZ-R5QNG-P6RY4
YC34H-6WWDK-085MQ-JYPNX-NZRA2

VMware Workstation Pro 16 激活许可证
------------------------------------------
ZF3R0-FHED2-M80TY-8QYGC-NPKYF
YF390-0HF8P-M81RQ-2DXQE-M2UT6
ZF71R-DMX85-08DQY-8YMNC-PPHV8

2、Linux镜像文件下载

  • 镜像下载地址:https://mirrors.aliyun.com/centos/7/isos/x86_64/?spm=a2c6h.25603864.0.0.1acc4511OXJ0aO
    在这里插入图片描述

3、VMware安装Linux

  • 安装参考地址:

    https://blog.csdn.net/weixin_52799373/article/details/124324077?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166149693716780366587745%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=166149693716780366587745&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-124324077-null-null.142^v42^pc_ran_alice,185^v2^control&utm_term=VMware%E5%AE%89%E8%A3%85linux&spm=1018.2226.3001.4187
    

4、虚拟机模板

4.1、ip配置

虚拟机外部
在这里插入图片描述
在这里插入图片描述


虚拟机内部

vim /etc/sysconfig/network-scripts/ifcfg-ens33 

添加:
IPADDR=192.168.20.128
GATEWAY=192.168.20.2
DNS1=192.168.20.2

在这里插入图片描述

4.2、修改主机名
vim /etc/hostname 

在这里插入图片描述

4.3、添加主机映射
vim /etc/hosts

添加:
192.168.20.128 LuckySix-master
192.168.20.129 LuckySix-slave1
192.168.20.130 LuckySix-slave2

在这里插入图片描述

Windows修改主机映射文件:

  • 进入 C:\Windows\System32\drivers\etc 路径
添加:
192.168.20.128 LuckySix-master
192.168.20.129 LuckySix-slave1
192.168.20.130 LuckySix-slave2

在这里插入图片描述

4.4、JDK、Hadoop环境

JDK镜像下载地址:https://repo.huaweicloud.com/java/jdk/11.0.1+13/

在这里插入图片描述
Hadoop镜像下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/

在这里插入图片描述

  • Xshell、xftp学生版:https://www.xshell.com/zh/free-for-home-school/

  • 有了JDK、Hadoop,开始上传Linux.

  • xshell连接===>LuckySix-master
    在这里插入图片描述

  • 点进去上传
    在这里插入图片描述

  • 上传完成
    在这里插入图片描述

  • 解压JDK、Hadoop

解压命令:
tar -zxvf jdk-11.0.2_linux-x64_bin.tar.gz 
tar -zxvf hadoop-3.3.4.tar.gz 

  • 解压完成

在这里插入图片描述

  • 配置JDK、Hadoop环境
vim /etc/profile

文件末尾添加:

#JAVA_HOME
export JAVA_HOME=/opt/hadoop3/jdk-11.0.2
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=/opt/hadoop3/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

添加完成,输入以下命令、重新加载配置文件.

source /etc/profile                        

  • 配置完成看效果
java -version
hadoop version

在这里插入图片描述

4.5、安装 epel-release

注:Extra Packages for Enterprise Linux 是为“红帽系”的操作系统提供额外的软件包,适用于 RHEL、CentOS 和 Scientific Linux。(相当于是一个软件仓库,大多数 rpm 包在官方 repository 中是找不到的)

yum install -y epel-release

在这里插入图片描述

4.6、永久关闭Linux防火墙
查看防火墙状态:
systemctl status firewalld
关闭防火墙:
systemctl stop firewalld
永久关闭防火墙(重启后扔处于关闭状态):
systemctl disable firewalld.service

5、搭建"一主双从"(集群搭建)

  • LuckySix-master
  • LuckySix-slave1
  • LuckySix-slave2

在这里插入图片描述

  • 完整克隆(链接克隆应该也可以)

在这里插入图片描述

  • 从机名字

在这里插入图片描述

  • 克隆完毕

  • 在这里插入图片描述

  • 修改从机LuckySix-slave1、LuckySix-slave2的ip、主机名

#修改ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33 
#修改主机名
vim /etc/hostname

在这里插入图片描述
在这里插入图片描述
修改完成重启看效果====>重启命令:reboot
在这里插入图片描述

6、集群分发脚本 xsync

  • 在LuckySix-master的bin目录下,创建xsync脚本文件
    在这里插入图片描述

  • 添加以下内容:

if [ $# -lt 1 ]
then
 echo Not Enough Arguement!
 exit;
fi
#2. 遍历集群所有机器
for host in LuckySix-master LuckySix-slave1 LuckySix-slave2
do
 echo ==================== $host ====================
 #3. 遍历所有目录,挨个发送
 for file in $@
 do
 #4. 判断文件是否存在
 if [ -e $file ]
 then
 #5. 获取父目录
 pdir=$(cd -P $(dirname $file); pwd)
 #6. 获取当前文件的名称
 fname=$(basename $file)
 ssh $host "mkdir -p $pdir"
 rsync -av $pdir/$fname $host:$pdir
 else
 echo $file does not exists!
 fi
 done
done

  • 授权xsync脚本文件
  • 在这里插入图片描述

6.1、xsync脚本有啥用?

小案例:

LuckySix-master主机~目录下,创建demo.txt

demo.txt

在这里插入图片描述

再通过xsync脚本,分发demo.txt文件到LuckySix-slave1 LuckySix-slave2
在这里插入图片描述

  • 查看两台从机上有没有该文件
    在这里插入图片描述

7、SSH 无密登录配置

注:三台主机,全部都要配置.这里先拿第一台:LuckySix-master做案例

  • .ssh 文件夹下(~/.ssh)的文件功能解释
  • 在这里插入图片描述
来到ssh目录
cd   /root/.ssh

生成rsa秘钥
ssh-keygen -t rsa       (输入命令后三次回车即可)

  • 成功生成rsa秘钥对
    在这里插入图片描述

  • 将公钥拷贝到要免密登录的目标机器上,也就是集群种的所有机器

执行以下三条命令:

ssh-copy-id  LuckySix-master
ssh-copy-id  LuckySix-slave1
ssh-copy-id  LuckySix-slave2

  • 还要再另外两台机器重复执行以上所有操作!!!!!!!!

  • 操作完毕后,每一台机器上查看都是这个效果、表明免密配置成功!!!!!

在这里插入图片描述

8、集群配置

  • LuckySix-master做案例!!!!所有操作都在LuckySix-master主机上,待会再同步到另外两台从机.

​ 回顾Hadoop三大核心:

  • HDFS(分布式文件存储系统)
  • YARN(资源管理器)
  • MapReduce(分布式计算程序/框架)

一、HDFS组成部分

1. Client客户端
  2. NameNode主节点
  3. SecondaryNameNode 理解为:(NameNode 的备份,属于冷备份)

二、YARN组成部分

​ ResourceManager、ApplicationMaster、nodeManager、container组成

三、MapReduce组成部分

​ 略…(进阶再学)


  • 集群部署规划
LuckySix-masterLuckySix-slave1LuckySix-slave2
HDFSNameNode、DataNodeDataNodeSecondaryNameNode、DataNode
YARNNodeManagerResourceManager、NodeManagerNodeManager
  • 修改五个核心配置文件
  1. core-site.xml
  2. hdfs-site.xml
  3. yarn-site.xml
  4. mapred-site.xml
  5. worckers
切换到hadoop的子目录下(配置文件在这里)
cd   /opt/hadoop3/hadoop-3.3.4/etc/hadoop
8.1、core-site.xml配置文件
vim  core-site.xml
  • 在标签中添加如下配置
<!-- 指定 NameNode 的地址 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://LuckySix-master:8020</value>
</property>

<!-- 指定 hadoop 数据的存储目录 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop3/hadoop-3.3.4/data</value>
</property>

在这里插入图片描述

8.2、hdfs-site.xml配置文件
vim  hdfs-site.xml
  • 在标签中添加如下配置
<!-- NameNode web 端访问地址-->
<property>
    <name>dfs.namenode.http-address</name>
    <value>LuckySix-master:9870</value>
</property>

<!-- SecondaryNameNode web 端访问地址-->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>LuckySix-slave2:9868</value>
</property>

在这里插入图片描述

8.3、yarn-site.xml配置文件
vim  yarn-site.xml
  • 在标签中添加如下配置
<!-- 指定 MR 走 shuffle -->
 <property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
 </property>
 <!-- 指定 ResourceManager 的地址-->
 <property>
 <name>yarn.resourcemanager.hostname</name>
 <value>LuckySix-slave1</value>
 </property>
 <!-- 环境变量的继承 -->
 <property>
 <name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME</value>

在这里插入图片描述

8.4、mapred-site.xml配置文件
vim  mapred-site.xml
  • 在标签中添加如下配置
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
 <property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
 </property>

在这里插入图片描述

8.5、worckers配置文件
vim  worckers
文件中添加:
LuckySix-master
LuckySix-slave1
LuckySix-slave2

在这里插入图片描述

8.6、同步所有节点配置文件

解释:将主机的5个配置文件,同步到两台从机、避免了重复配置。

xsync hadoop/

在这里插入图片描述

8.7、所有主机拍摄"快照"

解释:拍快照是为了防止后面出错,又得重新来一遍所有操作。快照可以恢复当前状态.
在这里插入图片描述

9、集群部署

(1)如果集群是第一次启动,需要在主机 (LuckySix-master)节点格式化 NameNode.

hdfs namenode -format

在这里插入图片描述

  • 看到上面这张图,说明hdfs初始化成功.
(LuckySix-master)主机启动hdfs:
sbin/start-dfs.sh


第一台从机(LuckySix-slave1)启动yarn:
sbin/start-yarn.sh 

在这里插入图片描述
跟上面部署计划一致,则说明集群部署成功!!!!!!

访问hdfs可视化界面===>http://luckysix-master:9870/

在这里插入图片描述
访问yarn可视化界面===>http://luckysix-slave1:8088/

在这里插入图片描述


看到以上两个画面,说明!!!!!!!!

你完成了Hadoop入门的"集群部署"!!!

你完成了Hadoop入门的"集群部署"!!!

你完成了Hadoop入门的"集群部署"!!!

你完成了Hadoop入门的"集群部署"!!!

你完成了Hadoop入门的"集群部署"!!!

9.1、报错解决

①安装运行Hadoop出现:ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.

②启动hadoop:JAVA_HOME is not set and could not be found.

(解决这个问题时,把export JAVA_HOME=放在文件末尾)


10、实战案例

  • 文件上传到hdfs
[root@LuckySix-slave1 hadoop-3.3.4]# hadoop fs -mkdir /input
#创建Hello.txt文本
[root@LuckySix-slave1 hadoop-3.3.4]# vim Hello.txt
#上传
[root@LuckySix-slave1 hadoop-3.3.4]# hadoop fs -put Hello.txt  /input

在这里插入图片描述

在这里插入图片描述

  • 可以尝试删除集群中某台主机,测试集群的高可用性

​ 2022/8/26 Making in LuckySix

​ 有疑问,留言呀!!!知无不言

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值