[[Hadoop運用]] >

* 目次 [#x68df769]
#contents

* reposyncによる構築 [#d2a5c9b8]

** 構築手順 [#pa90d443]

*** yum-utils および createrepo のインストール [#g2862d1d]

- &ref(images/centos.png,nolink);CentOS
#geshi{{
$ sudo yum install yum-utils createrepo
}}
- &ref(images/debian.png,nolink);Debian: 現在の安定版であるwheezyには yum-utils がありませんので、jessie(testing)から直接依存関係を満たす yum-utils と yum をダウンロードしてインストールします。
#geshi{{
$ sudo apt-get install yum
$ sudo dpkg -i yum-utils_1.1.31-1_all.deb yum_3.4.3-2_all.deb  # from jessie
$ sudo apt-get install createrepo
}}

*** リポジトリの構築 [#d6d1e600]

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

+ ミラー作業用のユーザ(この例では、''yum-mirror'')を用意します。
 sudo adduser --system --home /var/spool/yum-mirror --shell /bin/sh --disabled-password yum-mirror
+ CDHのマニュアルを参考にミラー対象のrepoファイルをインストールします。
-- &ref(images/debian.png,nolink);Debianの場合には、''/etc/yum/repos.d'' 以下に配備します。
#geshi{{
$ 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
}}
#geshi{{
$ 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
}}
+ ミラー先のローカルディレクトリを用意します。パスに取得先のミラーサイトのauthority部を含めておくと、複数リポジトリのミラー時に混乱しません。また、reposync コマンドは同期時にリポジトリIDでサブディレクトリを作成し、そこにファイルをダウロードしますので、あらかじめシンボリックリンクでそのパスを調整しておきます。
#geshi{{
$ sudo mkdir -p /var/spool/cdh-mirror/mirror/archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/cloudera-cdh4
$ sudo ln -s    /var/spool/cdh-mirror/mirror/archive.cloudera.com/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
}}
+ 初回のみ確認の上、GPG鍵をダウンロードします。
#geshi{{
$ 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/archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
}}
+ ''/usr/local/bin/cdh-mirror'': 同期用のスクリプトを作成します。&ref(images/debian.png,nolink);Debianの場合には yum.conf が /etc 直下にありませんので、明示指定します。
#geshi(bash,number){{
#!/bin/sh
 
echo -n 'Begin time: '; date
# Debian
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
# CentOS
#reposync -a x86_64 -r cloudera-cdh4 -p /var/spool/cdh-mirror/mirror/archive.cloudera.com/cdh4/redhat/6/x86_64/cdh
createrepo /var/spool/cdh-mirror/mirror/archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/4
echo -n 'End time: '; date
}}
+ 初回は手動でリポジトリを同期させ、様子を確認します。
#geshi{{
$ sudo -u yum-mirror /usr/local/bin/cdh-mirror
}}
+ ''/etc/cron.d/cdh-mirror'': 定期更新のため、cronの設定を行います。
#geshi(bash,number){{
0 3   * * *  yum-mirror   /usr/local/bin/cdh-mirror > /var/spool/cdh-mirror/var/cron.log 2>&1
}}
+ 公開のためのWebサーバを用意します
#geshi{{
[Debian]$ sudo apt-get install apache2
[CentOS]$ sudo yum install httpd
}}
+ Webサーバの設定ファイル(&ref(images/debian.png,nolink);''/etc/apache2/conf.d/cdh-mirror''、&ref(images/centos.png,nolink);''/etc/httpd/conf.d/cdh-mirror.conf'')を以下の要領で追加し、反映させます。ミラー対象サイトのauthority部(この場合は、archive.cloudera.com)を省略する運用も考えられますが、複数リポジトリのミラーを提供する場合には明示した方がよいでしょう。
#geshi(apache,number){{
Alias /archive.cloudera.com /var/spool/cdh-mirror/mirror/archive.cloudera.com
<Directory /var/spool/cdh-mirror/mirror/archive.cloudera.com>
#Alias /cdh4 /var/spool/cdh-mirror/mirror/archive.cloudera.com/cdh4
#<Directory /var/spool/cdh-mirror/mirror/archive.cloudera.com/cdh4>
  Options Indexes SymLinksIfOwnerMatch FollowSymLinks
  IndexOptions NameWidth=* +SuppressDescription
  AllowOverride FileInfo Indexes
  Order Deny,Allow
  Allow from all
  ErrorDocument 404 default
</Directory>
}}

*** 各ノードのrepoファイルの変更 [#aa5be17b]

+ 上記のミラー構築例では意図的にCDHリポジトリのパス構造を踏襲していますので、repoファイルについては構築したミラーサーバのauthority部(以下の例では、ftp.grid.example.com)を追加すれば済みます。
- /etc/yum.repos.d/cloudera-cdh4.repo
#geshi(bash,number){{
[cloudera-cdh4]
name=Cloudera's Distribution for Hadoop, Version 4
baseurl=http://ftp.grid.example.com/archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/4/
gpgkey =  http://ftp.grid.example.com/archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
#baseurl=http://ftp.grid.example.com/cdh4/redhat/6/x86_64/cdh/4/
#gpgkey =  http://ftp.grid.example.com/cdh4/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
gpgcheck = 1
}}


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