0

0

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

絕刀狂花

絕刀狂花

发布时间:2025-07-17 10:48:13

|

1048人浏览过

|

来源于php中文网

原创

大家好,又见面了,我是你们的朋友全栈君。

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)系列文章传送门

这个系列文章传送门: Hadoop入门(一)——CentOS7下载+VM上安装(手动分区)图文步骤详解(2021) Hadoop入门(二)——VMware虚拟网络设置+Windows10的IP地址配置+CentOS静态IP设置(图文详解步骤2021) Hadoop入门(三)——XSHELL7远程访问工具+XFTP7文件传输(图文步骤详解2021) Hadoop入门(四)——模板虚拟机环境准备(图文步骤详解2021) Hadoop入门(五)——Hadoop集群搭建-克隆三台虚拟机(图文步骤详解2021) Hadoop入门(六)——JDK安装(图文步骤详解2021) Hadoop入门(七)——Hadoop安装(图文详解步骤2021) Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021) Hadoop入门(九)——SSH免密登录 配置 Hadoop入门(十)——集群配置(图文详解步骤2021) Hadoop入门(十一)——集群崩溃的处理方法(图文详解步骤2021) Hadoop入门(十二)——配置历史服务器及日志的聚集(图文详解步骤2021) Hadoop入门(十三)——集群常用知识(面试题)与技巧总结 Hadoop入门(十四)——集群时间同步(图文详解步骤2021) Hadoop入门(十五)——集群常见错误及解决方案

文章目录Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)系列文章传送门 Hadoop 运行模式本地运行模式 (官方 WordCount案例 ) 1 ) 创建在 hadoop-3.1.3 文件下面创建一个 wcinput 文件夹2 ) 在 wcinput 文件下创建一个 word.txt 文件3 ) 编辑 word.txt 文件4 ) 回到 Hadoop 目录/opt/module/hadoop-3.1.35 ) 执行程序6 ) 查看结果完全分布式 运行模式 (重点) 虚拟机准备编写集群分发脚本 xsync 1 )scp (secure copy ) 安全 拷贝 (a)在 hadoop102 上,将 hadoop102 中/opt/module/jdk1.8.0_212 目录拷贝到hadoop103 上。(b)在 hadoop103 上,将 hadoop102 中/opt/module/hadoop-3.1.3 目录拷贝到hadoop103 上。(c)在 hadoop103 上操作,将 hadoop102 中/opt/module 目录下所有目录拷贝到hadoop104 上。题外话——小Tip 2 )rsync 远程**同步**工具 (a)删除 hadoop103 中/opt/module/hadoop-3.1.3/wcinput(b)同步 hadoop102 中的/opt/module/hadoop-3.1.3 到 hadoop1033 )xsync 集群分发 脚本 (a)在`/home/leokadia/bin` 目录下创建 xsync 文件(b)修改脚本 xsync 具有执行权限(c)测试脚本(d)将脚本复制到/bin 中,以便全局调用(e)同步环境变量配置(root 所有者)注意:让环境变量生效Hadoop 运行模式

1)Hadoop 官方网站:http://hadoop.apache.org/

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

2)Hadoop 运行模式包括: 本地模式、 伪分布式模式以及 完全分布式模式。

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
本地模式:单机运行,只是用来演示一下官方案例。生产环境不用。伪分布式模式:也是单机运行,但是具备 Hadoop 集群的所有功能,一台服务器模 拟一个分布式的环境。个别缺钱的公司用来测试,生产环境不用。完全分布式模式:多台服务器组成分布式环境。生产环境使用。
Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
本地运行模式 (官方 WordCount案例 )1 ) 创建在 hadoop-3.1.3 文件下面创建一个 wcinput 文件夹

[leokadia@hadoop102 hadoop-3.1.3]$ mkdir wcinput

2 ) 在 wcinput 文件下创建一个 word.txt 文件

[leokadia@hadoop102 hadoop-3.1.3]$ cd wcinput

3 ) 编辑 word.txt 文件

[leokadia@hadoop102 wcinput]$ vim word.txt ➢ 在文件中随便输入一些内容 ➢ 保存退出::wq

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
4 ) 回到 Hadoop 目录/opt/module/hadoop-3.1.3

