配置Hadoop集群
Hadoop的运行模式
本地运行:在一台单机上运行,没有分布式文件系统,直接读写本地操作系统的文件系统。特点:不对配置文件进行修改,Hadoop 不会启动
伪分布式:也是在一台单机上运行,但用不同的 Java 进程模仿分布式运行中的各类节点,特点:Hadoop 启动的这些守护进程都在同一台机器上运行,是相互独立的 Java 进程。
完全分布式:数据存储在HDFS,多台服务器工作,企业中大量使用
要在本地去模拟这个真实的场景功能,我们需要做好如下的准备:
1)准备3台客户机(关闭防火墙、静态IP、主机名称)
2)安装javaJDK,安装Hadoop,并配置环境变量
3)配置集群
4)单点启动
5)配置ssh
6)群起并测试集群
现在我们来看看按照JDK和Hadoop并配置环境变量的工作。有两种思路:
1. 每台机器都去手动安装一次(上传jar包再去解压)。
2. 把一台机器装好,把module 拷贝到其他的机器。这样就不需要省略了上传和解压的工作了。
scp命令
基本语法
作用:可实现服务器与服务器之间的数据拷贝
scp -r $pdir/$fname $user@$host:$pdir/$fname
说明:
(1)-r: 表示递归拷贝。如果要拷贝的是文件夹,就把文件夹下的内容都拷贝
(2)$pdir/$fname: 要拷贝的文件路径/名称
(3)$user@host:$pdir/$fname: 目的地用户@主机:目的地路径/名称
注意:要输入相应的账号和密码!
实例
背景
假设你已经:
(1)在两台虚拟机(hadoop100、hadoop101)都已经创建好了/opt/module,/opt/software两个目录
(2)在hadoop100这台机器中已经安装了jdk和hadoop。
目标
现在的目标是:要把hadoop100上的jdk文件夹拷贝到hadoop101中的相同的目录下。

操作
我们一起看具体操作:
1. 启动虚拟机。把hadoop100和hadoop101都启动。
2. 进入到hadoop100
3. 命令:
scp -r /opt/module/jdk1.8.0_212/ root@hadoop101:/opt/module/jdk1.8.0_212/
三.scp命令———拓展使用
1、拉取。在hadoop101上,拉取hadoop100机器上的内容(如下左图)。

1、推送。在hadoop100机器上,把文件推送到hadoop101机器上(如上右图)。
2、搭桥。在hadoop101机器上,把hadoop100的文件传递到hadoop102上

