我使用hadoop apache 2.7.1 我已将数据节点目录配置为具有多个目录
<property>
<name>dfs.data.dir</name>
<value>/opt/hadoop/data_dir,file:///hdd/data_dir/</value>
<final>true</final>
</property>
根据此配置,写入文件数据应该在两个目录上发生 / opt / hadoop / data_dir和file:/// hdd / data_dir /具有相同的块名称和相同的子目录名称
但是在我的群集中,这种行为在有时会将数据块写入时不会发生 本地目录/ opt / hadoop / data_dir,有时将数据块写入
外部硬目录file:///hdd/data_dir
可能的原因以及如何控制此行为
答案 0 :(得分:0)
您对dfs.data.dir
的解释是错误的。这没有说明:
具有相同的块名称和相同的子目录名称
文件可能会被复制,但这种情况发生在不同的 datanodes 上,而不是在具有不同目录的同一datanode上。此属性dfs.data.dir
也已弃用,应该是自{Hadoop 2以来一直存在的dfs.datanode.data.dir
。
dfs.datanode.data.dir
确定DFS数据节点应在本地文件系统中存储块的位置。如果这是逗号分隔的目录列表,则数据将存储在所有已命名的目录中,通常位于不同的设备上。