动态修改配置项
前言
Hadoop 在运行态可以动态的通过
hdfs dfsadmin -reconfig [namenode|datanode] dnip:port start
的方式去刷新配置文件
core-site.xml
或者
hdfs-site.xml
中的配置到 Namenode 或者 Datanode 的 jvm 中,让其生效。那么哪些配置能让其生效呢
Namenode 的可修改配置项
结论
# 心跳时间
dfs.heartbeat.interval
# 超时时长间隔(毫秒)
dfs.namenode.heartbeat.recheck-interval
# 此设置可用于防止重要系统目录因管理员错误而意外删除
fs.protected.directories
hadoop.caller.context.enabled
dfs.storage.policy.satisfier.mode
dfs.namenode.replication.max-streams
dfs.namenode.replication.max-streams-hard-limit
dfs.namenode.replication.work.multiplier.per.iteration
dfs.block.replicator.classname
dfs.block.placement.ec.classname
# 是否开启并行加载特性
dfs.image.parallel.load
直接上源代码
private final TreeSet<String> reconfigurableProperties = Sets
.newTreeSet(Lists.newArrayList(
DFS_HEARTBEAT_INTERVAL_KEY,
DFS_NAMENODE_HEARTBEAT_RECHECK_INTERVAL_KEY,
FS_PROTECTED_DIRECTORIES,
HADOOP_CALLER_CONTEXT_ENABLED_KEY,
DFS_STORAGE_POLICY_SATISFIER_MODE_KEY,
DFS_NAMENODE_REPLICATION_MAX_STREAMS_KEY,
DFS_NAMENODE_REPLICATION_STREAMS_HARD_LIMIT_KEY,
DFS_NAMENODE_REPLICATION_WORK_MULTIPLIER_PER_ITERATION,
DFS_BLOCK_REPLICATOR_CLASSNAME_KEY,
DFS_BLOCK_PLACEMENT_EC_CLASSNAME_KEY,
DFS_IMAGE_PARALLEL_LOAD_KEY));
Datanode 的可修改配置项
结论
# datanode 存储数据目录
dfs.datanode.data.dir
# 能够同时移动的块(英文说法叫in-flight)数量,默认值50。
dfs.datanode.balance.max.concurrent.moves
直接上源代码
public Collection<String> getReconfigurableProperties() {
return RECONFIGURABLE_PROPERTIES;
}
private static final List<String> RECONFIGURABLE_PROPERTIES =
Collections.unmodifiableList(
Arrays.asList(
DFS_DATANODE_DATA_DIR_KEY,
DFS_DATANODE_BALANCE_MAX_NUM_CONCURRENT_MOVES_KEY));
修改方式
-
首先编辑
etc/hadoop/core-site.xml
或者
etc/hadoop/hdfs-site.xml
任意配置文件,修改上述配置项的值 -
使用命令动态刷新
Usage: hdfs dfsadmin [-reconfig <namenode|datanode> <host:ipc_port> <start|status|properties>]
,hadoop3之后datanode默认端口是 9867, namenode默认端口是 9820
希望对正在查看文章的您有所帮助,记得关注、评论、收藏,谢谢您
版权声明:本文为u013412066原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。