So-net無料ブログ作成

インフラエンジニアのためのHadoop情報 DataNodeの取り外し [Hadoop]

Hadoopに新しいノードを追加して、古いノードを退役させたり、メンテナンスで一時的にクラスタから外したりしたい場合の手順を示します。
DataNodeをHadoopクラスタからいきなり外す(サービス停止やIP断)と、レプリケーション数が足りなくなり、「Under replicate」エラーが出たり、MapReduceタスクがエラーで終了したりします。いずれはHadoopがノード障害として自動で解消しますが、無駄なエラーや想定外の複製トラフィックは避けたいものです。
Hadoopではそんな時のために、予め取り外すノードを指定しておき、担当ブロックを残りノードで引き継いだのち、安全に取り外す機能があります。
作業はPrimaryNameNodeで行います。
/etc/hadoop-0.20/conf.cluster/にhosts.excludeなるファイルを作成して、取り外すノードのアドレスを記入します。(srv3.example.comが取り外したいノード)
$ vi hosts.exclude
srv3.example.com

このhosts.excludeファイルをhdfs-site.xmlファイル内に指定します。
$ sudo vi hdfs-site.xml

   dfs.hosts.exclude
   /etc/hadoop-0.20/conf/hosts.exclude


ノード情報を更新します。
$ hadoop dfsadmin -refreshNodes

WebUI(http://srv1.example.com:50070/)画面の「Decommissioning Nodes」にexclude指定したサーバの数が表示されます。また、「Number of Under-Replicated Blocks」に再配置対象のブロック数が表示されます。
「Decommissioning Nodes」の欄が0になり、「Dead Node」となれば、DataNodeを取り外すことができます。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。

×

この広告は1年以上新しい記事の更新がないブログに表示されております。