2012年12月6日木曜日

Install Cloudera Manager and CDH4 manually


It seems to me that the Cloudera Manager Installer, cloudera-manager-installer.bin, fails due to timeout in a slow network. So, I gave up using cloudera-manager-installer.bin and decided to install Cloudera Manager and CDH4 manually.

  1. JDK
    • Download an RPM of JDK from Oracle's site.
    • Install the RPM.

      $ rpm -Uvh jdk-7u9-linux-x64.rpm
      

    • Set up alternatives manually if /usr/bin/java has not been replaced.

      $ alternatives --install /usr/bin/java java \
          /usr/java/default/bin/java 3
      
      $ alternatives --config java
      


  2. SE Linux
    • Disalbe SE Linux to follow the Cloudera Manager installation instruction.

      $ vi /etc/selinux/config
          // Set SELINUX=disabled
      

    • Reboot the machine to make the new settings effective.

      $ reboot
      


  3. iptables
    • Disable iptables to follow the Cloudera Manager installation instruction.

      $ service iptables stop
      


  4. PostgreSQL
    • Install PostgreSQL for Cloudera Manager.

      $ yum install postgresql
      $ yum install postgresql-server
      


  5. Cloudera Manager
    • Install tools needed to copy Cloudera Manager repository.

      $ yum install yum-utils createrepo
      

    • Prepare information about Cloudera Manager repository. Create a file named cloudera-manager.repo under /etc/yum.repos.d/ whose content is shown below.

      $ vi /etc/yum.repos.d/cloudera-manager.repo
      

      [cloudera-manager]
      name=Cloudera Manager
      baseurl=http://archive.cloudera.com/cm4/redhat/6/x86_64/cm/4/
      gpgkey=http://archive.cloudera.com/cm4/redhat/6/x86_64/cm/RPM-GPG-KEY-cloudera
      gpgcheck=1
      

    • Copy cloudera-manager repository.

      $ mkdir -p /usr/local/repos
      $ cd /usr/local/repos
      $ reposync -r cloudera-manager
      $ createrepo /usr/local/repos/cloudera-manager
      

    • Change the place of cloudera-manager repository to the cloned repository on the local file system. Open /etc/yum.repos.d/cloudera-manager.repo and change the value of baseurl as follows. Note that the number of slashes after file: is 3.

      $ vi /etc/yum.repos.d/cloudera-manager.repo
      

      baseurl=file:///usr/local/repos/cloudera-manager/
      

    • Import the GPG key of Cloudera Manager.

      $ rpm --import \
          http://archive.cloudera.com/cm4/redhat/6/x86_64/cm/RPM-GPG-KEY-cloudera
      

    • Install components of Cloudera Manager.

      $ yum install cloudera-manager-daemons
      $ yum install cloudera-manager-server
      $ yum install cloudera-manager-server-db
      

    • Initialize the database of Cloudera Manager.

      $ service cloudera-scm-server-db initdb
      


  6. CDH
    • Prepare information about CDH repository. Create a file named cloudera-cdh4.repo under /etc/yum.repos.d/ whose content is shown below.

      $ vi /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
      

    • Copy cloudera-cdh4 repository.

      $ cd /usr/local/repos
      $ reposync -r cloudera-cdh4
      $ createrepo /usr/local/repos/cloudera-cdh4
      

    • Change the place of cloudera-cdh4 repository to the cloned repository on the local file system. Open /etc/yum.repos.d/cloudera-cdh4.repo and change the value of baseurl as follows. Note that the number of slashes after file: is 3.

      $ vi /etc/yum.repos.d/cloudera-cdh4.repo
      

      baseurl=file:///usr/local/repos/cloudera-cdh4/
      

    • Import the GPG key of CDH.

      $ rpm --import \
          http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
      

    • Install components of CDH. The example below installs ZooKeeper, HDFS, MapReduce and HBase onto a single machine.

      $ yum install hadoop-0.20-mapreduce-jobtracker
      $ yum install hadoop-hdfs-namenode
      $ yum install hadoop-hdfs-secondarynamenode
      $ yum install hadoop-0.20-mapreduce-tasktracker
      $ yum install hadoop-hdfs-datanode
      $ yum install hadoop-client
      $ yum install zookeeper-server
      $ yum install hbase
      


  7. Cloudera Manager Agent
    • Install Cloudera Manager Agent onto machines to be managed by Cloudera Manager.

      $ yum install cloudera-manager-agent
      

    • Edit the configuration file of Cloudera Manager Agent to set a proper value to server_host.

      $ vi /etc/cloudera-scm-agent/config.ini
      


  8. Cluster Setup
    • Start Cloudera Manager.

      $ service cloudera-scm-server-db start
      $ service cloudera-scm-server start
      

    • Start Cloudera Manager Agent.

      $ service cloudera-scm-agent start
      

    • Access the Web UI of Cloudera Manager by a web browser. If your Cloudera Manager is running on localhost, access the URL below. The default ID and password to login the page are "admin" and "admin".

      http://localhost:7180/

    • Setup your cluster by Cloudera Manager Web UI. Note that you can skip the steps to install CDH onto cluster machines via Cloudera Manager because you have already done it.


