关闭hadoop HDFS后数据丢失了吗?

时间:2015-02-07 05:46:01

标签: hadoop hdfs

嗨我正在学习hadoop,我有一个简单的愚蠢问题:关闭HDFS后(通过调用hadoop_home / sbin / stop-dfs.sh),HDFS上的数据丢失了还是可以取回?< / p>

2 个答案:

答案 0 :(得分:10)

如果停止HDFS,数据不会丢失,前提是将NameNode和DataNode的数据存储在使用属性指定的持久位置中:

  • dfs.namenode.name.dir - &gt;确定DFS名称节点应存储名称表(fsimage)的本地文件系统的位置。如果这是逗号分隔的目录列表,那么名称表将在所有目录中复制,以实现冗余。默认值:file://${hadoop.tmp.dir}/dfs/name
  • dfs.datanode.data.dir - &gt;确定DFS数据节点应在何处存储其块的本地文件系统。如果这是逗号分隔的目录列表,则数据将存储在所有命名目录中,通常位于不同设备上。不存在的目录将被忽略。默认值:file://${hadoop.tmp.dir}/dfs/data

如您所见,两个属性的默认值都指向${hadoop.tmp.dir},默认情况下为/tmp。您可能已经知道基于Unix的系统中的/tmp中的数据在重启时已被清除。

因此,如果你要指定除/tmp以外的dir位置,那么重启后的Hadoop HDFS守护进程将能够回读数据,因此即使在群集重启时也不会丢失数据。

答案 1 :(得分:0)

请确保您没有删除存储在HDFS中的数据的元数据,如果您保持dfs.namenode.name.dirdfs.datanode.data.dir不受影响,则可以轻松实现,这意味着不删除存在于这些标签中的路径在hdfs-site.xml文件中。