任务1:
在hadoop102上,将hadoop101中/opt/module/hadoop-3.1.3目录拷贝到hadoop102上。
分析:使用scp进行拉取
操作:
先登录到hadoop2
使用命令:
scp -r root@hadoop101:/opt/module/hadoop-3.1.3 /opt/module/
任务2:
在hadoop101上操作,将hadoop100中/opt/module目录下所有目录拷贝到hadoop102上。
分析:使用scp进行搭桥
操作:
登录hadoop101
使用命令:
scp -r root@hadoop100:/opt/module/* root@hadoop102:/opt/module
rsync
主要用于备份和镜像
rsync和scp的区别是rsync只对差异文件做更新,而scp是把所有文件都复制过去。故rsync效率更高

1. 基本语法
rsync -av $pdir/$fname $user@$host:$pdir/$fname
语法说明:
(1)-a:归档拷贝,尽可能让拷贝的文件之间保持一致。
(2)-v:显示拷贝过程。
(3)$pdir/$fname: 要拷贝的文件路径/名称
(4)$user@host:$pdir/$fname: 目的地用户@主机:目的地路径/名称
实操:
rsync -av /opt/conf/ root@hadoop101:/opt/conf
第一步:在两台机器上准备文件。
在hadoop100的/opt/conf/ 新建1.txt, 2.txt, 3.txt, 4.txt
做一次同步。
[root@hadoop100 ]$ rsync -av /opt/conf/ root@hadoop101:/opt/conf/
它会在hadoop101上创建conf目录。
第二步:在hadoop100中,添加新文件,5.txt, 6.txt, 7.txt
第三步:使用命令把新添加的文件同步到hadoop101中。
命令如下:
[root@hadoop100 ]$ rsync -av /opt/conf/ root@hadoop101:/opt/conf/
请特别注意目录最后的尾/。有/表示拷贝这文件夹下的内容,没有/表示会拷贝这个文件夹
xsync脚本集群之间的同步
在root目录建立bin文件夹,在bin内建立xsync文件,并在文件中输入脚本
chmod +x xsync
2.步骤
(1)在/root/bin目录下创建xsync文件。在这个
(2)在该文件中编写如下代码。这个部分的代码不需要会写,能看懂,了解即可。
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in hadoop100 hadoop101 hadoop102
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
(3)修改执行权限。此时,我们去查看文件,可以看到它的颜色是灰色的,不具备执行权限(如下图)

接下来要通过命令: chmod +x xsync(或者是chmod 777 xsync)
重新查看它的颜色,它现在已经变成执行的脚本了(如下图)。

(4)测试使用。把这个脚本同步到其他的机器中。
[root@hadoop100 ~]$ xsync /root/bin/
[课后小答]
scp的作用是什么?
如果当前在A机器上,要把A机器上的/etc/tst下的所有内容拷贝到B机器上的/etc/tst目录下,应该的命令应该怎么写?
rsync与scp的区别是什么?
答案:
1.实现服务器和服务器之间数据拷贝
2.scp -r /etc/tst/B机器的用户名@主机名:/etc/tst
3.rsync和scp区别是:rsync只对差异文件做更新,而scp是把所有文件都复制过去,所以它的效果更高一些。
相关文章:
配置Hadoop集群
Hadoop的运行模式 本地运行:在一台单机上运行,没有分布式文件系统,直接读写本地操作系统的文件系统。特点:不对配置文件进行修改,Hadoop 不会启动 伪分布式:也是在一台单机上运行,但用不同的 …...
模型微调-基于LLaMA-Factory进行微调的一个简单案例
模型微调-基于LLaMA-Factory进行微调的一个简单案例 1. 租用云计算资源2. 拉取 LLaMa-Factory3. 安装依赖环境4. 启动 LLaMa-Factory 界面5. 从 Huggingface 下载模型6. 模型验证7. 模型微调 1. 租用云计算资源 以下示例基于 AutoDL 云计算资源。 在云计算平台选择可用的云计…...
设置重定向不缓存
response.setHeader(“Cache-Control”, “no-cache, no-store, must-revalidate”); response.setHeader(“Pragma”, “no-cache”);response.setHeader(“Expires”, “0”);response.sendRedirect(newURL); response.setContentType(“text/html;charsetUTF-8”); PrintWr…...
java-算法基础优化
一、ACM风格输入输出(高效,替换原有的输入输出流) 1.推荐原因:(内存托管) 对于原本的Scanner读取流,只能根据行来读取数据,而BufferredReader读取信息可以直接读取整个文件…...
⚡ 回声谷即时通讯系统
基于SpringBootVue3的实时通信解决方案 🌟 核心特性 #mermaid-svg-uxEwEcjlUVI6Tjjf {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-uxEwEcjlUVI6Tjjf .error-icon{fill:#552222;}#mermaid-svg-uxEwEcjl…...
《 PyQt5》—— 创建 Python GUI(图形用户界面)
文章目录 PyQt5安装基本概念进行配置配置QtDesigner配置PyUIC配置Pyrcc 使用PyQt5使用如何使用ui文件 PyQt5 PyQt5 是一个用于创建 Python GUI(图形用户界面)应用程序的强大工具包,它是 Qt 应用程序框架的 Python 绑定。Qt 是一个跨平台的 C…...
Python图形编程之EasyGUI: indexbox的用法
目录<<上一章:ynbox用法详解 下一章:boolbox用法详解 >> # 1 Python图形编程之EasyGUI: indexbox的用法 1.1 基本用法 indexbox提供用户一个选择不同选项的功能,不同的选项由按钮来表示,提供类似功能的还有choicebox…...
vue+dhtmlx-gantt 实现甘特图-快速入门【甘特图】
文章目录 一、前言二、使用说明2.1 引入依赖2.2 引入组件2.3 引入dhtmlx-gantt2.4 甘特图数据配置2.5 初始化配置 三、代码示例3.1 Vue2完整示例3.2 Vue3 完整示例 四、效果图 一、前言 dhtmlxGantt 是一款功能强大的甘特图组件,支持 Vue 3 集成。它提供了丰富的功…...
游戏引擎学习第147天
仓库:https://gitee.com/mrxiao_com/2d_game_3 上一集回顾 具体来说,我们通过隐式计算来解决问题,而不是像数字微分分析器那样逐步增加数据。我们已经涵盖了这个部分,并计划继续处理音量问题。不过,实际上我们现在不需要继续处理…...
Python自动点击器开发教程 - 支持键盘连按和鼠标连点
Python自动点击器开发教程 - 支持键盘连按和鼠标连点 这里写目录标题 Python自动点击器开发教程 - 支持键盘连按和鼠标连点项目介绍开发环境安装依赖核心代码解析1. 键盘模拟实现2. 鼠标点击实现 开发要点使用说明注意事项优化建议打包发布项目源码开发心得参考资料成品工具 项…...
C++ 链表List使用与实现:拷贝交换与高效迭代器细致讲解
目录 list的使用: 构造与赋值 元素访问 修改操作 容量查询 链表特有操作 拼接(Splice) C11 新增方法 注意: stl_list的模拟实现: 一、链表节点设计的艺术 1.1 结构体 vs 类的选择 二、迭代器实现的精髓 2…...
Manus联创澄清:我们并未使用MCP技术
摘要 近日,Manus联创针对外界关于其产品可能涉及“沙盒越狱”的疑问进行了正式回应。公司明确表示并未使用Anthropic的MCP(模型上下文协议)技术,并强调MCP是一个旨在标准化应用程序与大型语言模型(LLM)之间…...
ACE学习2——write transaction
用于处理缓存行的数据更新到主内存(main memory)的操作。 以下是用于更新主内存的几种事务类型: WriteBack: WriteBack事务用于将cache中的dirty态的cacheline写回主存,以释放cache中的cacheline,用于存…...
c++ 返回引用
在C中,返回引用是一种常见的做法,特别是在需要返回大型对象时,以避免不必要的复制,从而提高程序的效率。返回引用通常有两种情况:返回局部变量的引用和返回成员变量的引用。下面分别讨论这两种情况以及如何安全地实现它…...
Docker篇
1.docker环境搭建: 1.1软件仓库的配置rhel9: #cd/etc/yum.repos.d #vim docker.repo [docker] namedocker-ce baseurlhttps://mirrors.aliyun.com/docker-ce/linux/rhel/9/x86_64/stable gpgcheck0 1.2安装docker并且启动服务 yum install -y dock…...
TypeScript基础类型详解:与JavaScript的对比与核心价值
TypeScript作为JavaScript的超集,最大的特性是引入了静态类型系统。本文将基于TypeScript官网内容,解析其基础类型设计,并与ES/JavaScript进行对比,揭示类型系统的实际价值。 一、基础类型全景图 1. 原生类型的强化 JavaScript原…...
Linux《基础开发工具(中)》
在之前的Linux《基础开发工具(上)》当中已经了解了Linux当中到的两大基础的开发工具yum与vim;了解了在Linux当中如何进行软件的下载以及实现的基本原理、知道了编辑器vim的基本使用方式,那么接下来在本篇当中将接下去继续来了解另…...
CPU 负载 和 CPU利用率 的区别
简单记录下 top 命令中,CPU利用率核CPU负载的概念, (1)CPU利用率:指在一段时间内 表示 CPU 实际工作时间占总时间的百分比。表示正在执行进程的时间比例,包括用户空间和内核空间程序的执行时间。通常包含以…...
vue源码(二)
文章目录 数据代理示例 初始化组件实例计算属性基本用法ComputedReflmpl类计算属性的创建 Vue3的特点及优势声明式框架采用虚拟DOM区分编译时和进行时 Vue3设计思想 数据代理 示例 以下代码主要是有一个msg的响应式数据,点击按钮后修改msg的内容。根据代码可知有两…...
Ubuntu切换lowlatency内核
文章目录 一. 前言二. 开发环境三. 具体操作 一. 前言 低延迟内核(Lowlatency Kernel) 旨在为需要低延迟响应的应用程序设计的内核版本。Linux-lowlatency特别适合音频处理、实时计算、游戏和其他需要及时响应的实时任务。其主要特点是优化了中断处理、调…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...
