[ https://issues.apache.org/jira/browse/HDFS-8913?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15080782#comment-15080782 ]
Jeff Zhang commented on HDFS-8913: ---------------------------------- +1, I think we do need to highlight the differences between these roles. > Documentation clarity regarding Secondary node, Checkpoint node & Backup node > ----------------------------------------------------------------------------- > > Key: HDFS-8913 > URL: https://issues.apache.org/jira/browse/HDFS-8913 > Project: Hadoop HDFS > Issue Type: Bug > Components: documentation > Affects Versions: 2.7.1 > Environment: Content in documentation > Reporter: Ravindra Babu > Priority: Trivial > Original Estimate: 24h > Remaining Estimate: 24h > > I checked with many people and almost all of them are confused on > responsibilities of Secondary Node, Checkpoint Node and Backup node. > Link: > http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html > Confusion: > Secondary NameNode > The NameNode stores modifications to the file system as a log appended to a > native file system file, edits. When a NameNode starts up, it reads HDFS > state from an image file, fsimage, and then applies edits from the edits log > file. It then writes new HDFS state to the fsimage and starts normal > operation with an empty edits file. Since NameNode merges fsimage and edits > files only during start up, the edits log file could get very large over time > on a busy cluster. Another side effect of a larger edits file is that next > restart of NameNode takes longer. > The secondary NameNode merges the fsimage and the edits log files > periodically and keeps edits log size within a limit. It is usually run on a > different machine than the primary NameNode since its memory requirements are > on the same order as the primary NameNode. > Checkpoint Node > NameNode persists its namespace using two files: fsimage, which is the latest > checkpoint of the namespace and edits, a journal (log) of changes to the > namespace since the checkpoint. When a NameNode starts up, it merges the > fsimage and edits journal to provide an up-to-date view of the file system > metadata. The NameNode then overwrites fsimage with the new HDFS state and > begins a new edits journal. > Backup Node > The Backup node provides the same checkpointing functionality as the > Checkpoint node, as well as maintaining an in-memory, up-to-date copy of the > file system namespace that is always synchronized with the active NameNode > state. Along with accepting a journal stream of file system edits from the > NameNode and persisting this to disk, the Backup node also applies those > edits into its own copy of the namespace in memory, thus creating a backup of > the namespace. > Now all three nodes have overlapping functionalities. To add confusion to > this point, > http://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html > quotes that NameNode will never make RPC call to other nodes. > The Communication Protocols > All HDFS communication protocols are layered on top of the TCP/IP protocol. A > client establishes a connection to a configurable TCP port on the NameNode > machine. It talks the ClientProtocol with the NameNode. The DataNodes talk to > the NameNode using the DataNode Protocol. A Remote Procedure Call (RPC) > abstraction wraps both the Client Protocol and the DataNode Protocol. By > design, the NameNode never initiates any RPCs. Instead, it only responds to > RPC requests issued by DataNodes or clients. > We need clarification regarding these points. Please enhance your > documentation to avoid confusion among readers. > 1) Secondary Node, Check point Node & Backup node - Clear separation of roles > 2) For High Availability, do we require only One of them Or Two of them or > All of them? If it's not all of them, what combination is allowed? > 3) Without RPC by Name node to data nodes, how writes and read are happening? -- This message was sent by Atlassian JIRA (v6.3.4#6332)