ページの先頭行へ戻る
Interstage Big Data Parallel Processing Server V1.0.1 ユーザーズガイド
Interstage

11.1.3 キャッシュローカル機能で使用する SSH 認証キー設定

DFS では、キャッシュローカル MapReduce 機能を利用した MapReduce ジョブを実行する場合、Hadoop クラスタの各ノードからファイルキャッシュ情報を取得します。
その際、MapReduce ジョブ実行ユーザーによる、ジョブ起動ノードからリモートノードへのリモートコマンド実行(デフォルトでは SSH を使用)により情報を取得するため、あらかじめリモートコマンド実行を可能にしておく必要があります。

キャッシュローカル機能を使用するかどうかは、pdfs.fs.local.cache.location プロパティで設定します。デフォルトは "true" (有効)です。

なお、pdfs.fs.local.cache.location プロパティを "false" (無効)に設定した場合は、以下の作業は不要です。

bdppuser1 というユーザーで、DFS のマウントディレクトリが /mnt/pdfs の場合

  1. 全ノードで共用しているため、DFS をマウントしているいずれかのノードで、以下を bdppuser1 で実行します。

    $ cd ~ <Enter>
    $ ssh-keygen -t rsa -N "" -f id_hadoop <Enter>
    $ echo -n "command=\"/opt/FJSVpdfs/sbin/pdfscachelocal.sh\",no-pty,no-port-forwarding,no-X11-forwarding " > authorized_keys <Enter>
    $ cat id_hadoop.pub >> authorized_keys <Enter>
    $ hadoop fs -mkdir .pdfs <Enter>
    $ hadoop fs -chmod 700 .pdfs <Enter>
    $ hadoop fs -moveFromLocal id_hadoop id_hadoop.pub authorized_keys .pdfs/ <Enter>
    $ hadoop fs -chmod 600 .pdfs/id_hadoop .pdfs/authorized_keys <Enter>
    $ hadoop fs -chmod 644 .pdfs/id_hadoop.pub <Enter>

    上記では、authorized_keys ファイルに以下のようなエントリーが設定されます。

    $ hadoop fs -cat .pdfs/authorized_keys <Enter>
    "command=/opt/pdfs/sbin/pdfscachelocal.sh",no-pty,no-port-forwarding,no-X11-forwarding ssh-rsa 公開キー bdppuser1@自ノード名
  2. 全スレーブサーバおよび開発実行環境サーバ(develop)でユーザー bdppuser1 のホームディレクトリの .ssh/authorized_keys に反映します。

    以下を bdppuser1 で実行します。

    $ xargs -ti ssh {} "umask 0077; mkdir -p .ssh; cat /mnt/pdfs/hadoop/user/bdppuser1/.pdfs/authorized_keys >> .ssh/authorized_keys" < /etc/hadoop/slaves <Enter>
    $ ssh develop "umask 0077; mkdir -p .ssh; cat /mnt/pdfs/hadoop/user/bdppuser1/.pdfs/authorized_keys >> .ssh/authorized_keys" <Enter>
  3. 以下のようにリモート実行することで確認できます。

    $ echo /dummy | ssh -o IdentityFile=/mnt/pdfs/hadoop/user/bdppuser1/.pdfs/id_hadoop -o StrictHostKeyChecking=no -o BatchMode=no {他ノード名} /opt/FJSVpdfs/sbin/pdfscachelocal.sh <Enter>
    2 (*)

    (*) 通常は "2" と出力されます。