当前位置: 首页 > news >正文

Hadoop3教程(二十九):(生产调优篇)集群扩容及缩容(白名单与黑名单)

文章目录

  • (150)添加白名单
  • (151)服役新服务器
  • (152)服务器间数据均衡
  • (153)黑名单退役服务器
  • 参考文献

这一章还算是比较重要的。

(150)添加白名单

白名单:在白名单里的主机IP地址,就可以用来存储数据以及互相之间的通信等。一般企业都会配置集群白名单,防止黑客攻击。

相应的,集群里也有黑名单,下几节会讲。

在这里插入图片描述

配置白名单步骤如下,仅做了解,所以直接复制的教程内容:

1)在NameNode节点的/opt/module/hadoop-3.1.3/etc/hadoop目录下分别创建whitelist和blacklist文件

(1)创建白名单

[atguigu@hadoop102 hadoop]$ vim whitelist

在whitelist中添加如下主机名称,假如集群正常工作的节点为102 103 :

hadoop102
hadoop103

(2)创建黑名单

[atguigu@hadoop102 hadoop]$ touch blacklist

​ 暂时保持空的就可以

2)在hdfs-site.xml配置文件中增加dfs.hosts配置参数

<!-- 白名单 --><property><name>dfs.hosts</name><value>/opt/module/hadoop-3.1.3/etc/hadoop/whitelist</value>
</property><!-- 黑名单 --><property><name>dfs.hosts.exclude</name><value>/opt/module/hadoop-3.1.3/etc/hadoop/blacklist</value>
</property>

3)分发配置文件whitelist,hdfs-site.xml

[atguigu@hadoop104 hadoop]$ xsync hdfs-site.xml whitelist

4)第一次添加白名单必须重启集群,如果不是第一次,只需要刷新NameNode节点即可

[atguigu@hadoop102 hadoop-3.1.3]$ myhadoop.sh stop
[atguigu@hadoop102 hadoop-3.1.3]$ myhadoop.sh start

5)在web浏览器上查看DN,http://hadoop102:9870/dfshealth.html#tab-datanode\

在这里插入图片描述

6)在hadoop104上执行上传数据,失败

[atguigu@hadoop104 hadoop-3.1.3]$ hadoop fs -put NOTICE.txt /

7)二次修改白名单,增加hadoop104

[atguigu@hadoop102 hadoop]$ vim whitelist

修改为如下内容:

hadoop102
hadoop103
hadoop104

8)刷新NameNode

[atguigu@hadoop102 hadoop-3.1.3]$ hdfs dfsadmin -refreshNodes
Refresh nodes successful

9)在web浏览器上查看DN,http://hadoop102:9870/dfshealth.html#tab-datanode\

在这里插入图片描述

(151)服役新服务器

这个场景还是很重要的,因为随着公司业务的增长,数据量越来越大,对计算资源的需求也越来越大,所以原有的节点可能已经不能满足现有的需求,因此往往需要在原有集群基础上,动态添加新的数据节点。可以参照淘宝双11。

下面内容也仅做了解。

首先需要准备一台新的节点:

  • 在hadoop100主机上再克隆一台hadoop105主机;
  • 修改IP地址和主机名称
