Hadoop運用 >

目次

reposyncによる構築

構築手順

yum-utils および createrepo のインストール

リポジトリの構築

info.png以下では、cloudera-cdh4 (x86_64)リポジトリを例としていますが、他のリポジトリ(cloudera-gplextras4等)やアーキテクチャでも同じ要領で構築できます。

  1. ミラー作業用のユーザ(この例では、yum-mirror)を用意します。
    sudo adduser --system --home /var/spool/yum-mirror --shell /bin/sh --disabled-password yum-mirror
  2. CDHのマニュアルを参考にミラー対象のrepoファイルをインストールします。
    • debian.pngDebianの場合には、/etc/yum/repos.d 以下に配備します。
      $ cat /etc/yum/repos.d/cloudera-cdh4.repo
      [cloudera-cdh4]
      name=Cloudera's Distribution for Hadoop, Version 4
      baseurl=http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/4/
      gpgkey =  http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
      gpgcheck = 1
      $ cat /etc/yum/repos.d/cloudera-gplextras4.repo
      [cloudera-gplextras4]
      # Packages for Cloudera's Distribution for Hadoop, Version 4, on RedHat or CentOS 6 x86_64
      name=Cloudera's Distribution for Hadoop, Version 4
      baseurl=http://archive.cloudera.com/gplextras/redhat/6/x86_64/gplextras/4/
      gpgkey = http://archive.cloudera.com/gplextras/redhat/6/x86_64/gplextras/RPM-GPG-KEY-cloudera
      gpgcheck = 1
  3. ミラー先のローカルディレクトリを用意します。reposync コマンドは同期時にリポジトリIDでサブディレクトリを作成し、そこにファイルをダウロードしますので、あらかじめシンボリックリンクでそのパスを調整しておきます。
    $ sudo mkdir -p /var/spool/cdh-mirror/mirror/cdh4/redhat/6/x86_64/cdh/cloudera-cdh4
    $ sudo ln -s    /var/spool/cdh-mirror/mirror/cdh4/redhat/6/x86_64/cdh/{cloudera-cdh4,4}
    $ sudo mkdir -p /var/spool/cdh-mirror/var
    $ sudo chown -R yum-mirror:yum-mirror /var/spool/cdh-mirror
  4. 初回のみ確認の上、GPG鍵をダウンロードします。
    $ sudo -u yum-mirror wget http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera \
    > -O /var/spool/cdh-mirror/mirror/cdh4/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
  5. /usr/local/bin/cdh-mirror: 同期用のスクリプトを作成します。debian.pngDebianの場合には yum.conf が /etc 直下にありませんので、明示指定します。
    1. override_attributes(
    2.   'cdh' => {
    3.     'version' => '4.4.0',
    4.     'yum_repo' => {  # リポジトリのインストール設定
    5.       'with_gplextras' => true,
    6.       'update' => true,
    7.       'only_for_mirroring' => true,  # ミラー目的のためにrepoファイルをインストール
    8.       'mirroring' => {               # ターゲット環境
    9.         'platform' => 'centos',
    10.         'platform_version' => '6',
    11.         'arch' => 'x86_64'
    12.       }
    13.     },
    14.     'yum_mirror' => {  # ミラー設定
    15.       'cron_period' => '5 20   * * *',
    16.       'repo_ids' => [
    17.         'cloudera-cdh4',
    18.         'cloudera-gplextras4',
    19.       ],
    20.       'arch' => 'x86_64',
    21.       'url_alias_with_authority_part' => true  # 公開URLに元のリポジトリサイトのauthority部を含めるか
    22.     }
    23.   }
    24. )
  6. 初回は手動でリポジトリを同期させ、様子を確認します。
    $ sudo -u yum-mirror /usr/local/bin/cdh-mirror
  7. /etc/cron.d/cdh-mirror: 定期更新のため、cronの設定を行います。
    1. #!/bin/sh
    2.  
    3. echo -n 'Begin time: '; date
    4. # Debian
    5. reposync -c /etc/yum/yum.conf -a x86_64 -r cloudera-cdh4 -p /var/spool/cdh-mirror/mirror/archive.cloudera.com/cdh4/redhat/6/x86_64/cdh
    6. # CentOS
    7. #reposync -a x86_64 -r cloudera-cdh4 -p /var/spool/cdh-mirror/mirror/archive.cloudera.com/cdh4/redhat/6/x86_64/cdh
    8. createrepo /var/spool/cdh-mirror/mirror/archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/4
    9. echo -n 'End time: '; date
  8. 公開のためのWebサーバを用意します
    [Debian]$ sudo apt-get install apache2
    [CentOS]$ sudo yum install httpd
  9. Webサーバの設定ファイル(debian.png/etc/apache2/conf.d/cdh-mirrorcentos.png/etc/httpd/conf.d/cdh-mirror.conf)を以下の要領で追加し、反映させます。
    1. 0 3   * * *  yum-mirror   /usr/local/bin/cdh-mirror > /var/spool/cdh-mirror/var/cron.log 2>&1

各ノードのrepoファイルの変更

  1. 上記のミラー構築例では意図的にCDHリポジトリのパス構造を踏襲していますので、repoファイルについては、オーソリティ部のみをその構築したミラーサーバに変更すれば済みます。

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS