Hadoop HDFS DataNode¶
HDFS DataNode のメトリクス情報を収集します。
インストールとデプロイ¶
DataNode は Java で開発されているため、jmx-exporter を使ってメトリクス情報を収集できます。
1. DataNode の設定¶
1.1 jmx-exporter をダウンロード¶
ダウンロード先:https://github.com/prometheus/jmx_exporter
1.2 jmx スクリプトをダウンロード¶
ダウンロード先:https://github.com/lrwh/jmx-exporter/blob/main/hadoop-hdfs-datanode.yml
1.3 DataNode の起動パラメータを調整¶
datanode の起動パラメータに追加します
{{JAVA_GC_ARGS}} -javaagent:/opt/jmx/jmx_exporter-1.0.1.jar=localhost:17106:/opt/jmx/hadoop-hdfs-datanode.yml
1.4 DataNode を再起動¶
2. DataKit コレクタ設定¶
2.1 DataKit をインストール¶
2.2 コレクタを設定¶
jmx-exporter によりmetrics URL を直接公開できるため、prom コレクタで直接収集できます。
DataKit のインストールディレクトリ 配下の conf.d/samples に移動し、prom.conf.sample を datanode.conf にコピーします。
cp prom.conf.sample datanode.conf
datanode.conf の内容を次のように調整します。
urls = ["http://localhost:17106/metrics"]
source ="hdfs-datanode"
[inputs.prom.tags]
component = "hdfs-datanode"
interval = "10s"
その他の設定は必要に応じて調整してください
、パラメータの説明:
- urls:
jmx-exporterのメトリクスアドレス。ここには、対象コンポーネントが公開しているメトリクス URL を設定します - source:コレクタの別名。区別できるようにすることを推奨します
- keep_exist_metric_name: メトリクス名を保持
- interval:収集間隔
- inputs.prom.tags: 追加タグを設定
3. DataKit を再起動¶
メトリクス¶
Hadoop メトリクスセット¶
DataNode のメトリクスは Hadoop メトリクスセット配下にあり、ここでは主に DataNode 関連メトリクスを説明します。
| Metrics | 説明 | 単位 |
|---|---|---|
datanode_block_verification_failures |
データノードのブロック検証失敗回数 |
count |
datanode_blocks_cached |
データノードがキャッシュしたブロック数 |
count |
datanode_blocks_read |
データノードが読み取ったブロック数 |
count |
datanode_blocks_removed |
データノードが削除したブロック数 |
count |
datanode_blocks_replicated |
データノードが複製したブロック数 |
count |
datanode_blocks_uncached |
データノードのキャッシュ解除済みブロック数 |
count |
datanode_blocks_verified |
データノードが検証したブロック数 |
count |
datanode_blocks_written |
データノードが書き込んだブロック数 |
count |
datanode_bytes_read |
データノードが読み取ったバイト数 |
byte |
datanode_bytes_written |
データノードが書き込んだバイト数 |
byte |
datanode_cache_capacity |
データノードのキャッシュ容量 |
byte |
datanode_cache_reports_avg_time |
データノードのキャッシュレポート平均時間 |
ms |
datanode_cache_reports_num_ops |
データノードのキャッシュレポート実行回数 |
count |
datanode_cache_used |
データノードの使用済みキャッシュ量 |
byte |
datanode_capacity |
データノードの容量 |
count |
datanode_data_node_active_xceivers_count |
データノードのアクティブな受信側数 |
count |
datanode_datanode_network_errors |
データノードのネットワークエラー回数 |
count |
datanode_dfs_used |
データノードの使用済み DFS 容量 |
byte |
datanode_dropped_pub_all |
データノードでドロップされた公開メッセージ総数 |
count |
datanode_estimated_capacity_lost |
データノードで推定された失われた容量 |
byte |
datanode_flush_io_rate_avg_time |
データノードのフラッシュ I/O 平均時間 |
ms |
datanode_flush_io_rate_num_ops |
データノードのフラッシュ I/O 実行回数 |
count |
datanode_flush_nanos_avg_time |
データノードのフラッシュ操作平均時間(ナノ秒) |
ns |
datanode_flush_nanos_num_ops |
データノードのフラッシュ操作回数 |
count |
datanode_fsync_count |
データノードの fsync 操作回数 |
count |
datanode_heartbeats_avg_time |
データノードのハートビート平均時間 |
ms |
datanode_heartbeats_num_ops |
データノードのハートビート実行回数 |
count |
datanode_heartbeats_total_avg_time |
データノードの総ハートビート平均時間 |
ms |
datanode_heartbeats_total_num_ops |
データノードの総ハートビート実行回数 |
count |
datanode_incremental_block_reports_avg_time |
データノードの増分ブロックレポート平均時間 |
ms |
datanode_incremental_block_reports_num_ops |
データノードの増分ブロックレポート実行回数 |
count |
datanode_lifelines_avg_time |
データノードのライフライン平均時間 |
ms |
datanode_lifelines_num_ops |
データノードのライフライン実行回数 |
count |
datanode_metadata_operation_rate_avg_time |
データノードのメタデータ操作平均時間 |
ms |
datanode_metadata_operation_rate_num_ops |
データノードのメタデータ操作回数 |
count |
datanode_num_active_sinks |
データノードのアクティブなシンク数 |
count |
datanode_num_active_sources |
データノードのアクティブなソース数 |
count |
datanode_num_all_sinks |
データノードの全シンク数 |
count |
datanode_num_all_sources |
データノードの全ソース数 |
count |
datanode_num_blocks_cached |
データノードがキャッシュしたブロック数 |
count |
datanode_num_blocks_failed_to_cache |
データノードのキャッシュ失敗ブロック数 |
count |
datanode_num_blocks_failed_to_un_cache |
データノードのキャッシュ解除失敗ブロック数 |
count |
datanode_num_blocks_failed_to_uncache |
データノードのキャッシュ解除失敗ブロック数 |
count |
datanode_num_failed_volumes |
データノードの失敗したボリューム数 |
count |
datanode_publish_avg_time |
データノードの公開平均時間 |
ms |
datanode_publish_num_ops |
データノードの公開実行回数 |
count |
datanode_ram_disk_blocks_deleted_before_lazy_persisted |
データノードで遅延永続化前に削除された RAM ディスクブロック数 |
count |
datanode_ram_disk_blocks_evicted |
データノードで追い出された RAM ディスクブロック数 |
count |
datanode_ram_disk_blocks_read_hits |
データノードの RAM ディスクブロック読み取りヒット数 |
count |
datanode_ram_disk_blocks_write |
データノードの RAM ディスクブロック書き込み回数 |
count |
datanode_ram_disk_bytes_write |
データノードの RAM ディスク書き込みバイト数 |
byte |
datanode_read_block_op_avg_time |
データノードのブロック読み取り操作平均時間 |
ms |
datanode_read_block_op_num_ops |
データノードのブロック読み取り操作回数 |
count |
datanode_read_io_rate_avg_time |
データノードの読み取り I/O 平均時間 |
ms |
datanode_read_io_rate_num_ops |
データノードの読み取り I/O 実行回数 |
count |
datanode_reads_from_local_client |
データノードのローカルクライアントからの読み取り回数 |
count |
datanode_reads_from_remote_client |
データノードのリモートクライアントからの読み取り回数 |
count |
datanode_remaining |
データノードの残容量 |
byte |
datanode_remote_bytes_read |
データノードのリモート読み取りバイト数 |
byte |
datanode_remote_bytes_written |
データノードのリモート書き込みバイト数 |
byte |
datanode_replace_block_op_avg_time |
データノードのブロック置換操作平均時間 |
ms |
datanode_replace_block_op_num_ops |
データノードのブロック置換操作回数 |
count |
datanode_send_data_packet_blocked_on_network_nanos_avg_time |
データノードのデータパケット送信時のネットワーク待機平均時間(ナノ秒) |
ns |
datanode_send_data_packet_blocked_on_network_nanos_num_ops |
データノードのデータパケット送信時のネットワーク待機回数 |
count |
datanode_send_data_packet_transfer_nanos_avg_time |
データノードのデータパケット送信平均時間(ナノ秒) |
ns |
datanode_send_data_packet_transfer_nanos_num_ops |
データノードのデータパケット送信回数 |
count |
datanode_snapshot_avg_time |
データノードのスナップショット平均時間 |
ms |
datanode_snapshot_num_ops |
データノードのスナップショット実行回数 |
count |
datanode_sync_io_rate_avg_time |
データノードの同期 I/O 平均時間 |
ms |
datanode_sync_io_rate_num_ops |
データノードの同期 I/O 実行回数 |
count |
datanode_total_data_file_ios |
データノードの総データファイル I/O 回数 |
count |
datanode_total_file_io_errors |
データノードの総ファイル I/O エラー回数 |
count |
datanode_total_metadata_operations |
データノードの総メタデータ操作回数 |
count |
datanode_total_read_time |
データノードの総読み取り時間 |
ms |
datanode_total_write_time |
データノードの総書き込み時間 |
ms |
datanode_volume_failures |
データノードのボリューム失敗回数 |
count |
datanode_write_block_op_avg_time |
データノードのブロック書き込み操作平均時間 |
ms |
datanode_write_block_op_num_ops |
データノードのブロック書き込み操作回数 |
count |
datanode_write_io_rate_avg_time |
データノードの書き込み I/O 平均時間 |
ms |
datanode_write_io_rate_num_ops |
データノードの書き込み I/O 実行回数 |
count |
datanode_writes_from_local_client |
データノードのローカルクライアントからの書き込み回数 |
count |
datanode_writes_from_remote_client |
データノードのリモートクライアントからの書き込み回数 |
count |
datanode_xceiver_count |
データノードの受信側数 |
count |
datanode_xmits_in_progress |
データノードで進行中の送信回数 |
count |