公共回收站开启方法
1. 部署前提
确保版本符合以下需求:
- HDFS:hadoop-2.9.2-1.2.0及以上
- 数据地图:v1.2.4及以上
2. 部署步骤
以下步骤均以EasyOps部署环境为例。
2.1 预置操作
1. HDFS目录预置
# 登录已部署HDFS Client节点的机器
# 使用超级管理员keytab进行认证,不同集群对应的keytab路径不相同,请参考实际环境修改
kinit -kt /home/bdms/hdfs/default_hdfs/client/2021091511134684753a2b049/keytab/hdfs.keytab hdfs/hadoop5438.jd.163.org@BDMS.163.COM
# 手工创建公共回收站目录
# easyops环境执行命令前需要先执行source操作
cd /home/bdms/hdfs/default_hdfs/client/2021091511134684753a2b049
source config/hadoop-env.sh
# 确认目录是否存在,不存在则手工创建
bin/hdfs dfs -ls /user/hdfs/.Trash
bin/hdfs dfs -mkdir -p /user/hdfs/.Trash
# 执行授权操作
bin/hdfs dfs -chown 755 /user/hdfs
bin/hdfs dfs -chown 755 /user/hdfs/.Trash
2. Ranger权限预置
1.增加public
分组授权:将/user/hdfs/.Trash
及/user/hdfs/.Trash/Current
的rwx
权限(非递归)授权给public
分组,如下图所示
2.猛犸平台个人及项目账号授权:/user/hdfs/.Trash/Current/${username}
授权给对应用户rwx
权限(递归)
此步骤以由猛犸自动完成,执行check即可
3.其他公共账号授权:
EasyOps
部署环境包含hive
、spark
、yarn
、impala
、sloth
、hbase
、mammut
、mapred
、ranger
用户
需要将/user/hdfs/.Trash/Current/${username}
授权给对应用户rwx
权限(递归),以spark
用户为例,手工Add New Policy
注意:若出现用户不存在,则需要在RangerAdmin中手工添加用户,以添加yarn
用户为例,如下所示
2.2. HDFS NameNode配置变更
1.开启回收站功能开关
通过EasyOps
修改:hdfs-site.xml
中增加或修改如下配置项,变更完成后更新并启用配置组。
<property>
<name>dfs.namenode.recycle.bin.enabled</name>
<value>true</value>
</property>
如下图所示:
2.增加Trash
清理日志配置
log4j.logger.DELETE=INFO,DELETE
log4j.logger.DELETE.log.file=delete-${hadoop.log.file}
log4j.logger.DELETE.log.maxfilesize=2560MB
log4j.logger.DELETE.log.maxbackupindex=50
log4j.appender.DELETE=org.apache.log4j.RollingFileAppender
log4j.appender.DELETE.File=${hadoop.log.dir}/${log4j.logger.DELETE.log.file}
log4j.appender.DELETE.layout=org.apache.log4j.PatternLayout
log4j.appender.DELETE.layout.ConversionPattern=%d{ISO8601} : %m%n
log4j.appender.DELETE.MaxFileSize=${log4j.logger.DELETE.log.maxfilesize}
log4j.appender.DELETE.MaxBackupIndex=${log4j.logger.DELETE.log.maxbackupindex}
注意:仅当EasyOps版本为1.8.2以上时,才可以通过页面修改log4j
配置,其他版本只能登录机器手工修改配置文件,存在配置被刷掉风险。该配置项不影响回收站整体功能,外部环境可选择性配置。
3.调整回收站清理频率
确认是否已配置以下配置项,建议按照以下参数进行调整
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>30</value>
</property>
2.3 数据地图配置变更
1.数据地图配置修改配置文件
修改EasyDmap
服务backend
组件的配置文件,示例:
/home/bdms/easy_dmap/default_easy_dmap/backend/202109151113468562954cd23/config/frontConfig.json
"menu": {
"guide": 1,
"home": 1,
"trash": 0
},
修改trash=1
表示页面展示回收站入口。
2.修改数据库dm_proxy_keytab.principal
字段类型为 text
,避免加密后字段长度
访问EasyDmap
服务的数据库,执行下面的语句:
alter table dm_proxy_keytab modify column keytab text;
3.预置Keytab
在EasyDmap
服务backend
组件所在的机器,执行以下命令,预置Keytab:
//查看principal信息
klist -kt /etc/security/keytabs/hive/hive.service.keytab
//执行keytab预置,确保principal信息正确
curl -X PUT 'http://127.0.0.1:7066/api/system/proxykeytab/add?principal=hive/hadoop5438.jd.163.org@BDMS.163.COM&keytabPath=/etc/security/keytabs/hive/hive.service.keytab'
2.4 HDFS NameNode服务重启
- 通过EasyOps重启
Standby NameNode
并同步配置,通过NameNode webUI
页面确认启动是否已完成 - 待原
Standby NameNode
退出safemode
后,再重启Active NameNode
2.5 数据地图服务重启
通过EasyOps重启数据地图服务,注意:不要同步配置。
3 风险应对
Ranger预置操作中,需要对非猛犸平台管控的用户手工授权,在部分环境(特别是接管环境、非标EasyOps部署环境)可能存在除hive
、spark
、yarn
、impala
、sloth
外其他用户的情况
- 建议先执行
hdfs dfs -ls /user
目录排查梳理,必要时可要求内部运维、底层开发同学协助。 - 客户现场出现删除进入公共回收站失败场景时,手工在RangerAdmin中将
/user/hdfs/.Trash/Current/${username}
的rwx
权限授权给对应用户即可。
4 验证方案
删除数据:登录
猛犸平台
——>文件管理
——>个人文件
,删除目录或文件检查是否正常回收:进入
数据地图
——>回收站
——>个人回收站
,确认Current_delete
目录是否存在,目录中数据是否一致恢复已删除的数据:在回收站目录中执行
恢复
操作- 验证数据恢复:再次进入
文件管理
——>个人文件
,验证数据恢复是否正常
以上内容对您是否有帮助?