[[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
}}
+ ミラー先のローカルディレクトリを用意します。
#geshi{{
$ sudo mkdir -p /var/spool/cdh-mirror/cdh4/redhat/6/x86_64/cdh
$ 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/cdh4/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
}}
+ reposync コマンドでリポジトリを同期させます。
-- &ref(images/centos.png,nolink);CentOS
#geshi{{
$ sudo -u yum-mirror reposync -a x86_64 -r cloudera-cdh4 -p /var/spool/cdh-mirror/cdh4/redhat/6/x86_64/cdh
}}
-- &ref(images/debian.png,nolink);Debian: 当然ながら、yum.conf は /etc 直下にありませんので、明示指定します。
#geshi{{
$ sudo -u yum-mirror reposync -c /etc/yum/yum.conf -a x86_64 -r cloudera-cdh4 -p /var/spool/cdh-mirror/cdh4/redhat/6/x86_64/cdh
}}
+ リポジトリIDでディレクトリが作成されますので、初回のみシンボリックリンクでそのパスを調整します。
#geshi{{
$ sudo -u yum-mirror ln -s /var/spool/cdh-mirror/cdh4/redhat/6/x86_64/cdh/{cloudera-cdh4,4}
}}
+ createrepo コマンドでメタデータを生成します。
#geshi{{
$ sudo -u yum-mirror createrepo /var/spool/cdh-mirror/cdh4/redhat/6/x86_64/cdh/4
}}
+ 公開のための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'')を以下の要領で追加し、反映させます。
#geshi(apache,number){{
Alias /cdh4/redhat/6/x86_64/cdh /var/spool/cdh-mirror/cdh4/redhat/6/x86_64/cdh
<Directory /var/spool/cdh-mirror/cdh4/redhat/6/x86_64/cdh>
  Options Indexes SymLinksIfOwnerMatch FollowSymLinks
  IndexOptions NameWidth=* +SuppressDescription
  AllowOverride FileInfo Indexes
  Order Deny,Allow
  Allow from all
  ErrorDocument 404 default
</Directory>

#Alias /cdh4/redhat/6/i386/cdh /var/spool/cdh-mirror/cdh4/redhat/6/i386/cdh
#<Directory /var/spool/cdh-mirror/cdh4/redhat/6/i386/cdh>
#  Options Indexes SymLinksIfOwnerMatch FollowSymLinks
#  IndexOptions NameWidth=* +SuppressDescription
#  AllowOverride FileInfo Indexes
#  Order Deny,Allow
#  Allow from all
#  ErrorDocument 404 default
#</Directory>
}}

*** repoファイルの変更 [#aa5be17b]

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