2010年10月14日木曜日

1台でOozieを試してみる(CentOS + Cloudera(CDH3 beta3))

概要
・1台のLinux環境で、簡単に、Oozieを試してみます。
・CentOS(1台)でCloudera社のHadoopパッケージ(CDH3beta3)を利用します。Hadoop環境(CDH3 beta3)の構築方法はこちら

その他の記事

Hadoop(1台構成)HBase,Hive,Pig,HUE,Oozie等(1台構成)Hadoop(複数台構成)
CentOSこちらHBase,Hive,Pig, HUE(旧Cloudera Desktop), Oozieこちら
UbuntuこちらHBase,Hive,Pig,HUE(旧Cloudera Desktop)

必要なもの
・Linux(CentOS)+Cloudera版Hadoop環境(1台) → 構築方法はこちら
・インターネット接続
・Cloudera社のOozieのパッケージ(yumでインターネットからインストール)

作業手順

1. インストール

Linux環境にて、rootで作業します。

1-0. Cloudera社のCDH3リポジトリ確認

Cloudera社のCDH3リポジトリが必要ですので、既に設定されていないか確認します。
ls /etc/yum.repos.d/
で、cloudera-cdh3.repoが存在すれば、OKのはずです。無い場合は、
cd /etc/yum.repos.d/
wget http://archive.cloudera.com/redhat/cdh/cloudera-cdh3.repo
とします。

1-1. Oozieパッケージのインストール

インストール
yum -y install oozie oozie-client

確認
yum list oozie* | grep installed

1-2. Hadoopサーバーの設定

以下を、/etc/hadoop/conf/core-site.xmlに追記します。

<property>
<name>hadoop.proxyuser.oozie.hosts</name>
<value>localhost</value>
</property>
<property>
<name>hadoop.proxyuser.oozie.groups</name>
<value>oozie</value>
</property>

1-3. Oozieサーバーまわりの設定

・MySQLのインストール

インストール
yum -y install mysql mysql-server

初期設定(ここでは、DBサービスを起動して、コマンドラインの設定ウィザードで初期設定を行いました)
service mysqld start
mysql_secure_installation
すべてデフォルト(DBのrootパスワードは、覚えておきましょう)

・ExtJS libraryの設定
http://www.sencha.com/learn/Ext_Version_Archives
からext-2.2.zipをダウンロードします。 (2.2.1とか3は不可です)
ダウンロードファイルを、例えば/tmp/ext-2.2.zipとして配置したとして、

sudo -u oozie /usr/lib/oozie/bin/oozie-setup.sh -extjs /tmp/ext-2.2.zip
...
New Oozie WAR file with added 'ExtJS library' at /usr/lib/oozie/oozie-server/webapps/oozie.war

・MySQL JDBC connector library

http://www.mysql.com/downloads/connector/j/5.1.htmlから、mysql-connector-java-5.1.13.tar.gzを、ダウンロードします。
ダウンロードファイルを、例えば/tmp/mysql-connector-java-5.1.13.tar.gzとして配置したとして、

mkdir /tmp/jdbc/
cd /tmp/jdbc/
tar xzf /tmp/mysql-connector-java-5.1.13.tar.gz
sudo -u oozie /usr/lib/oozie/bin/oozie-setup.sh -jars /tmp/jdbc/mysql-connector-java-5.1.13/mysql-connector-java-5.1.13-bin.jar


・Oozieの設定ファイル

vi /usr/lib/oozie/conf/oozie-site.xml

以下のような設定を追加します。
<property>
<name>oozie.db.schema.create</name>
<value>true</value>
</property>

<property>
<name>oozie.service.DataSourceService.jdbc.driver</name>
<value>com.mysql.jdbc.Driver</value>
</property>

<property>
<name>oozie.service.DataSourceService.jdbc.url</name>
<value>jdbc:mysql://localhost:3306</value>
</property>

<property>
<name>oozie.service.DataSourceService.jdbc.username</name>
<value>oozie</value>
</property>

<property>
<name>oozie.service.DataSourceService.jdbc.password</name>
<value>oozie</value>
</property>

・MySQL
mysql -u root -p
mysql> grant all privileges on oozie.* to 'oozie'@'localhost' identified by 'oozie';
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye

・Oozie Server起動

sudo -u oozie /usr/lib/oozie/bin/oozie-start.sh

1-3. 動作確認
コマンドラインから動作確認
OOZIE_URL=http://localhost:11000/oozie oozie admin -version
Oozie server build version: 2.2.1-78

ブラウザから動作確認
http://ホスト名:11000/oozie
画面例


2. exampleを動かしてみる

exampleのファイルを展開します。
mkdir /tmp/oozie-example
cd /tmp/oozie-example/
tar xzf /usr/lib/oozie/oozie-examples.tar.gz
cd examples/

examples/apps/以下のそれぞれのフォルダ内のjob.propertiesの変更が必要な場合があります。
hdfsやmapreduceのポートが9000と9001で決め打ちしてあるので、
CDHのデフォルトの人は、それぞれ9000 → 8020, 9001 → 8021の変更が必要です。

ここでは、map-reduceを試してみます。
examples/apps/map-reduce/job.propertiesを変更します。

example用の設定やテストファイルを作成
sudo -u oozie hadoop-0.20 fs -mkdir /user/oozie/examples/apps
sudo -u oozie hadoop-0.20 fs -copyFromLocal input-data hdfs://localhost:8020/user/oozie/examples/
cd apps
sudo -u oozie hadoop-0.20 fs -copyFromLocal map-reduce hdfs://localhost:8020/user/oozie/examples/apps/

2-2. exampleを実行してみる

・実行(examples/appsにて)
sudo -u oozie oozie job -oozie http://localhost:11000/oozie -config map-reduce/job.properties -run
job: 0000002-101014103613635-oozie-oozi-W

・ジョブの様子を確認(実行時に表示されるJob Idを引数に)
sudo -u oozie oozie job -oozie http://localhost:11000/oozie -info 0000002-101014103613635-oozie-oozi-W
Job ID : 0000002-101014103613635-oozie-oozi-W
------------------------------------------------------------------------------------------------------------------------------------
Workflow Name : map-reduce-wf
App Path : hdfs://localhost:8020/user/oozie/examples/apps/map-reduce
Status : SUCCEEDED
Run : 0
User : oozie
Group : users
Created : 2010-10-14 03:03
Started : 2010-10-14 03:03
Last Modified : 2010-10-14 03:04
Ended : 2010-10-14 03:04

Actions
------------------------------------------------------------------------------------------------------------------------------------
ID Status Ext ID Ext Status Err Code
------------------------------------------------------------------------------------------------------------------------------------
0000002-101014103613635-oozie-oozi-W@mr-node OK job_201010131711_0006 SUCCEEDED -
------------------------------------------------------------------------------------------------------------------------------------

0 件のコメント:

コメントを投稿