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]
が、上記の2段階目までは、JinrikishaというAsakusaFWのインストーラーを使うと、これらのコマンド実行や事前の依存ソフトのインストールを行うことなく全て一括でインストールできて便利。[2012-02-07]
Mavenには「アーキタイプ」というものがある。
ディレクトリー構成や依存ライブラリーの情報を持っていて、それを使って開発環境を構築できる。[2011-12-11]
AsakusaFWの開発環境用の構成もMavenのアーキタイプとして用意されている。
> 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]
一番古いアーキタイプ。
元々はThunderGateを使う為のアーキタイプだったらしいが、AsakusaFW 0.2.4でasakusa-archetype-thundergateに変更された為、今となってはbatchappを選ぶ必然性は無い。AsakusaFW 0.4のアーキタイプカタログでは選択肢にも出てこない。
ThunderGateを使用するアーキタイプ。名前のイメージは浅草にある雷門w
ThunderGateはMySQLのテーブルを読み書きする為のコンポーネント。
つまり、MySQLのテーブルを読み込んで処理し、結果をMySQLに戻したいときに使用する。
このコンポーネントは、初期の頃はBulkLoaderという名前だったようだ。ThunderGateの名付け親はtamagawa_ryujiさん。
ロングトランザクション(途中結果を保存しておき、バッチが落ちたらそこから再実行できる)や変更のあったデータだけを最終的に反映させる等の仕組みを持っていて高機能。
ただしその為に、テーブルに専用カラムを設けたり管理テーブルを用意したりする必要がある。
WindGateを使用するアーキタイプ。風門という地名は無いが、雷神に対して風神ということだろうw
AsakusaFW 0.2.2で試験的に導入され、0.2.4で正式機能になった。
JDBCを使って標準的なSQLだけで動作するので、ThunderGateと違って色々なRDBMSで使用できる。
ThunderGateのような管理テーブルや専用カラムも必要ない。
また、WindGateが置かれているマシン上のローカルのCSVファイルを読み書きすることも出来る。
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上のファイルを扱う点が大きく違う。
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]
AsakusaFWをインストール(アーキタイプからディレクトリーを作成)する際にAsakusaFWのバージョンを入力するが、これを後から変える方法。[2011-08-02]
<asakusafw.version>0.2.1</asakusafw.version>
> cd /d C:\workspace\batchapp > mvn assembly:single antrun:run compile > mvn eclipse:eclipse
0.2.4ではさらに色々変える必要があるようなので、Asakusa Frameworkドキュメントの開発環境マイグレーションガイドを参照。[2011-12-22]
また、「assembly:single antrun:run
」を実行するとASAKUSA_HOMEのディレクトリーが新たに作り直される(新バージョン用になる)ので、
今までのバージョンと新バージョンのアプリを共存させたい場合は、環境変数ASAKUSA_HOMEの場所を変える必要がある。