DataNode Health Tests
DataNode Block Count
This is a DataNode health test that checks for whether the DataNode has too many blocks. Having too many blocks on a DataNode may affect the DataNode's performance. A DataNode with a large number of blocks will require a larger java heap and may experience longer garbage collection pauses. Additionally, a large number of blocks may be an indicator of the presence of many small files. HDFS is not optimized for dealing with many small files, and processing times may suffer when operating across many small files. If only some DataNodes have a high number of blocks, running the HDFS Rebalance command may address this issue by moving data between DataNodes. If the HDFS Rebalance command reports the cluster as balanced without fixing the block imbalance then the problem is related to the presence of many small files. Consult the HDFS documentation for best-practices on addressing this issue. If many small files is not a concern for your use case, consider disabling this health test. If all DataNodes have a high number of blocks and the issue is not related to small files, additional DataNodes should be added. This test can be configured using the DataNode Block Count Thresholds DataNode monitoring setting.
Short Name: Block Count
Property Name | Description | Template Name | Default Value | Unit |
---|---|---|---|---|
DataNode Block Count Thresholds | The health test thresholds of the number of blocks on a DataNode | datanode_block_count_thresholds | CDH=[[CDH 4.0.0‥CDH 4.5.0)=critical:never, warning:200000.0, [CDH 4.5.0‥CDH 6.0.0)=critical:never, warning:500000.0] | no unit |
DataNode Data Directory Status
This is a DataNode health test that checks for whether the DataNode has reported any failed volumes. A failure of this health test indicates that there is a problem with one or more volumes on the DataNode. See the DataNode system for more information. This test can be configured using the DataNode Volume Failures Thresholds DataNode monitoring setting.
Short Name: Data Directory Status
Property Name | Description | Template Name | Default Value | Unit |
---|---|---|---|---|
DataNode Volume Failures Thresholds | The health test thresholds of failed volumes in a DataNode. | datanode_volume_failures_thresholds | critical:any, warning:never | no unit |
DataNode File Descriptors
This DataNode health test checks that the number of file descriptors used does not rise above some percentage of the DataNode file descriptor limit. A failure of this health test may indicate a bug in either Hadoop or Cloudera Manager. Contact Cloudera support. This test can be configured using the File Descriptor Monitoring Thresholds DataNode monitoring setting.
Short Name: File Descriptors
Property Name | Description | Template Name | Default Value | Unit |
---|---|---|---|---|
File Descriptor Monitoring Thresholds | The health test thresholds of the number of file descriptors used. Specified as a percentage of file descriptor limit. | datanode_fd_thresholds | critical:70.0, warning:50.0 | PERCENT |
DataNode Free Space
This is a DataNode health test that checks that the amount of free space available for HDFS block data on the DataNode does not fall below some percentage of total configured capacity of the DataNode. A failure of this health test may indicate a capacity planning problem. Try adding more disk capacity and additional data directories to the DataNode, or add additional DataNodes and take steps to rebalance your HDFS cluster. This test can be configured using the DataNode Free Space Monitoring Thresholds DataNode monitoring setting.
Short Name: Free Space
Property Name | Description | Template Name | Default Value | Unit |
---|---|---|---|---|
DataNode Free Space Monitoring Thresholds | The health test thresholds of free space in a DataNode. Specified as a percentage of the capacity on the DataNode. | datanode_free_space_thresholds | critical:10.0, warning:20.0 | PERCENT |
DataNode Host Health
This DataNode health test factors in the health of the host upon which the DataNode is running. A failure of this test means that the host running the DataNode is experiencing some problem. See that host's status page for more details.This test can be enabled or disabled using the DataNode Host Health Test DataNode monitoring setting.
Short Name: Host Health
Property Name | Description | Template Name | Default Value | Unit |
---|---|---|---|---|
DataNode Host Health Test | When computing the overall DataNode health, consider the host's health. | datanode_host_health_enabled | true | no unit |
DataNode Log Directory Free Space
This DataNode health test checks that the filesystem containing the log directory of this DataNode has sufficient free space. This test can be configured using the Log Directory Free Space Monitoring Absolute Thresholds and Log Directory Free Space Monitoring Percentage Thresholds DataNode monitoring settings.
Short Name: Log Directory Free Space
Property Name | Description | Template Name | Default Value | Unit |
---|---|---|---|---|
Log Directory Free Space Monitoring Absolute Thresholds | The health test thresholds for monitoring of free space on the filesystem that contains this role's log directory. | log_directory_free_space_absolute_thresholds | critical:5.36870912E9, warning:1.073741824E10 | BYTES |
Log Directory Free Space Monitoring Percentage Thresholds | The health test thresholds for monitoring of free space on the filesystem that contains this role's log directory. Specified as a percentage of the capacity on that filesystem. This setting is not used if a Log Directory Free Space Monitoring Absolute Thresholds setting is configured. | log_directory_free_space_percentage_thresholds | critical:never, warning:never | PERCENT |
DataNode NameNode Connectivity
This is a DataNode health test that checks that all the running NameNodes in the HDFS service consider the DataNode alive. A failure of this health test may indicate that the DataNode is having trouble communicating with some or all NameNodes in the service. Look in the DataNode logs for more details. This test can be enabled or disabled using the DataNode Connectivity Health Test DataNode monitoring setting. The DataNode Connectivity Tolerance at Startup DataNode monitoring setting and the Health Check Startup Tolerance NameNode monitoring setting can be used to control the test's tolerance windows around DataNode and NameNode restarts respectively.
Short Name: NameNode Connectivity
Property Name | Description | Template Name | Default Value | Unit |
---|---|---|---|---|
DataNode Connectivity Health Test | Enables the health test that verifies the DataNode is connected to the NameNode | datanode_connectivity_health_enabled | true | no unit |
DataNode Connectivity Tolerance at Startup | The amount of time to wait for the DataNode to fully start up and connect to the NameNode before enforcing the connectivity check. | datanode_connectivity_tolerance | 180 | SECONDS |
Health Check Startup Tolerance | The amount of time allowed after this role is started that failures of health checks that rely on communication with this role will be tolerated. | namenode_startup_tolerance | 5 | MINUTES |
DataNode Pause Duration
This DataNode health test checks that the DataNode threads are not experiencing long scheduling pauses. The test uses a pause monitoring thread in the DataNode that tracks scheduling delay by noting if it is run on its requested schedule. If the thread is not run on its requested schedule, the delay is noted and considered pause time. The health test checks that no more than some percentage of recent time is spent paused. A failure of this health test may indicate that the DataNode is not getting enough CPU resources, or that it is spending too much time doing garbage collection. Inspect the DataNode logs for any pause monitor output and check garbage collection metrics exposed by the DataNode. This test can be configured using the Pause Duration Thresholds and Pause Duration Monitoring Period DataNode monitoring settings.
Short Name: Pause Duration
Property Name | Description | Template Name | Default Value | Unit |
---|---|---|---|---|
Pause Duration Monitoring Period | The period to review when computing the moving average of extra time the pause monitor spent paused. | datanode_pause_duration_window | 5 | MINUTES |
Pause Duration Thresholds | The health test thresholds for the weighted average extra time the pause monitor spent paused. Specified as a percentage of elapsed wall clock time. | datanode_pause_duration_thresholds | critical:60.0, warning:30.0 | no unit |
DataNode Process Status
This DataNode health test checks that the Cloudera Manager Agent on the DataNode host is heart beating correctly and that the process associated with the DataNode role is in the state expected by Cloudera Manager. A failure of this health test may indicate a problem with the DataNode process, a lack of connectivity to the Cloudera Manager Agent on the DataNode host, or a problem with the Cloudera Manager Agent. This test can fail either because the DataNode has crashed or because the DataNode will not start or stop in a timely fashion. Check the DataNode logs for more details. If the test fails because of problems communicating with the Cloudera Manager Agent on the DataNode host, check the status of the Cloudera Manager Agent by running /etc/init.d/cloudera-scm-agent status on the DataNode host, or look in the Cloudera Manager Agent logs on the DataNode host for more details. This test can be enabled or disabled using the DataNode Process Health Test DataNode monitoring setting.
Short Name: Process Status
Property Name | Description | Template Name | Default Value | Unit |
---|---|---|---|---|
DataNode Process Health Test | Enables the health test that the DataNode's process state is consistent with the role configuration | datanode_scm_health_enabled | true | no unit |
DataNode Transceiver Usage
This is a DataNode health test that checks for whether the DataNode transceivers usage is nearing the configured transceivers limit. A transceiver is a thread used to transfer data into or out of the DataNode. If a DataNode hits its transceivers limit, HDFS reads and writes begin to fail. This test can be configured using the DataNode Transceivers Usage Thresholds DataNode monitoring setting. The Maximum Number of Transfer Threads DataNode setting controls the DataNode transceivers limit.
Short Name: Transceiver Usage
Property Name | Description | Template Name | Default Value | Unit |
---|---|---|---|---|
DataNode Transceivers Usage Thresholds | The health test thresholds of transceivers usage in a DataNode. Specified as a percentage of the total configured number of transceivers. | datanode_transceivers_usage_thresholds | critical:95.0, warning:75.0 | PERCENT |
Maximum Number of Transfer Threads | Specifies the maximum number of threads to use for transferring data in and out of the DataNode. | dfs_datanode_max_xcievers | CDH=[[CDH -3.0.0‥CDH -3.0.0]=4096, [CDH 3.0.0‥CDH 4.0.0)=4096, [CDH 4.0.0‥CDH 6.0.0)=4096] | no unit |
DataNode Unexpected Exits
This DataNode health test checks that the DataNode has not recently exited unexpectedly. The test returns "Bad" health if the number of unexpected exits goes above a critical threshold. For example, if this test is configured with a critical threshold of 1, this test would return "Good" health if there have been no unexpected exits recently. If there has been 1 or more unexpected exits recently, this test would return "Bad" health. This test can be configured using the Unexpected Exits Thresholds and Unexpected Exits Monitoring Period DataNode monitoring settings.
Short Name: Unexpected Exits
Property Name | Description | Template Name | Default Value | Unit |
---|---|---|---|---|
Unexpected Exits Monitoring Period | The period to review when computing unexpected exits. | unexpected_exits_window | 5 | MINUTES |
Unexpected Exits Thresholds | The health test thresholds for unexpected exits encountered within a recent period specified by the unexpected_exits_window configuration for the role. | unexpected_exits_thresholds | critical:any, warning:never | no unit |
DataNode Web Server Status
This health test checks that the role's web server is responding quickly to requests by the Cloudera Manager Agent, and that the Cloudera Manager Agent can collect metrics from the web server. Failure of this health test may indicate a problem with the web server of the DataNode, a misconfiguration of the DataNode or a problem with the Cloudera Manager Agent. Consult the Cloudera Manager Agent logs and the logs of the DataNode for more detail. If the test's failure message indicates a communication problem, the Cloudera Manager Agent's HTTP requests to the DataNode's web server are failing or timing out. If the test's failure message indicates an unexpected response, the DataNode's web server responded to the Cloudera Manager Agent's request, but the response could not be interpreted for some reason. This test can be configured using the Web Metric Collection DataNode monitoring setting.
Short Name: Web Server Status
Property Name | Description | Template Name | Default Value | Unit |
---|---|---|---|---|
Web Metric Collection | Enables the health test that the Cloudera Manager Agent can successfully contact and gather metrics from the web server. | datanode_web_metric_collection_enabled | true | no unit |
Web Metric Collection Duration | The health test thresholds on the duration of the metrics request to the web server. | datanode_web_metric_collection_thresholds | critical:never, warning:10000.0 | MILLISECONDS |