Cloudera Manager と CDH4 を手作業でインストールする


Cloudera Manager のインストーラーである cloudera-manager-installer.bin は、速度の遅いネットワークではタイムアウトのせいで失敗してしまう (ように見える)。そこで、cloudera-manager-installer.bin を使うことを諦め、手作業で Cloudera Manager と CDH4 をインストールすることにした。

  1. JDK
    • Oracle のサイトから JDK の RPM をダウンロードする。
    • RPM をインストールする。

      $ rpm -Uvh jdk-7u9-linux-x64.rpm
      

    • /usr/bin/java が置き換わっていない場合は手作業で alternatives を設定する。

      $ alternatives --install /usr/bin/java java \
          /usr/java/default/bin/java 3
      
      $ alternatives --config java
      


  2. SE Linux
    • Cloudera Manager のインストール手順に従い、SE Linux を無効にする。

      $ vi /etc/selinux/config
          // SELINUX=disabled と設定する。
      

    • 新しい設定を有効にするため、マシンを再起動する。

      $ reboot
      


  3. iptables
    • Cloudera Manager のインストール手順に従い、iptables を無効にする。

      $ service iptables stop
      


  4. PostgreSQL
    • Cloudera Manager が使うので、PostgreSQL をインストールする。

      $ yum install postgresql
      $ yum install postgresql-server
      


  5. Cloudera Manager
    • Cloudera Manager リポジトリをコピーするのに必要なツールをインストールする。

      $ yum install yum-utils createrepo
      

    • Cloudera Manager リポジトリの情報を用意する。cloudera-manager.repo という名前のファイルを /etc/yum.repos.d/ ディレクトリに作成し、下記の内容を書き込む。

      $ vi /etc/yum.repos.d/cloudera-manager.repo
      

      [cloudera-manager]
      name=Cloudera Manager
      baseurl=http://archive.cloudera.com/cm4/redhat/6/x86_64/cm/4/
      gpgkey=http://archive.cloudera.com/cm4/redhat/6/x86_64/cm/RPM-GPG-KEY-cloudera
      gpgcheck=1
      

    • cloudera-manager リポジトリをコピーする。

      $ mkdir -p /usr/local/repos
      $ cd /usr/local/repos
      $ reposync -r cloudera-manager
      $ createrepo /usr/local/repos/cloudera-manager
      

    • cloudera-manager リポジトリの場所を、ローカルファイルシステム上にコピーしたリポジトリへと変更する。/etc/yum.repos.d/cloudera-manager.repo を開き、baseurl の値を次のように変更する。file: の後に続くスラッシュの数は 3 なので注意。

      $ vi /etc/yum.repos.d/cloudera-manager.repo
      

      baseurl=file:///usr/local/repos/cloudera-manager/
      

    • Cloudera Manager の GPG キーをインポートする。

      $ rpm --import \
          http://archive.cloudera.com/cm4/redhat/6/x86_64/cm/RPM-GPG-KEY-cloudera
      

    • Cloudera Manager のコンポーネントをインストールする。

      $ yum install cloudera-manager-daemons
      $ yum install cloudera-manager-server
      $ yum install cloudera-manager-server-db
      

    • Cloudera Manager のデータベースを初期化する。

      $ service cloudera-scm-server-db initdb
      


  6. CDH
    • CDH リポジトリの情報を用意する。cloudera-cdh4.repo という名前のファイルを /etc/yum.repos.d/ ディレクトリに作成し、下記の内容を書き込む。

      $ vi /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
      

    • cloudera-cdh4 リポジトリをコピーする。

      $ cd /usr/local/repos
      $ reposync -r cloudera-cdh4
      $ createrepo /usr/local/repos/cloudera-cdh4
      

    • cloudera-cdh4 リポジトリの場所を、ローカルファイルシステム上にコピーしたリポジトリへと変更する。/etc/yum.repos.d/cloudera-cdh4.repo を開き、baseurl の値を次のように変更する。file: の後に続くスラッシュの数は 3 なので注意。

      $ vi /etc/yum.repos.d/cloudera-cdh4.repo
      

      baseurl=file:///usr/local/repos/cloudera-cdh4/
      

    • CDH の GPG キーをインポートする。

      $ rpm --import \
          http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
      

    • CDH のコンポーネントをインストールする。下記の例では、一台のマシン上に ZooKeeper, HDFS, MapReduce, HBase をインストールしている。

      $ yum install hadoop-0.20-mapreduce-jobtracker
      $ yum install hadoop-hdfs-namenode
      $ yum install hadoop-hdfs-secondarynamenode
      $ yum install hadoop-0.20-mapreduce-tasktracker
      $ yum install hadoop-hdfs-datanode
      $ yum install hadoop-client
      $ yum install zookeeper-server
      $ yum install hbase
      


  7. Cloudera Manager Agent
    • Cloudera Manager で管理するマシンに Cloudera Manager Agent をインストールする。

      $ yum install cloudera-manager-agent
      

    • Cloudera Manager Agent の設定ファイルを開き、server_host に適切な値を設定する。

      $ vi /etc/cloudera-scm-agent/config.ini
      


  8. クラスタ設定
    • Cloudera Manager を起動する。

      $ service cloudera-scm-server-db start
      $ service cloudera-scm-server start
      

    • Cloudera Manager Agent を起動する。

      $ service cloudera-scm-agent start
      

    • ウェブブラウザで Cloudera Manager のウェブ UI にアクセスする。Cloudera Manager が localhost で実行中であるなら、次の URL にアクセスする。ページにログインするためのデフォルトの ID とパスワードは admin / admin である。

      http://localhost:7180/

    • Cloudera Manager ウェブ UI でクラスタをセットアップする。既に CDH をインストール済みなので、Cloudera Manager を使ってクラスタマシン上に CDH をインストールするという手順はスキップできる。

