【运维】hadoop3.0.3集群安装(二) 横向新增节点和删除节点

文章目录

    • 一. 新增节点
      • 1.配置、安装
        • 1.1. 所有节点配置新节点主机映射
        • 1.2. 上传安装包
        • 1.3. 配置环境变量
        • 1.4. 配置workers
        • 1.5. 清理之前集群的数据目录(如有)
      • 2. 新增节点启动
      • 3. 平衡DataNode节点
    • 二. 删除节点
      • 1. namenode节点操作
        • 1.1. 添加excludes文件
        • 1.2. 刷新节点
      • 2. 关闭datanode节点(非必须)
    • 三. 重新加入删除的节点

一. 新增节点

1.配置、安装

1.1. 所有节点配置新节点主机映射

在namenode节点:

vi /etc/hosts
增加 新增节点IP node3  # 复制到其他DataNode节点 
scp /etc/hosts node1:/etc/hosts 
scp /etc/hosts node2:/etc/hosts
scp /etc/hosts node3:/etc/hosts

 

1.2. 上传安装包

在namenode节点,通过scp上传安装包

scp -r   /home/user/hadoop/hadoop/etc/hadoop/ root@node3:/home/user/hadoop/hadoop/etc/

 

1.3. 配置环境变量

在新节点

export HADOOP_HOME=/home/user/hadoop/hadoop-3.0.3
export HADOOP_CONF_DIR=/home/user/hadoop/hadoop-3.0.3/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin

 

1.4. 配置workers

在namenode节点下的/home/taiyi/hadoop/hadoop/etc/hadoop/workers

填写新增节点主机名

vi workersnode1
node2
node3

发送到各节点

scp /home/user/hadoop/hadoop-3.0.3/etc/hadoop/workers root@node3:/home/user/hadoop/hadoop-3.0.3/etc/hadoop
scp /home/user/hadoop/hadoop-3.0.3/etc/hadoop/workers root@node3:/home/user/hadoop/hadoop-3.0.3/etc/hadoop

 

1.5. 清理之前集群的数据目录(如有)

如果不清理可能:

  1. 会出现clusterid不一致的报错
  2. 新节点与被复制节点的datanodeUuid一样(位置:…/current/VERSION文件)这样会导致,被复制节点和新节点的冲突。

具体数据目录位置在:hdfs-site.xml文件中查看。

    <property><name>dfs.datanode.data.dir</name><value>/opt/data/hdfs/data,/opt/data02/hdfs/data</value><description>If necessary, use these files to control the list of allowable datanodes.不允许加入的datanode</description></property><property><name>dfs.namenode.name.dir</name><value>/opt/data/hdfs/namenode,/opt/data02/hdfs/namenode</value><description>If this is a comma-delimited list of directories then the name table is replicated in all of thedirectories, for redundancy.Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.用于保存Namenode的namespace和事务日志的路径</description></property>

 

2. 新增节点启动

对于新添加的DataNode、nodemanger,在新节点启动

hdfs --daemon start datanode
yarn --daemon start nodemanager

 

在namenode节点刷新新启动的节点

hdfs dfsadmin -refreshNodes

也可在页面查看:namenodeip:9870

 

查看集群情况

hdfs dfsadmin -reportConfigured Capacity: 24593821065216 (22.37 TB)
Present Capacity: 23916454670336 (21.75 TB)
DFS Remaining: 23885509402624 (21.72 TB)
DFS Used: 30945267712 (28.82 GB)
DFS Used%: 0.13%
Replicated Blocks:Under replicated blocks: 54Blocks with corrupt replicas: 0Missing blocks: 0Missing blocks (with replication factor 1): 0Pending deletion blocks: 0
Erasure Coded Block Groups:Low redundancy block groups: 0Block groups with corrupt internal blocks: 0Missing block groups: 0Pending deletion blocks: 0-------------------------------------------------
Live datanodes (3): 

 
yarn节点

yarn node -list
2023-08-29 18:20:42,615 INFO client.RMProxy: Connecting to ResourceManager at /node1:8832
Total Nodes:3Node-Id             Node-State Node-Http-Address       Number-of-Running-Containers
node3.xxxxxxxxxxxxxxxxxxxxxxx.net:34003         RUNNING 
node3.xxxxxxxxxxxxxxxxxxxxxxx.net:8042                             0
node1xxxxxxxxxxxxxxxxxxxxxxxx.net:45637          RUNNING 
node1.xxxxxxxxxxxxxxxxxxxxxxxxxx.:8042                              0
node2.xxxxxxxxxxxxxxxxxxxxxxxxxxx:39647         RUNNING 
node2.xxxxxxxxxxxxxxxxxxxxxxxxxxxx:8042                             0

看到之前的两个节点,现在是3个了。

 

3. 平衡DataNode节点

在namenode节点执行

#对hdfs负载设置均衡,因为默认的数据传输带宽比较低,可以设置为64M  
hdfs dfsadmin -setBalancerBandwidth 67108864 #默认balancer的threshold为10%,即各个节点与集群总的存储使用率相差不超过10%,我们可将其设置为5%
start-balancer.sh -threshold 5

注意

1)如果不balance,那么cluster会把新的数据都存放在新的node上,这样会降低mapred的工作效率
2)设置平衡阈值,默认是10%,值越低各节点越平衡,但消耗时间也更长
3)设置balance的带宽,默认只有1M/s

<property><name>dfs.balance.bandwidthPerSec</name><value>1048576</value><description>Specifies the maximum amount of bandwidth that each datanodecan utilize for the balancing purpose in term ofthe number of bytes per second.</description>
</property>

 
 

二. 删除节点

禁止操作:

在worker节点通过:hdfs --daemon stop datanode 命令关掉datanode,这会使hdfs中出现missing block。

1. namenode节点操作

1.1. 添加excludes文件

在namenode节点,修改hdfs-site.xml文件

<property><!--dfs.hosts.exclude定义的文件内容为,每个需要下线的机器,一行一个--><name>dfs.hosts.exclude</name><value>xxx/excludes</value>
</property>

namenode上创建并修改excludes文件,添加需要删除节点的IP

 

1.2. 刷新节点

nanenode上刷新节点配置情况:

hadoop dfsadmin -refreshNodes

此时在Web UI上就可以看到该节点变为Decommissioning状态,过一会就变为Dead了。

也可以通过如下命令查看

hadoop dfsadmin -report

 

2. 关闭datanode节点(非必须)

在datanode节点执行:

hdfs --daemon stop datanode

 
 

三. 重新加入删除的节点

1.在namenode的excludes文件中删除相应节点IP
2.在datanodenode节点上重启datanode进程:hadoop-daemon.sh start datanode
3.在namenode上刷新节点配置情况:hadoop dfsadmin -refreshNodes

 
 
yarn的删除节点操作类似,在yarn-site.xml配置下

yarn.resourcemanager.nodes.exclude-path 

 
 

参考:
https://www.cnblogs.com/xinfang520/p/10131756.html
https://www.tutorialspoint.com/hadoop/hadoop_multi_node_cluster.htm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/64597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring高级源码50讲-43-50(spring续)

其它 43) FactoryBean 演示 - FactoryBean 代码参考 package com.itheima.a43;import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.ComponentScan;ComponentScan public class A43 {publi…

在访问一个网页时弹出的浏览器窗口,如何用selenium 网页自动化解决?

相信大家在使用selenium做网页自动化时&#xff0c;会遇到如下这样的一个场景&#xff1a; 在你使用get访问某一个网址时&#xff0c;会在页面中弹出如上图所示的弹出框。 首先想到是利用Alert类来处理它。 然而&#xff0c;很不幸&#xff0c;Alert类处理的结果就是没有结果…

Flutter系列文章-Flutter在实际业务中的应用

不同场景下的解决方案 1. 跨平台开发&#xff1a; 在移动应用开发中&#xff0c;面对不同的平台&#xff08;iOS和Android&#xff09;&#xff0c;我们通常需要编写两套不同的代码。而Flutter通过一套代码可以构建适用于多个平台的应用&#xff0c;大大提高了开发效率&#x…

ArrayList LinkedList

ArrayList 和 LinkedList 区别 ArrayList和LinkedList都是Java集合框架中的实现类&#xff0c;用于存储和操作数据。它们在底层实现和性能特点上有一些区别。 数据结构&#xff1a;ArrayList底层使用数组实现&#xff0c;而LinkedList底层使用双向链表实现。这导致它们在内存结…

ModaHub魔搭社区:自动化机器学习神器Auto-Sklearn

Auto-Sklearn Auto-Sklearn是一个开源库,用于在 Python 中执行 AutoML。它利用流行的 Scikit-Learn 机器学习库进行数据转换和机器学习算法。 它是由Matthias Feurer等人开发的。并在他们 2015 年题为“efficient and robust automated machine learning 高效且稳健的自动…

YOLOv7框架解析

YOLOv7概念 YOLOv7是基于YOLO系列的目标检测算法&#xff0c;由Ultra-Light-Fast-Detection&#xff08;ULFD&#xff09;和Scaled-YOLOv4两种算法结合而来。它是一种高效、准确的目标检测算法&#xff0c;具有以下特点&#xff1a; 1. 高效&#xff1a;YOLOv7在保持准确率的…

CSP 202305-1 重复局面

题目背景 国际象棋在对局时&#xff0c;同一局面连续或间断出现3次或3次以上&#xff0c;可由任意一方提出和棋。 问题描述 国际象棋每一个局面可以用大小为 88 的字符数组来表示&#xff0c;其中每一位对应棋盘上的一个格子。六种棋子王、后、车、象、马、兵分别用字母 k、…

说说TIME_WAIT和CLOSE_WAIT区别

分析&回答 TCP协议规定&#xff0c;对于已经建立的连接&#xff0c;网络双方要进行四次握手才能成功断开连接&#xff0c;如果缺少了其中某个步骤&#xff0c;将会使连接处于假死状态&#xff0c;连接本身占用的资源不会被释放。网络服务器程序要同时管理大量连接&#xf…

requests 库:发送 form-data 格式的 http 请求 (python)

安装 requests-toolbelt !pip install requests-toolbeltdemo from requests_toolbelt import MultipartEncoder import requestsm MultipartEncoder(fields{query: """第一&#xff0c;向量化匹配是有能力上限的。搜索引擎实现语义搜索已经是好几年的事情了…

学校头歌作业1_4日期格式化输出(头歌作业[Python])

在CSDN上补充前几期的内容 第1关&#xff1a;空格分隔格式化输出 # 实验要求 # 在三行中分别输入当前的年、月、日的整数值&#xff0c;按要求完成输出。 # 1 输出年月日&#xff0c;空格分隔&#xff0c;格式&#xff1a;2020 09 16# 测试数据 # 输入(>>>开头的行表…

MySQL索引和查询优化

文章目录 1.Mysql索引2. b- tree 与 b tree3.覆盖索引和回表查询4.查询优化1.Explain 5.优化实战举例**用户搜索****订单查询****分页查询** 1.Mysql索引 MySQL索引是一种用于提高数据库查询效率的数据结构。它可以加快数据检索的速度&#xff0c;减少查询所需的IO操作和计算…

leetcode 1365. 有多少小于当前数字的数字

2023.9.2 本题直观的解法就是双层for循环暴力求解&#xff1a; 暴力解&#xff1a; class Solution { public:vector<int> smallerNumbersThanCurrent(vector<int>& nums) {vector<int> ans;for(int i0; i<nums.size(); i){int temp 0;//比当前元素…

Double4 VR智能互动教学应用系统演示

系统功能 系统针对的是高教各科专业实训微课教学两方面的应用&#xff0c;具备优质视觉、感官体验&#xff0c;可联网人机对话。系统基于当前信息技术&#xff0c;具备了实训功能&#xff0c;微课录制功能&#xff0c;4D体感体验功能&#xff0c;滤镜调节功能&#xff0c;截图…

浅谈安防视频监控平台EasyCVR视频汇聚平台对于夏季可视化智能溺水安全告警平台的重要性

每年夏天都是溺水事故高发的时期&#xff0c;许多未成年人喜欢在有水源的地方嬉戏&#xff0c;这导致了悲剧的发生。常见的溺水事故发生地包括水库、水坑、池塘、河流、溪边和海边等场所。 为了加强溺水风险的提示和预警&#xff0c;完善各类安全防护设施&#xff0c;并及时发现…

解决 git clone 时出现Failed to connect to 127.0.0.1 port 1573问题

今天去拉一个仓库代码&#xff0c;往常都是一下就拉下来了&#xff0c;今天却报错&#xff0c;报错信息如下&#xff1a; 原因&#xff1a;这种情况是因为代理在git中配置的&#xff0c;但是本身环境就有SSL协议了&#xff0c;所以取消git的https或者http代理即可 方法如下&…

LeetCode-455-分发饼干-贪心算法

题目描述&#xff1a; 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干的最小尺寸&#xff1b;并且每块饼干 j&#xff…

SpringBoot整合Redis使用

目录 1、redis介绍2、redis五种数据类型2.1 String&#xff08;字符串&#xff09;2.2 List&#xff08;列表&#xff09;2.3 Set&#xff08;集合&#xff09;元素唯一不重复2.3 Hash&#xff08;哈希&#xff09;2.4 zSet&#xff08;有序集合&#xff09; 3、SpringBoot整合…

Ros noetic 机器人坐标记录运动路径和发布 实战教程(A)

前言: 网上记录Path的写入文件看了一下还挺多的,有用yaml作为载体文件,也有用csv文件的路径信息,也有用txt来记录当前生成的路径信息,载体不重要,反正都是记录的方式,本文主要按yaml的方式写入,后文中将补全其余两种方式。 其中两种方式的主要区别在于,加载yaml所需要…

算法通关村第十七关——跳跃游戏

leetCode55 给定一个非负整数数组&#xff0c;你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度&#xff0c;判断你是否能够到达最后一个位置。 示例1&#xff1a; 输入&#xff1a;[2,3,1,1,4] 输出&#xff1a;true 解释&#xff1a;从位置 0…

2、[春秋云镜]CVE-2022-30887

文章目录 一、靶标介绍二、复现过程 一、靶标介绍 二、复现过程 &#xff08;1&#xff09;打开网址。 &#xff08;2&#xff09;查看源代码 邮件格式&#xff1a;第一个符号不准为&#xff0c;后续符号有、.&#xff1b; 密码格式&#xff1a;匹配所有小写字母&#xff0c…