[root@hadoop105 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
[root@hadoop105 ~]# vim /etc/hostname
  • 拷贝hadoop102的/opt/module目录和/etc/profile.d/my_env.sh到hadoop105
[atguigu@hadoop102 opt]$ scp -r module/* atguigu@hadoop105:/opt/module/[atguigu@hadoop102 opt]$ sudo scp /etc/profile.d/my_env.sh root@hadoop105:/etc/profile.d/my_env.sh[atguigu@hadoop105 hadoop-3.1.3]$ source /etc/profile
  • 删除hadoop105上Hadoop的历史数据,data和log数据
[atguigu@hadoop105 hadoop-3.1.3]$ rm -rf data/ logs/
  • 配置hadoop102和hadoop103到hadoop105的ssh无密登录
[atguigu@hadoop102 .ssh]$ ssh-copy-id hadoop105[atguigu@hadoop103 .ssh]$ ssh-copy-id hadoop105

接下来就是把这台新节点动态加入当前集群:

直接启动DataNode,即可关联到集群(所谓的动态,要的就是不需要重启集群):

[atguigu@hadoop105 hadoop-3.1.3]$ hdfs --daemon start datanode
[atguigu@hadoop105 hadoop-3.1.3]$ yarn --daemon start nodemanager

在这里插入图片描述

如果集群没有配置白名单的话,到上一步就结束了,如图可以看到节点已经加进去了。

但是如果配置了白名单,则还需要在白名单中增加新的节点:

(1)在白名单whitelist中增加hadoop104、hadoop105,并重启集群

[atguigu@hadoop102 hadoop]$ vim whitelist

修改为如下内容:

hadoop102
hadoop103
hadoop104
hadoop105

(2)分发

[atguigu@hadoop102 hadoop]$ xsync whitelist

(3)刷新NameNode

[atguigu@hadoop102 hadoop-3.1.3]$ hdfs dfsadmin -refreshNodes
Refresh nodes successful

最后可以测试下,往105节点上上传文件:

[atguigu@hadoop105 hadoop-3.1.3]$ hadoop fs -put /opt/module/hadoop-3.1.3/LICENSE.txt /

在这里插入图片描述

可以看到,成功,且共有3个副本。

(152)服务器间数据均衡

基于数据本地性原则,如果在102上提交数据的话,102上一般会保留该数据一个副本,然后其他副本会分散在其他节点上。既然如此,那我如果经常在102上提交数据,那102上存储的数据势必会比其他节点更多,这种情况下就需要进行服务器间的数据均衡。

还有一种情况,就是新服役的节点,存储的数据量自然会比老节点要少,这时候也需要做服务器间的数据均衡。

在这里插入图片描述

开启数据均衡的命令:

[atguigu@hadoop105 hadoop-3.1.3]$ sbin/start-balancer.sh -threshold 10

对于参数10,代表的是集群中各个节点的磁盘空间利用率相差不超过10%,可根据实际情况进行调整。

停用数据均衡命令:

[atguigu@hadoop105 hadoop-3.1.3]$ sbin/stop-balancer.sh

需要注意,由于HDFS需要启动单独的Rebalance Server来执行Rebalance操作,所以尽量不要在NameNode所在节点执行start-balancer.sh,去找一台集群内比较空闲的机器,以免影响集群正常使用。

(153)黑名单退役服务器

什么是黑名单呢?

黑名单里的主机IP地址是不可以存储数据的。

相比白名单,黑名单的力度要弱一些,企业中一般是通过配置黑名单,用来动态退役服务器的(不需要重启集群)。

下面仅做了解,直接复制教程:

黑名单配置步骤如下:

1)编辑/opt/module/hadoop-3.1.3/etc/hadoop目录下的blacklist文件

[atguigu@hadoop102 hadoop] vim blacklist

添加如下主机名称(要退役的节点)

hadoop105

注意:如果白名单中没有配置,需要在hdfs-site.xml配置文件中增加dfs.hosts配置参数

<!-- 黑名单 --><property><name>dfs.hosts.exclude</name><value>/opt/module/hadoop-3.1.3/etc/hadoop/blacklist</value></property>

2)分发配置文件blacklist,hdfs-site.xml

[atguigu@hadoop104 hadoop]$ xsync hdfs-site.xml blacklist

3)第一次添加黑名单必须重启集群,不是第一次,只需要刷新NameNode节点即可

[atguigu@hadoop102 hadoop-3.1.3]$ hdfs dfsadmin -refreshNodesRefresh nodes successful

4)检查Web浏览器,退役节点的状态为decommission in progress(退役中),说明数据节点正在复制块到其他节点

在这里插入图片描述

在这里插入图片描述

5)等待退役节点状态为decommissioned(所有块已经复制完成),停止该节点及节点资源管理器。注意: 如果副本数是3,服役的节点小于等于3,是不能退役成功的,需要修改副本数后才能退役

在这里插入图片描述

[atguigu@hadoop105 hadoop-3.1.3]$ hdfs --daemon stop datanode
stopping datanode[atguigu@hadoop105 hadoop-3.1.3]$ yarn --daemon stop nodemanager
stopping nodemanager

6)如果数据不均衡,可以用命令实现集群的再平衡

[atguigu@hadoop102 hadoop-3.1.3]$ sbin/start-balancer.sh -threshold 10

参考文献

  1. 【尚硅谷大数据Hadoop教程,hadoop3.x搭建到集群调优,百万播放】

相关文章:

Hadoop3教程(二十九):(生产调优篇)集群扩容及缩容(白名单与黑名单)

文章目录 &#xff08;150&#xff09;添加白名单&#xff08;151&#xff09;服役新服务器&#xff08;152&#xff09;服务器间数据均衡&#xff08;153&#xff09;黑名单退役服务器参考文献 这一章还算是比较重要的。 &#xff08;150&#xff09;添加白名单 白名单&#…...

NET7下用WebSocket做简易聊天室

NET7下用WebSocket做简易聊天室 步骤&#xff1a; 建立NET7的MVC视图模型控制器项目创建websocket之间通信的JSON字符串对应的实体类一个房间用同一个Websocketwebsocket集合类&#xff0c;N个房间创建websocket中间件代码Program.cs中的核心代码&#xff0c;使用Websocket聊…...

详解API基础知识

目录 什么是API: API 的设计原则包括&#xff1a; API 的开发流程包括以下几个步骤&#xff1a; API 的使用场景包括&#xff1a; API 的优势包括&#xff1a; 然而&#xff0c;API 也存在一些挑战和问题&#xff0c;例如&#xff1a; 什么是API: API&#xff08;应用程…...

b树和b+树

二叉树和平衡二叉树 二叉树&#xff0c;每个节点支持两个分支的树结构&#xff0c;相比于单向链表&#xff0c;多了一个分支。 二叉查找树&#xff0c;在二叉树的基础上增加了一个规则&#xff0c;左子树的所有节点的值都小于它的根 节点&#xff0c;右子树的所有子节点都大于它…...

Linux 下 Java 安装字体方法

因上线访问图字体乱码了&#xff0c;因为在windows下设置的微软雅黑&#xff0c;linux默认是没有的&#xff0c;所以需要给jdk安装一个微软雅黑字体。按照步骤来&#xff0c;so easy&#xff01; 1&#xff09;首先找到windows下面的字体&#xff0c;不用去其他地方下了&#…...

敏捷开发的实施要素和实现敏捷的实际改进

​ 敏捷开发的实施要素如下&#xff1a; 个体和交互&#xff1a;胜过过程和工具。可以工作的软件&#xff1a;胜过面面俱到的文档。客户合作&#xff1a;胜过合同谈判。响应变化&#xff1a;胜过遵循计划。 敏捷开发过程是一个增量的、迭代的过程&#xff0c;责任人、开发人…...

学会使用Pandas进行数据清洗

大家好&#xff0c;如果你对数据科学感兴趣&#xff0c;那么数据清洗可能对你来说是一个熟悉的术语&#xff0c;本文将向你介绍使用Pandas进行数据清洗的过程。我们的数据通常来自多个资源&#xff0c;而且并不干净&#xff0c;它可能包含缺失值、重复值、错误或不需要的格式等…...

Stable Diffusion WebUI扩展a1111-sd-webui-tagcomplete之Booru风格Tag自动补全功能详细介绍

安装地址 直接附上地址先: Ranting8323 / A1111 Sd Webui Tagcomplete GitCodeGitCode——开源代码托管平台,独立第三方开源社区,Git/Github/Gitlabhttps://gitcode.net/ranting8323/a1111-sd-webui-tagcomplete.git上面是GitCode的地址,下面是GitHub的地址,根据自身情…...

Linux中iostat命令

iostat命令是IO性能分析的常用工具&#xff0c;其是input/output statistics的缩写。 一、安装 yum install sysstat -y二、参数说明 -c: 显示CPU使用情况-d: 显示磁盘使用情况--dec{ 0 | 1 | 2 }: 指定要使用的小数位数&#xff0c;默认为 2-g GROUP_NAME { DEVICE [...] | A…...

Pandas数据处理分析系列3-数据如何预览

Pandas-数据预览 Pandas 导入数据后,我们通常需要对数据进行预览,以便更好的进行数据分析。常见数据预览的方法如下: ①head() 方法 功能:读取数据的前几行,默认显示前5行 语法结构:df.head(行数) df1=pd.read_excel("销售表.xlsx",sheet_name="手机销…...

【汇编语言-王爽】第二章:寄存器

知识点 &#xff08;一&#xff09;寄存器 一个典型的CPU由运算器、控制器、寄存器等器件构成&#xff0c;这些器件靠内部总线相连。8086CPU有14个寄存器&#xff1a;AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。其中AX、BX、CX、DX为通用寄存器&#xff0c;可…...

5G学习笔记之5G频谱

参考&#xff1a;《5G NR通信标准》1. 5G频谱 1G和2G移动业务的频段主要在800MHz~900MHz&#xff0c;存在少数在更高或者更低频段&#xff1b;3G和4G的频段主要在450MHz ~ 6GHz&#xff1b;5G主要是410MHz ~ 6GHz&#xff0c;以及24GHz ~ 52GHz。 5G频谱跨度较大&#xff0c;可…...

CSS 浮动布局

本文参考 https://blog.csdn.net/ZhangJiWei_2019/article/details/114669722 文档流简介 正常文档流 正常文档流&#xff0c;又称为“普通文档流”或“普通流”&#xff0c;也就是W3C标准所说的“normal flow”。 我们先来看一下正常文档流的简单定义&#xff1a;正常文档…...

CentOS 系统安装和使用Docker服务

系统环境 使用下面的命令&#xff0c;可以查看CentOS系统的版本。 lsb_release -a结果&#xff1a; 说明我的系统是7.9.2009版本的 安装Docker服务 依次执行下面的指令&#xff1a; yum install -y yum-utilsyum install -y docker即可安装docker服务 如果这样安装不成功…...

Docker-镜像的备份迁移及私有仓库的搭建

一、Docker-备份与迁移 A服务器系统配置 B服务器系统配置 1.用命令将容器保存为镜像。 案例&#xff0c;将A服务器的Docker容器迁移到另外一台服务器B&#xff0c;A服务器的容器配置过对应的文件&#xff0c;不想在B服务器重新搭建&#xff0c;可以使用该案例。 docker c…...

SQL数据库管理工具RazorSQL mac中文版特点与功能

RazorSQL mac是一款功能强大的SQL数据库管理工具&#xff0c;它支持多种数据库&#xff0c;包括MySQL、Oracle、Microsoft SQL Server、SQLite、PostgreSQL等。 RazorSQL mac 软件特点和功能 多种数据库支持&#xff1a;RazorSQL支持多种数据库&#xff0c;用户可以通过一个工…...

Unigui可以使用WebSocket进行客户端之间的实时互相发消息

Unigui可以使用WebSocket进行客户端之间的实时互相发消息。WebSocket是一种支持双向通信的网络协议&#xff0c;可以使客户端和服务器之间实时地进行数据交换。 实现步骤: 1. 在Unigui项目中添加WebSocket组件。 2. 在WebModule的OnCreate事件中开启WebSocket服务。 proced…...

Win32 简单日志实现

简单实现日志保存, 支持设置日志文件数量, 单个日志文件大小上限, 自动超时保存日志, 日志缓存超限保存 CLogUtils.h #pragma once#include <string> #include <windows.h> #include <vector> #include <map> #include <mutex> #include <tc…...

保姆级阿里云ESC服务器安装nodejs或Linux安装nodejs

1. 创建node文件夹 默认 /opt 下边 /opt/node 也可建到其他地方&#xff0c;如/usr/local/node 等 创建后切换到文件夹下 cd /opt/node cd /opt/node2. 下载node并解压 使用命令下载node wget https://nodejs.org/dist/v18.12.0/node-v18.12.0-linux-x64.tar.xz wget https…...

《动手学深度学习 Pytorch版》 9.3 深度循环神经网络

将多层循环神经网络堆叠在一起&#xff0c;通过对几个简单层的组合&#xff0c;产生一个灵活的机制。其中的数据可能与不同层的堆叠有关。 9.3.1 函数依赖关系 将深度架构中的函数依赖关系形式化&#xff0c;第 l l l 个隐藏层的隐状态表达式为&#xff1a; H t ( l ) ϕ l …...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)

Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败&#xff0c;具体原因是客户端发送了密码认证请求&#xff0c;但Redis服务器未设置密码 1.为Redis设置密码&#xff08;匹配客户端配置&#xff09; 步骤&#xff1a; 1&#xff09;.修…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么&#xff1f;它的作用是什么&#xff1f; Spring框架的核心容器是IoC&#xff08;控制反转&#xff09;容器。它的主要作用是管理对…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法

用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法 大家好,我是Echo_Wish。最近刷短视频、看直播,有没有发现,越来越多的应用都开始“懂你”了——它们能感知你的情绪,推荐更合适的内容,甚至帮客服识别用户情绪,提升服务体验。这背后,神经网络在悄悄发力,撑起…...

渗透实战PortSwigger Labs指南:自定义标签XSS和SVG XSS利用

阻止除自定义标签之外的所有标签 先输入一些标签测试&#xff0c;说是全部标签都被禁了 除了自定义的 自定义<my-tag onmouseoveralert(xss)> <my-tag idx onfocusalert(document.cookie) tabindex1> onfocus 当元素获得焦点时&#xff08;如通过点击或键盘导航&…...

前端工具库lodash与lodash-es区别详解

lodash 和 lodash-es 是同一工具库的两个不同版本&#xff0c;核心功能完全一致&#xff0c;主要区别在于模块化格式和优化方式&#xff0c;适合不同的开发环境。以下是详细对比&#xff1a; 1. 模块化格式 lodash 使用 CommonJS 模块格式&#xff08;require/module.exports&a…...