登 录
注 册
< 大 数 据
Flink
Hadoop
Spark
Hive
HBase
Kafka
其他框架
Kerberos服务介绍与部署
Hadoop HA简介
HDFS手动故障转移
HDFS手动故障转移示例
HDFS自动故障转移
YARN自动故障转移
Hadoop白名单与扩容
HDFS存储优化-纠删码
HDFS冷热存储分离
HDFS慢磁盘监控
HDFS小文件归档
源码分析-NN启动(一)
源码分析-NN启动(二)
源码分析-NN启动(三)
热门推荐>>>
中台架构
中台建设与架构
HBase
HBased对接Hive
Linux
Nginx高可用
Python
数据导出工具
Flink
3分钟搭建Flink SQL测试环境
Kafka
Kafka对接Flume
深度学习
卷积神经网络
数据结构与算法
选择合适的算法
MySQL
数据备份恢复
计算机系统
信号量同步线程
Hive
Hive调优参数大全
其他框架
Azkaban Flow1.0与2.0
ClickHouse
表引擎-其他类型
技术成长
最好的职业建议
精选书单
技术成长书单—机器学习
技术资讯
数据在线:计算将成为公共服务
开发工具
IntelliJ IDEA 20年发展回顾(二)
系统工具
Mac命令行工具
虚拟化
内存虚拟化概述
云原生
云原生构建现代化应用
云服务
一文搞懂公有云、私有云...
Java
Spring Boot依赖注入与Runners
Go
Go函数与方法
SQL
SQL模板
安全常识
一文读懂SSO
当前位置:
首页
>>
Hadoop
>>
Hadoop白名单与扩容
Hadoop白名单与扩容
2021-07-24 10:42:29 星期六 阅读:946
白名单是Hadoop3.x的新特性,表示在白名单列表内的服务器(DataNode节点)可以用来存储和计算数据,`可以通过维护白名单列表来达到Hadoop集群扩容、缩容的效果` 同时,在企业中,配置白名单,可以尽量防止黑客恶意访问攻击。 #### 配置白名单的步骤 ##### 创建白名单文件 在NameNode的`$HADOOP_HOME/ect/hadoop`目录下创建文件whitelist文件(在其他目录创建也行,但一般约定俗成都在此目录下创建) ```shell cd $HADOOP_HOME/ect/hadoop vim whitelist ``` 文件中添加白名单主机host列表 ``` hdp-node-101 hdp-node-102 hdp-node-103 ``` ##### 修改配置文件 在hdfs-site.xml文件中增加dfs.hosts参数 ```xml <property> <name>dfs.hosts</name> <value>/opt/service/hadoop/ect/hadoop/whitelist</value> </property> ``` ##### 配置文件同步 将修改后的hdfs-siite.xml文件以及新增的whitelist文件同步到集群所有节点 ##### 重启集群 注意:如果不是第一次配置白名单,无需重启集群,只需刷新NameNode节点即可 ##### 验证白名单是否启用 1、在HDFS web UI中查看可用的所有节点,是否包含白名单列表中的host 2、分别在白名单host和非白名单host上传文件到hdfs测试是否能正常上传 #### HDFS节点动态扩容 当集群数据量越来越大,计算需求也越来越大时,需要增加Hadoop节点,但是又不能停止Hadoop服务,如何解决呢? 上面提到的白名单机制就可以很好的解决这个问题。具体步骤如下 1、准备一台新服务器,环境与Hadoop DataNode节点完全一致 2、启动该服务器的DataNode进程,NodeManager进程 ```shell hdfs --daemon start datanode yarn --daemon start nodemanager ``` 3、在上面提到的白名单文件中增加新服务器的host ```shell vim whitelist hdp-node-101 hdp-node-102 hdp-node-103 hdp-node-104 ``` 4、将白名单文件同步到所有节点 5、刷新NameNode ```shell hdfs dfsadmin -refreshNodes ``` Refresh nodes successful 7、在新服务器上传文件到hdfs测试 #### 数据均衡 针对新加的DataNode节点,或者老节点随着时间的推移,每台服务器存储的数据量不均匀,这时据需要将集群的数据进行均匀分布操作,具体命令 ```shell cd $HADOOP_HOME sbin/start-balancer.sh -threshold 10 # 10表示集群中各节点的磁盘空间利用率不超过10% ``` 如果均衡任务一直卡住,可通过停止均衡命令进行退出 ``` sbin/stop-balancer.sh ``` 注意:由于HDFS需要启动单独的Rebalance Server来执行Rebalance操作,所以尽量不要在NameNode上执行start-balancer.sh,而是找一台比较空闲的机器 #### HDFS节点动态缩容 缩容可通过Hadoop3.x的新特性:黑名单功能来实现 创建backlist文件 ```shell cd $HADOOP_HOME/etc/hadoop vim backlist ``` 添加需要下线的机器host ``` hdp-node-103 ``` 修改hdfs-site.xml文件,添加dfs.hosts.exclude配置参数,指定黑名单的路径 ```xml <property> <name>dfs.hosts.exclude</name> <value>/opt/service/hadoop/ect/hadoop/backlist</value> </property> ``` 将backlist文件、改动后的hdfs-site.xml文件同步到所有节点 重启集群(如果之前已配置过hdfs-site.xml文件的内容,则无需重启集群) 刷新NameNode节点 ```shell hdfs dfsadmin -refreshNodes ``` 查看hdfs web监控页面,可看到刚刚配置的黑名单里的节点状态为`decommissioned`状态,表示正在进行下线操作(将本节点的数据拷贝到其他节点) 等节点状态变为`decommissioned`状态时,表示所有的数据块已成功复制到其他节点,此时可以停止该节点的nodeManager、DataNode进程 ```shell hdfs --daemon stop datanode hdfs -daemon stop nodemanager ``` 至此,该节点下线完毕,但是一般在生产环境中,会再增加一步集群数据均衡的命令,保证集群数据不会因为节点下线而造成存储不均衡。 ``` sbin/start-balancer.sh -threshold 10 ```