S-JIS[2011-07-24/2014-12-13] 変更履歴

Asakusa Frameworkインストール(Maven版)

Asakusa Framework(Maven時代)のインストールのメモ。
Gradle時代のインストール方法


概要

Asakusa Framework(0.6.0より前)は、Mavenを利用して開発環境へのインストールを行う。[2011-12-11]
(0.6.0以降は、Gradleを使用する。[2014-12-13]
なので、事前にJDKやMavenをインストールしておく必要がある。

Asakusa Frameworkのインストールは、以下の2段階(Hadoopクラスターへの導入を含めると3段階)で行う。[2012-11-10]

  1. MavenのAsakusa Framework用アーキタイプカタログを使って開発マシン上に開発環境を構築する。
    このときにAsakusa Frameworkのバージョンを指定する。
    これにより、サンプルとなるAsakusaアプリケーション(Javaプロジェクト)が生成される。
  2. Asakusaアプリケーションのバージョン情報を元に、開発マシン上にAsakusa Framework本体(実行環境)をインストールする。
    インストール先は、環境変数ASAKUSA_HOME(事前に定義しておく)の下となる。
  3. Hadoopクラスター(本番環境)へは、Asakusaアプリケーションをパッケージングして作られるjarファイルと、開発マシン上のAsakusa Framework本体を持っていく。

が、上記の2段階目までは、JinrikishaというAsakusaFWのインストーラーを使うと、これらのコマンド実行や事前の依存ソフトのインストールを行うことなく全て一括でインストールできて便利。[2012-02-07]


アーキタイプ

Mavenには「アーキタイプ」というものがある。 ディレクトリー構成や依存ライブラリーの情報を持っていて、それを使って開発環境を構築できる。[2011-12-11]
AsakusaFWの開発環境用の構成もMavenのアーキタイプとして用意されている。

AsakusaFWのアーキタイプから環境を構築するコマンド

> mvn archetype:generate -DarchetypeCatalog=http://asakusafw.s3.amazonaws.com/maven/archetype-catalog-0.5.xml
> mvn archetype:generate -DarchetypeCatalog=http://asakusafw.s3.amazonaws.com/maven/archetype-catalog-0.4.xml
> mvn archetype:generate -DarchetypeCatalog=http://asakusafw.s3.amazonaws.com/maven/archetype-catalog.xml

「archetype-catalog.xml」を指定すると、今までのバージョン全ての中からインストールするバージョンを選択できる。[2012-09-01]
「archetype-catalog-0.4.xml」を指定すると、バージョン0.4の中からバージョンを選択する。[/2013-05-10]
基本的には古いバージョンを使うことは無いだろうから、バージョン指定版の方が選択肢が少なくて済む。


アーキタイプの種類

Asakusa Frameworkには以下のようなアーキタイプがある。[2012-11-10]

asakusa-archetype-batchapp(バッチアプリケーション)

一番古いアーキタイプ。

元々はThunderGateを使う為のアーキタイプだったらしいが、AsakusaFW 0.2.4でasakusa-archetype-thundergateに変更された為、今となってはbatchappを選ぶ必然性は無い。AsakusaFW 0.4のアーキタイプカタログでは選択肢にも出てこない。

asakusa-archetype-thundergate(サンダーゲイト)

ThunderGateを使用するアーキタイプ。名前のイメージは浅草にある雷門w

ThunderGateはMySQLのテーブルを読み書きする為のコンポーネント。
つまり、MySQLのテーブルを読み込んで処理し、結果をMySQLに戻したいときに使用する。
このコンポーネントは、初期の頃はBulkLoaderという名前だったようだ。ThunderGateの名付け親はtamagawa_ryujiさん。

ロングトランザクション(途中結果を保存しておき、バッチが落ちたらそこから再実行できる)や変更のあったデータだけを最終的に反映させる等の仕組みを持っていて高機能。
ただしその為に、テーブルに専用カラムを設けたり管理テーブルを用意したりする必要がある。

asakusa-archetype-windgate(ウィンドゲイト)

WindGateを使用するアーキタイプ。風門という地名は無いが、雷神に対して風神ということだろうw
AsakusaFW 0.2.2で試験的に導入され、0.2.4で正式機能になった。

JDBCを使って標準的なSQLだけで動作するので、ThunderGateと違って色々なRDBMSで使用できる。
ThunderGateのような管理テーブルや専用カラムも必要ない。

また、WindGateが置かれているマシン上のローカルのCSVファイルを読み書きすることも出来る。

asakusa-archetype-directio(ダイレクトアイオー)

HDFSに直接アクセスするアーキタイプ。
AsakusaFW 0.2.5で試験的に導入され、0.4.0で正式機能になった。

Direct I/OはThunderGateやWindGateのような外部連携コンポーネントを使用せず、直接HDFS(あるいはMapR FSやAmazon S3)のファイルにアクセスする。
“直接”と言っても特別なことをしている訳ではなくて、MapReduce(Hadoop API)をそのまま使っている。
(つまりDirect I/Oでの“直接”とは、「外部連携コンポーネントを経由せずに(データにアクセスする)」という意味かな?)

ファイルの形式としては、CSVファイルやSequenceFileを扱うことが出来る。


WindGateやDirect I/Oを用いたシステム構成のイメージは、Asakusa Framework-RDBMS連携方法の資料が参考になると思う。
(この資料ではThunderGateは直接は扱っていないが、位置的にはWindGateと同じ)

WindGateでもDirect I/OでもCSVファイルを読み書きすることが出来るが、WindGateはローカルファイル、Direct I/OはHDFS上のファイルを扱う点が大きく違う。


AsakusaFWのインストール

Asakusa Frameworkのインストール方法は、0.4以前と0.5以降で大きく異なる。[2013-05-10]

「Asakusa Frameworkのインストール」とは、環境変数ASAKUSA_HOMEの指すディレクトリーに、Asakusa Frameworkに必要なライブラリーやシェルを配置すること。

ただし、Jinrikishaを使う場合は(Jinrikisha内部は変わっているが)インストール方法に特に変更点は無い。


AsakusaFW 0.4以前では、アーキタイプを使って開発環境用のディレクトリーを作り、そのバージョン用のAsakusaFWをインストールする。[2011-12-22]
これもMavenを利用する。
※事前に環境変数ASAKUSA_HOMEを定義し、AsakusaFWをインストールする場所を決めておく。推奨は「ASAKUSA_HOME=$HOME/asakusa」。

> cd アーキタイプから作ったディレクトリー
> mvn assembly:single antrun:run

これにより、ASAKUSA_HOMEで示される場所にライブラリー類がダウンロードされる。


AsakusaFW 0.5.0では、インストール用のFramework Organizerを使ってインストールする。[2013-05-10]


AsakusaFW 0.5.2では、(Mavenを使わずに)Gradleでインストールする方法が追加された。[2013-11-23]


Asakusa Frameworkのバージョンアップ

AsakusaFWをインストール(アーキタイプからディレクトリーを作成)する際にAsakusaFWのバージョンを入力するが、これを後から変える方法。[2011-08-02]

0.2.4ではさらに色々変える必要があるようなので、Asakusa Frameworkドキュメントの開発環境マイグレーションガイドを参照。[2011-12-22]

また、「assembly:single antrun:run」を実行するとASAKUSA_HOMEのディレクトリーが新たに作り直される(新バージョン用になる)ので、
今までのバージョンと新バージョンのアプリを共存させたい場合は、環境変数ASAKUSA_HOMEの場所を変える必要がある。


AsakusaFW目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま