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

文章目录

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

一. 新增节点

1.配置、安装

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

在namenode节点:

shell 复制代码
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上传安装包

shell 复制代码
scp -r   /home/user/hadoop/hadoop/etc/hadoop/ root@node3:/home/user/hadoop/hadoop/etc/

1.3. 配置环境变量

在新节点

xml 复制代码
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

填写新增节点主机名

shell 复制代码
vi workers

node1
node2
node3

发送到各节点

shell 复制代码
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文件中查看。

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 the
            directories, for redundancy.
            Path on the local filesystem where the NameNode stores the namespace and transactions logs persistently.
            用于保存Namenode的namespace和事务日志的路径
        </description>
    </property>

2. 新增节点启动

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

shell 复制代码
hdfs --daemon start datanode
yarn --daemon start nodemanager

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

shell 复制代码
hdfs dfsadmin -refreshNodes

也可在页面查看:namenodeip:9870

查看集群情况

shell 复制代码
hdfs dfsadmin -report

Configured 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: 54
        Blocks with corrupt replicas: 0
        Missing blocks: 0
        Missing blocks (with replication factor 1): 0
        Pending deletion blocks: 0
Erasure Coded Block Groups:
        Low redundancy block groups: 0
        Block groups with corrupt internal blocks: 0
        Missing block groups: 0
        Pending deletion blocks: 0

-------------------------------------------------
Live datanodes (3): 

yarn节点

shell 复制代码
yarn node -list
2023-08-29 18:20:42,615 INFO client.RMProxy: Connecting to ResourceManager at /node1:8832
Total Nodes:3
         Node-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节点执行

shell 复制代码
#对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

xml 复制代码
<property>
  <name>dfs.balance.bandwidthPerSec</name>
  <value>1048576</value>
  <description>
    Specifies the maximum amount of bandwidth that each datanode
    can utilize for the balancing purpose in term of
    the 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文件

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

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

1.2. 刷新节点

nanenode上刷新节点配置情况:

shell 复制代码
hadoop dfsadmin -refreshNodes

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

也可以通过如下命令查看

shell 复制代码
hadoop dfsadmin -report

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

在datanode节点执行:

shell 复制代码
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配置下

xml 复制代码
yarn.resourcemanager.nodes.exclude-path 

参考:

https://www.cnblogs.com/xinfang520/p/10131756.html

https://www.tutorialspoint.com/hadoop/hadoop_multi_node_cluster.htm

相关推荐
The Sheep 20233 小时前
WPF自定义路由事件
大数据·hadoop·wpf
还是大剑师兰特12 小时前
Hadoop面试题及详细答案 110题 (86-95)-- Hadoop生态系统工具
hadoop·大剑师·hadoop面试题
yumgpkpm12 小时前
CMP (类Cloudera) CDP7.3(400次编译)在华为鲲鹏Aarch64(ARM)信创环境中的性能测试过程及命令
大数据·hive·hadoop·python·elasticsearch·spark·cloudera
Q264336502313 小时前
大数据实战项目-基于K-Means算法与Spark的豆瓣读书数据分析与可视化系统-基于python的豆瓣读书数据分析与可视化大屏
大数据·hadoop·机器学习·数据分析·spark·毕业设计·kmeans
大数据CLUB15 小时前
基于spark的抖音短视频数据分析及可视化
大数据·hadoop·分布式·数据分析·spark
yumgpkpm15 小时前
大数据综合管理平台(CMP)(类Cloudera CDP7.3)有哪些核心功能?
hive·hadoop·elasticsearch·zookeeper·big data
板凳坐着晒太阳15 小时前
Hive 删除分区语句卡死问题
数据仓库·hive·hadoop
Q26433650231 天前
【有源码】基于Hadoop生态的大数据共享单车数据分析与可视化平台-基于Python与大数据的共享单车多维度数据分析可视化系统
大数据·hadoop·python·机器学习·数据分析·spark·毕业设计
计算机毕业设计木哥1 天前
计算机毕设选题推荐:基于Hadoop和Python的游戏销售大数据可视化分析系统
大数据·开发语言·hadoop·python·信息可视化·spark·课程设计
嘉禾望岗5031 天前
hive on tez运行及hive ha搭建
数据仓库·hive·hadoop