0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HDFS容量監視を実施してみた。

0
Last updated at Posted at 2026-01-02

はじめに

これまで構築してきたHadoopの監視のため、
手始めにHDFS監視を実施してみました。

前提

NameNode Web: http://localhost:9870

Exporter listen: :9404

Prometheus は別ホストから master1:9404/metrics と master2:9404/metrics にアクセス

以下のURLを参考にHadoopを構築していること。

環境

Bigtop 3.3.6
NameNode HA(master1 / master2)
NameNode Web UI: http://192.168.11.xx:9870
Prometheus / Grafana は別ホスト
systemd 管理
Java 8 or 11(どちらでも可)

1. JMX Exporter を設置(master1 / master2)

1-1. JAR 配置

sudo mkdir -p /opt/jmx_exporter
cd /opt/jmx_exporter

sudo curl -LO https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.20.0/jmx_prometheus_javaagent-0.20.0.jar
sudo ln -s jmx_prometheus_javaagent-0.20.0.jar jmx_prometheus_javaagent.jar

2. NameNode 用 JMX Exporter 設定ファイル作成

2-1. config 作成

sudo tee /opt/jmx_exporter/namenode.yml << 'EOF'
lowercaseOutputName: true
lowercaseOutputLabelNames: true
rules:
  - pattern: '.*'
EOF

3. NameNode に javaagent を仕込む

3-1. systemd override を作る

sudo vi /etc/systemd/system/hadoop-hdfs-namenode.service

開いたら[Service]以下に下記を貼り付け:

Environment="HADOOP_OPTS=-javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent.jar=9404:/opt/jmx_exporter/namenode.yml"

ポート 9404 は exporter 用(他と被らなければOK)

3-2. systemd 再読込

sudo systemctl daemon-reload

4. NameNode 再起動(HA 順守)

master1 / master2 片方ずつ(Active→Stanbyの順で行う。)

sudo systemctl restart hadoop-hdfs-namenode

確認:

sudo systemctl status hadoop-hdfs-namenode --no-pager

→ステータスに問題ないこと。

5. NameNode 側で metrics が出ているか確認

master1 / master2 それぞれで以下のコマンドを実施。

curl -s http://localhost:9404/metrics | grep -i -E 'hadoop_namenode_capacity(used|remaining|total)' | head -n 30

hadoop系のパラメータが見れればOK

6. Prometheus(別ホスト)設定

prometheus設定ファイルを開き、以下を追記する。

scrape_configs:
  - job_name: 'hdfs-namenode'
    static_configs:
      - targets:
          - 'master1:9404'
          - 'master2:9404'

reload / restart 後、/targets で UP を確認。

7. Grafana/PromQL

以下のクエリ設定でグラフ作成すれば参照できます。

7-1. 総容量(GB)

hadoop_namenode_capacitytotal {name="FSNamesystem"} / 1024^3

7-2. 使用量 / 残量(bytes → GiB)

使用量

hadoop_namenode_capacityused {name="FSNamesystem"} / 1024^3

残量

hadoop_namenode_capacityremaining {name="FSNamesystem"} / 1024^3

7-3. 有効容量(GB)

有効容量 = 使用量 + 残量

( hadoop_namenode_capacityused {name="FSNamesystem"} +  hadoop_namenode_capacityremaining {name="FSNamesystem"}) / 1024^3

7-4. 使用率(%)

使用量をを有効容量で割ること。

100 *
(hadoop_namenode_capacityused {name="FSNamesystem"}
/
(hadoop_namenode_capacityused {name="FSNamesystem"} +  hadoop_namenode_capacityremaining {name="FSNamesystem"}))

7-5. HAで「Active 側だけ」に寄せる

HA だと master1 と master2 が両方 scrape されます。
Active/Standby どっちも同じ値を出すこともあるので、基本は「最大値を採用」が簡単です。

以下のように記載してください。

max by () ("上記クエリ")
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?