[leokadia@hadoop102 ~]$ cd /opt/module/hadoop-3.1.3

5 ) 执行程序

[leokadia@hadoop102 hadoop-3.1.3]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput wcoutput

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
6 ) 查看结果

[leokadia@hadoop102 hadoop-3.1.3]$ cat wcoutput/part-r-00000 看到如下结果:

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">19-11HFUT,1Hadoop1Leokadia1She1a1class1computer1experiment1in1innovation1is3learning1sophomore1whose1</code>
Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
完全分布式 运行模式 (重点)

分析: 1)准备 3 台客户机(关闭防火墙、静态 IP、主机名称) 2)安装 JDK 3)配置环境变量 4)安装 Hadoop 5)配置环境变量

6)配置集群 7)单点启动 8)配置 ssh 9)群起并测试集群

步骤1,2,3,4,5之前我们均已经在102上搞定了

虚拟机准备

详见前几篇文章

编写集群分发脚本 xsync1 )scp (secure copy ) 安全 拷贝

(1)scp 定义 scp 可以实现服务器与服务器之间的数据拷贝。(from server1 to server2) (2)基本语法

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

(3)案例实操

注:前面完全按我来的这部分不需要做,之前103,104克隆的时候就存在了

(a)在 hadoop102 上,将 hadoop102 中/opt/module/jdk1.8.0_212 目录拷贝到hadoop103 上。

[leokadia@hadoop102 ~]$ scp -r /opt/module/jdk1.8.0_212 leokadia@hadoop103:/opt/module

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

输入yes 然后输入hadoop103的密码: 然后就开始拷贝了,经历一大串类似这样的

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

在hadoop103上即可看到jdk拷贝成功

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
(b)在 hadoop103 上,将 hadoop102 中/opt/module/hadoop-3.1.3 目录拷贝到hadoop103 上。

[leokadia@hadoop103 ~]$ scp -r leokadia@hadoop102:/opt/module/hadoop-3.1.3 /opt/module/

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

可以看到拷贝成功

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
(c)在 hadoop103 上操作,将 hadoop102 中/opt/module 目录下所有目录拷贝到hadoop104 上。

