DataNodes
DataNodes store data in a Hadoop cluster and is the name of the daemon that manages the data. File data is replicated on multiple DataNodes for reliability and so that localized computation can be executed near the data. Within a cluster, DataNodes should be uniform. If they are not uniform, issues can occur. For example, DataNodes with less memory fill up more quickly than DataNodes with more memory, which can result in job failures.
How NameNode Manages Blocks on a Failed DataNode
- The NameNode determines which blocks were on the failed DataNode.
- The NameNode locates other DataNodes with copies of these blocks.
- The DataNodes with block copies are instructed to copy those blocks to other DataNodes to maintain the configured replication factor.
- If the DataNode failed due to a disk failure, follow the procedure in Replacing a Disk on a DataNode Host or Performing Disk Hot Swap for DataNodes to bring a repaired DataNode back online. If a DataNode failed to heartbeat for other reasons, they need to be recommissioned to be added back to the cluster. For more information, see Recommissioning Hosts
- If a DataNode rejoins the cluster, there is a possibility for surplus replicas of blocks that were on that DataNode. The NameNode will randomly remove excess replicas adhering to Rack-Awareness policies.
Replacing a Disk on a DataNode Host
Minimum Required Role: Operator (also provided by Configurator, Cluster Administrator, Full Administrator)
For CDH 5.3 and higher, see Performing Disk Hot Swap for DataNodes.
- Stop managed services.
- Decommission the DataNode role instance.
- Replace the failed disk.
- Recommission the DataNode role instance.
- Run the HDFS fsck utility to validate the health of HDFS. The utility normally reports over-replicated blocks immediately after a DataNode is reintroduced to the cluster, which is automatically corrected over time.
- Start managed services.
Removing a DataNode
Minimum Required Role: Operator (also provided by Configurator, Cluster Administrator, Full Administrator)
- The number of DataNodes in your cluster must be greater than or equal to the replication factor you have configured for HDFS. (This value is typically 3.) In order to satisfy this requirement, add the DataNode roles on other hosts as required and start the role instances before removing any DataNodes .
- Ensure the DataNode that is to be removed is running
- Decommission the DataNode role. When asked to select the role instance to decommission, select the DataNode role instance.
- The decommissioning process moves the data blocks to the other available DataNodes.
Important: There must be at least as many DataNodes running as the replication factor or the decommissioning process will not complete.
- Once decommissioning is completed, stop the DataNode role. When asked to select the role instance to stop, select the DataNode role instance.
- Verify that the integrity of the HDFS service:
- Run the following command to identify any problems in the HDFS file system:
hdfs fsck /
- Fix any errors reported by the fsck command. If required, create a Cloudera support case.
- Run the following command to identify any problems in the HDFS file system:
- After all errors are resolved:
- Remove the DataNode role.
- Manually remove the DataNode data directories. You can determine the location of these directories by examining the DataNode Data Directory property in the HDFS configuration. In Cloudera Manager, go to the HDFS service, select the Configuration tab and search for the property.
Fixing Block Inconsistencies
You can use the output of hdfs fsck or hdfs dfsadmin -report commands for information about inconsistencies with the HDFS data blocks such as missing, misreplicated, or underreplicated blocks. You can adopt different methods to address these inconsistencies.
Underreplicated blocks: HDFS automatically attempts to fix this issue by replicating the underreplicated blocks to other DataNodes and match the replication factor. If the automatic replication does not work, you can run the HDFS Balancer to address the issue.
Misreplicated blocks: Run the hdfs fsck -replicate command to trigger the replication of misreplicated blocks. This ensures that the blocks are correctly replicated across racks in the cluster.
<< Backing Up and Restoring NameNode Metadata | ©2016 Cloudera, Inc. All rights reserved | Configuring Storage Directories for DataNodes >> |
Terms and Conditions Privacy Policy |