iam使用hadoopapache2.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\u dir和file:///hdd/data\u dir/上,并且具有相同的块名和子目录名
但在我的集群中,这种行为不会发生有时它会将数据块写入本地目录/opt/hadoop/data\ dir,有时它会将数据块写入
外部硬目录 file:///hdd/data_dir
可能的原因是什么?如何控制这种行为
1条答案
按热度按时间3mpgtkmj1#
你对
dfs.data.dir
这是错误的。没有任何地方说明:具有相同的块名和相同的子目录名
文件可能会被复制,但这种情况发生在不同的datanode上,而不是在具有不同目录的同一datanode上。还有这个属性
dfs.data.dir
已弃用,应dfs.datanode.data.dir
从hadoop2开始就有了。从hdfs-default.xml
dfs.datanode.data.dir目录
确定dfs数据节点应在本地文件系统上的何处存储其块。如果这是一个以逗号分隔的目录列表,那么数据将存储在所有命名的目录中,通常存储在不同的设备上。