・1台のLinux環境で、簡単に、Oozieを試してみます。
・CentOS(1台)でCloudera社のHadoop(CDH3beta2)が動いていることを前提とします。 → 構築方法はこちら
※この記事はCDH3beta2用です、CDH3beta3の人はこちら
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. Oozieサーバーまわりの設定
・MySQLのインストール
インストール
yum -y install mysql mysql-server
初期設定(ここでは、DBサービスを起動して、コマンドラインの設定ウィザードで初期設定を行いました)
service mysqld startすべてデフォルト(DBのrootパスワードは、覚えておきましょう)
mysql_secure_installation
・Tomcatのインストール
yum -y install tomcat5(ここでは、まだ起動させません)
本来(Oozieやcloudera社のドキュメント)ではtomcat6を使っているようですが、ここでは、CentOS5で容易に利用できるTomcat5を使いました。
・ExtJS libraryの設定
http://www.sencha.com/learn/Ext_Version_Archives
からext-2.2.zipをダウンロードします。 (2.2.1とか3は不可です)
ダウンロードファイルを、例えば/tmp/ext-2.2.zipとして配置したとして、
cd /usr/lib/oozie
./installextjs.sh /tmp/ext-2.2.zip
Oozie WAR '/usr/lib/oozie/wars/oozie.war' file now contains ExtJS library
・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
cp /tmp/jdbc/mysql-connector-java-5.1.13/mysql-connector-java-5.1.13-bin.jar /usr/share/tomcat5/common/lib/
・OozieをTomcatに配備
cp /usr/lib/oozie/wars/oozie.war /var/lib/tomcat5/webapps/
設定ファイル/etc/tomcat5/tomcat5.confを編集します。以下の行をファイルの最後にでも追加します。
# oozie
JAVA_OPTS="$JAVA_OPTS -Doozie.config.dir=/usr/lib/oozie/conf"
・Oozieの設定ファイル
vi /usr/lib/oozie/conf/oozie-site.xml
二か所のコメントアウト部分(「Disable automatic DB schema creation」と「DBコネクション関連の設定」で、<!--と-->で囲まれている部分)を、有効にします。
特に、oozie.db.schema.createのvalueはtrueに変更(もとはfalse)します。
以下のような設定を有効にします。
<property>
<name>oozie.db.schema.create</name>
<value>true</value>
<description>
Creates Oozie DB.
</description>
</property>
<property>
<name>oozie.service.DataSourceService.jdbc.driver</name>
<value>com.mysql.jdbc.Driver</value>
<description>
JDBC driver class.
</description>
</property>
<property>
<name>oozie.service.DataSourceService.jdbc.url</name>
<value>jdbc:mysql://localhost:3306</value>
<description>
JDBC URL.
</description>
</property>
<property>
<name>oozie.service.DataSourceService.jdbc.username</name>
<value>oozie</value>
<description>
DB user name.
</description>
</property>
<property>
<name>oozie.service.DataSourceService.jdbc.password</name>
<value>oozie</value>
<description>
DB user password.
IMPORTANT: if password is emtpy leave a 1 space string, the service trims the value, if empty Configuration
assumes it is NULL.
</description>
</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(Tomcat)の起動と自動DB作成
Tomcatを起動させます。初回起動時に、自動で必要なDBが作成されます。
service tomcat5 start
初回起動時にDBが作成されるので、確認します。
mysql -u oozie -p1-3. 動作確認
Enter password:(パスワードは、上記の設定通りなら"oozie")
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 5.0.77 Source distribution
sType 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| oozie |
+--------------------+
2 rows in set (0.00 sec)
mysql> use oozie;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+---------------------+
| Tables_in_oozie |
+---------------------+
| ACTIONS |
| VERSION |
| WF_PROCESS_INSTANCE |
| WORKFLOWS |
+---------------------+
4 rows in set (0.00 sec)
mysql> exit
Bye
コマンドラインから動作確認
OOZIE_URL=http://localhost:8080/oozie oozie admin -version
Oozie server build version: 1.6.2-0.20.2-320--SNAPSHOT
ブラウザから動作確認
http://ホスト名:8080/oozie
画面例
(おまけ)
ドキュメントを入れたいならば、
cp /usr/lib/oozie/wars/ooziedocs.war /var/lib/tomcat5/webapps/として、
http://ホスト名:8080/ooziedocs
2. exampleを動かしてみる
2-1. example準備
exampleのファイルを展開します。
mkdir /tmp/oozie-example
cd /tmp/oozie-example/
tar xzf /usr/lib/oozie/oozie-examples.tar.gz
cd examples/
prepare-examples.shを編集します。ファイル下の方の、以下の部分を変更します。
echo "jobTracker=localhost:9001" >> ${example}-job.properties例えば、Clouderaのお手軽デフォルト設定のHadoopなら、以下のように変更します。
echo "nameNode=hdfs://localhost:8020" >> ${example}-job.properties
echo "jobTracker=localhost:8021" >> ${example}-job.properties
echo "nameNode=hdfs://localhost:8020" >> ${example}-job.properties
example用の設定やテストファイルを作成
./prepare-examples.sh
hadoop fs -put input-data input-data
hadoop fs -put workflows /tmp/`whoami`/workflows
2-2. exampleを実行してみる
・実行
oozie job -oozie http://localhost:8080/oozie -config map-reduce-job.properties -run
job: 0000000-100820220527261-oozie-tomc
・ジョブの様子を確認(実行時に表示されるJob Idを引数に)
oozie job -oozie http://localhost:8080/oozie -info 0000000-100820220527261-oozie-tomc
Job Id: 0000000-100820220527261-oozie-tomc
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Workflow Name : map-reduce-wf
App Path : hdfs://localhost:8020/tmp/root/workflows/map-reduce
Status : RUNNING
Run : 0
User : root
Group : users
Created : 2010-08-20 14:30 +0000
Started : 2010-08-20 14:30 +0000
Last Modified : 2010-08-20 14:30 +0000
Ended : -
Actions
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Action Name Type Status Transition Ext. Id Ext. Status Error Code Started Ended
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
hadoop1 map-reduce RUNNING - job_201008202153_0002 RUNNING - 2010-08-20 14:30 +0000 -
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
・同様に他の.propertiesファイルも試すことができます。
oozie job -oozie http://localhost:8080/oozie -config map-reduce-job.properties -run
job: 0000000-100820214321863-oozie-tomc
oozie job -oozie http://localhost:8080/oozie -config hive-job.properties -run
job: 0000005-100820220527261-oozie-tomc
oozie job -oozie http://localhost:8080/oozie -config pig-job.properties -run
job: 0000004-100820220527261-oozie-tomc
それぞれの実行内容はworkflowsの中のディレクトリに書いてあります。
0 件のコメント:
コメントを投稿