構成アイテムを動的に変更する
序文
実行状態では、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 存储数据目录
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 です。
記事をご覧になっている方のお役に立てれば幸いです、注目、コメント、お気に入りを忘れずによろしくお願いします