fs.checkpoint.dir和dfs.name.dir有什么区别?

时间:2015-08-31 07:31:35

标签: hadoop hdfs

主要是dfs.name.dir属性用于将namenode的fsimage存储到备份的特定位置,fs.checkpoint.dir属性是fsimage合并的位置。这有点让我感到困惑。任何人都可以详细解释我。

2 个答案:

答案 0 :(得分:3)

dfs.name.dir是namenode在磁盘中存储fsimage和editlogs的位置。这是一个强制性的位置。没有此位置,hadoop群集将无法启动。它将位于namenode主机中。

fs.checkpoint.dir是本地文件系统上的目录,DFS辅助名称节点应该存储要合并的临时映像。如果这是逗号分隔的目录列表,则会在所有目录中复制映像以实现冗余。这不是强制性的位置。如果没有此目录,hadoop集群也将启动。它将位于辅助名称节点主机中。

fsimage和edit日志通过辅助namenode定期合并。如果secondary不存在,则仅在namenode重启时才会合并fsimage和editlogs。

blog post

中提供了辅助名称节点的说明

答案 1 :(得分:2)

<强> dfs.name.dir

它已被弃用,取而代之的是 dfs.namenode.name.dir 。它确定本地文件系统上DFS名称节点应存储名称表(fsimage)的位置。如果这是逗号分隔的目录列表,那么名称表将在所有目录中复制,以实现冗余。

此属性由名称节点使用。

<强> fs.checkpoint.dir

不推荐使用,并替换为 dfs.namenode.checkpoint.dir 。它确定DFS辅助名称节点应在本地文件系统上的哪个位置存储要合并的临时映像。如果这是逗号分隔的目录列表,则会在所有目录中复制映像以实现冗余。

辅助名称节点定期合并fsimage和编辑日志文件,并使编辑日志大小保持在限制范围内。它通常在与主名称节点不同的机器上运行,因为它的内存要求与主名称节点的顺序相同。

辅助名称节点将最新检查点存储在一个目录中,该目录的结构与主名称节点的目录相同。因此,如果需要,主要名称节点可以随时读取检查指向图像。

NameNode将从 dfs.namenode.checkpoint.dir 目录上传检查点,然后将其保存到 dfs.namenode.name.dir <中设置的NameNode目录中/ strong>即可。

如果合法图像包含在 dfs.namenode.name.dir 中,则NameNode将失败。

NameNode验证 dfs.namenode.checkpoint.dir 中的图像是否一致,但不会以任何方式对其进行修改。

请参阅HDFS user guide