[leokadia@hadoop103 opt]$ scp -r leokadia@hadoop102:/opt/module/* leokadia@hadoop104:/opt/module 过程同理

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

然后他会让你输入hadoop104的密码,输入后即可拷贝成功

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

不放心的话可以在hadoop104中验证一下

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
题外话——小Tip

由于博主之前为每台运行虚拟机预留的主机RAM( R )比较大 (不要喷,博主电脑是在转计算机之前瞎买的,比较垃圾) 因此同时开启三台虚拟机的时候,他会报出这样的错误:物理内存不足,无法使用配置的设置开启虚拟机

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

博主寻找过许多解决办法,最终找到一个最方便(智障)的方法供大家参考: 点击“编辑”———“首选项”,在弹出的对话框中选择左侧的“内存”,然后在最右侧选择“允许交换大部分虚拟机内存”即可,如下图所示

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
2 )rsync 远程同步工具

rsync 主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。 rsync 和 scp 区别:用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更 新。scp 是把所有文件都复制过去。

(1)基本语法

Favird No-Code Tools
Favird No-Code Tools

无代码工具的聚合器

下载
Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

(2)案例实操

(a)删除 hadoop103 中/opt/module/hadoop-3.1.3/wcinput

[leokadia@hadoop103 hadoop-3.1.3]$ rm -rf wcinput/

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
(b)同步 hadoop102 中的/opt/module/hadoop-3.1.3 到 hadoop103

希望将 hadoop102 中的hadoop-3.1.3 到 hadoop103 看是所有的内容都拷贝,还是只拷贝差异性内容

[leokadia@hadoop102 module]$ rsync -av hadoop-3.1.3/ leokadia@hadoop103:/opt/module/hadoop-3.1.3/

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

同步完成

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

在hadoop103中验证:同步成功

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
3 )xsync 集群分发 脚本

(1)需求:循环复制文件到所有节点的相同目录下 在家目录下创建一个文件,希望写一个脚本,一执行这个命令,a.txt就可以分发到相同的路径 (2)需求分析: (a)rsync 命令原始拷贝: rsync -av /opt/module leokadia@hadoop103:/opt/ (b)期望脚本: xsync 要同步的文件名称 (c)期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径) [leokadia@hadoop102 ~] echo PATH 查看 全局环境变量的路径

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/jdk1.8.0_212/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/home/leokadia/.local/bin:/home/leokadia/bin</code>
Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

想在/home/leokadia/bin目录下将xsync 集群分发 脚本 放入,即可在全局使用这个脚本了 (其实也可以在家目录下创建这个脚本,在把这个脚本的路径放入全局变量环境) (3)脚本实现

(a)在/home/leokadia/bin 目录下创建 xsync 文件

[leokadia@hadoop102 opt] cd /home/leokadia [leokadia@hadoop102 ~] mkdir bin

[leokadia@hadoop102 ~] cd bin [leokadia@hadoop102 bin] vim xsync

在该文件中编写如下代码

代码语言:javascript代码运行次数:0运行复制
<code class="javascript">#!/bin/bash  #1. 判断参数个数 # 判断参数是否小于1if [ $# -lt 1 ] then     echo Not Enough Arguement!     exit; fi #2. 遍历集群所有机器 # 对102,103,104都进行分发for host in hadoop102 hadoop103 hadoop104 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</code>
Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
(b)修改脚本 xsync 具有执行权限

[leokadia@hadoop102 bin]$ chmod +x xsync

(c)测试脚本

[leokadia@hadoop102 ~]$ xsync /home/leokadia/bin

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

连输几次密码

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

在hadoop103,hadoop104上验证,发现脚本传输成功

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
(d)将脚本复制到/bin 中,以便全局调用

[leokadia@hadoop102 bin]$ sudo cp xsync /bin/

还记得之前我们hadoop103,hadoop104都没有配置hadoop和jdk的环境变量吗? 看下hadoop104目前的环境变量里的情况

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

发现确实没有配置

这个脚本的用处来了! 我们用这个脚本分发环境变量

(e)同步环境变量配置(root 所有者)

我们先用这条命令试一下: [leokadia@hadoop102 ~]$ xsync /etc/profile.d/my_env.sh

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

查看hadoop103/104中的,发现根本没有my_env.sh文件

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

那我们加sudo试一下,发现根本找不到命令

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

为啥呢? 我加了sudo相当于我是root用户,但目前我现在脚本在家目录bin目录下,root账号使用不了这个路径。 那我们就加上这个绝对路径呗! 这次一定成!

[leokadia@hadoop102 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh 注意:如果用了 sudo,那么 xsync 一定要给它的路径补全。

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

在hadoop103,hadoop104下验证一下: [leokadia@hadoop103 bin]$ sudo vim /etc/profile.d/my_env.sh

Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]
Hadoop入门(八)——本地运行模式+完全分布模式案例详解,实现WordCount和集群分发脚本xsync快速配置环境变量 (图文详解步骤2021)[通俗易懂]

成功!

注意:让环境变量生效

[leokadia@hadoop103 bin] source /etc/profile [leokadia@hadoop104 bin] source /etc/profile

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/136969.html原文链接:https://javaforall.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
什么是分布式
什么是分布式

分布式是一种计算和数据处理的方式,将计算任务或数据分散到多个计算机或节点中进行处理。本专题为大家提供分布式相关的文章、下载、课程内容,供大家免费下载体验。

407

2023.08.11

分布式和微服务的区别
分布式和微服务的区别

分布式和微服务的区别在定义和概念、设计思想、粒度和复杂性、服务边界和自治性、技术栈和部署方式等。本专题为大家提供分布式和微服务相关的文章、下载、课程内容,供大家免费下载体验。

251

2023.10.07

全局变量怎么定义
全局变量怎么定义

本专题整合了全局变量相关内容,阅读专题下面的文章了解更多详细内容。

93

2025.09.18

python 全局变量
python 全局变量

本专题整合了python中全局变量定义相关教程,阅读专题下面的文章了解更多详细内容。

106

2025.09.18

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

443

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

605

2023.08.10

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

443

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

605

2023.08.10

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
尚学堂Mahout视频教程
尚学堂Mahout视频教程

共18课时 | 3.3万人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号