2012年12月2日日曜日

Newer git than the one installed by "yum install git"

If you want to have a newer git than the one installed by "yum install git", do the following.

// Install /usr/bin/curl-config
$ yum install curl-devel

// Install expat.h
$ yum install expat-devel

// Install openssl/ssl.h
$ yum install openssl-devel

// Install C compiler
$ yum install gcc

// Install Perl's ExtUtils/MakeMaker
$ yum install perl-ExtUtils-MakeMaker

// Clone the git source code by git.
$ git clone git://git.kernel.org/pub/scm/git/git.git

// Check the latest tag
$ cd git
$ git tag
......
v1.8.0-rc2
v1.8.0-rc3
v1.8.0.1
        (<--- Latest)


// Check out the latest version
$ git checkout v1.8.0.1

// Build and install
$ make prefix=/usr/local all
$ make prefix=/usr/local install

// Check if the latest git has been installed.
$ /usr/local/bin/git --version
1.8.0.1





「yum install git」でインストールされる git よりも新しい git がほしい場合は次のようにする。

// /usr/bin/curl-config をインストールする。
$ yum install curl-devel

// expat.h をインストールする。
$ yum install expat-devel

// openssl/ssl.h をインストールする。
$ yum install openssl-devel

// C コンパイラーをインストールする。
$ yum install gcc

// Perl の ExtUtils/MakeMaker をインストールする。
$ yum install perl-ExtUtils-MakeMaker

// Git を使って git のソースコードをクローンする。
$ git clone git://git.kernel.org/pub/scm/git/git.git

// 最新タグを調べる。
$ cd git
$ git tag
......
v1.8.0-rc2
v1.8.0-rc3
v1.8.0.1
        (← 最新)


// 最新バージョンをチェックアウトする。
$ git checkout v1.8.0.1

// ビルドしてインストール
$ make prefix=/usr/local all
$ make prefix=/usr/local install

// 最新の git がインストールされたかどうか調べる。
$ /usr/local/bin/git --version
1.8.0.1