您好,我正在学习 hadoop,我有一个简单的愚蠢问题:在我关闭 HDFS(通过调用 hadoop_home/sbin/stop-dfs.sh)后,HDFS 上的数据丢失了还是可以恢复?
最佳答案
如果您停止 HDFS,数据不会丢失,前提是您将 NameNode 和 DataNode 的数据存储在使用属性指定的持久位置:
dfs.namenode.name.dir
-> 确定 DFS 名称节点应在本地文件系统上的何处存储名称表 (fsimage)。如果这是一个以逗号分隔的目录列表,那么名称表将复制到所有目录中,以实现冗余。默认值:file://${hadoop.tmp.dir}/dfs/name
dfs.datanode.data.dir
-> 确定 DFS 数据节点应在本地文件系统中存储其 block 的位置。如果这是一个逗号分隔的目录列表,那么数据将存储在所有命名的目录中,通常在不同的设备上。不存在的目录将被忽略。默认值:file://${hadoop.tmp.dir}/dfs/data
如您所见,这两个属性的默认值都指向 ${hadoop.tmp.dir}
,默认情况下为 /tmp
。您可能已经知道,在基于 Unix 的系统中,/tmp
中的数据会在重新启动时被清除。
因此,如果您指定的目录位置不是 /tmp
,那么 Hadoop HDFS 守护程序在重新启动时将能够读回数据,因此即使在集群重新启动时也不会丢失数据。
关于hadoop - 关闭hadoop HDFS后数据丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28379048/