Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

Hadoopの環境にあると便利なツール(parallel-ssh)

こんばんは、はじめまして、
Skipperです。

今日は、Hadoopに関連して、
Hadoopの環境にあると便利なツールの1つを紹介します。
 #他にもKickStart、puppet、WOLなどあるのですが、書ききれないので
 #1つに絞りました。

parallel-ssh

Hadoopで性能出すためには、
マシンを最低10台必要だと言われています。

ですが、仮に10台のマシンを用意したとして、
 1台1台ログインしてログ集めたり、Hadoopのサービスを再起動したり…
というのは面倒ですよね。

このparallel-sshは、そんな面倒な操作をすべて1回でやってくれます。

私もこれで複数台のPCを一度にシャットダウンの画面にしたときは、
ちょっと感動しました。

使い方

使い方はいたって簡単。
一度に操作したいマシンのホスト名(IPアドレス)をファイルに書き出し、
[hostlist]

centos
ubuntu
redhat

*1

以下のコマンドを1回だけ実行します。
そうすると、ファイルに書いたマシン全てで、指定したユーザでコマンドを実行してくれます。

 pssh -h hostlist -l (実行するときのユーザ名) -i (実行するコマンド)

もし、parallel-sshを実行するPCとparallel-sshで実行されるPCとの間で
sshで通信した事がない場合は、「-A」オプションをつけてください。
そうすれば、指定したユーザのパスワードを求められ、
正しく入力すれば実行できるようになります。
また同じパスワードならば、1回入力すれば全てのマシンで同時に認証されます。

また、フォルダを指定した操作(lsやmvなど)で相対パスを使用する場合、
指定したユーザのホームディレクトリからの相対パスになるようです。


実はparallel-sshには他にも以下のコマンドが用意されています。
 pscp(ファイルの転送:scpの複数台版)
 prsync(フォルダの同期:rsyncの複数台版)
 pnuke(プロセスのkill)
 pslurp(ファイルの取得:scpの複数台版)
使い方はpssh同様、
 「-h」オプション ⇒ ホスト名を書いたファイルを指定
 「-l」オプション ⇒ 実行したいユーザを指定
 「-A」オプション ⇒ パスワード認証
オプションの後には、フォルダを指定したりプロセス名を指定すればOK。
もっと具体的な使い方を知りたい方はこちらの記事を参照してください。

インストール

インストール方法(Centos)は以下の通りです。
1.pythonをインストール
以下のコマンドでできます。

yum install python

もしくはpythonのrpmをDVDから取得して、以下のコマンドを実行します。
*2

rpm -Uvh (pythonのrpm)

2.psshのtarを解凍
parallel-sshをプロジェクトページからダウンロードして、
インストールしたいディレクトリで解凍します。
*3

 gunzip pssh-x-x-x.tar.gz
 tar -xvf pssh-x-x-x.tar

3.psshのインストール
解凍してできたフォルダに移動し、以下のコマンドを実行します。

 python setup.py install

以上でparallel-sshが使えるようになります。

*1:ファイル名は任意ですが、ココではhostlistとします

*2:Centos5(64bit)のイメージはこちら:http://centos.mirrors.atwab.net/5/os/x86_64/CentOS/

*3:parallel-sshのダウンロードページ:http://code.google.com/p/parallel-ssh/downloads/list