ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

DMDLの属性の選び方

2013-12-15 22:22:22 | PG(分散処理)

Asakusa Framework Advent Calendar 2013の15日目、DMDLの話の第3弾です。

11日目のDMDLの基礎でも書いた通り、DMDLの文法では「属性(@で始まるやつ)」を指定することが出来ます。
問題は、どういう属性を指定するのか?(指定すればよいのか?)という事です。

DMDLファイルはコンパイルされてモデルクラスが生成されますが、その他の拡張機能を指定するのが属性の役割です。
@namespace@auto_projectionといった属性もありますが、どちらかといえばマイナーだと思います。(拙作のDMDL EditorXでは対応していません(爆))
一番使われているのは、インポーター・エクスポーター(外部システムとやりとりするファイル)のクラスを生成する事でしょう。
DirectI/OのCSVファイルの場合は@directio.csv、WindGateのCSVファイルなら@windgate.csv、JDBCなら@windgate.jdbcを指定します。
(逆に言えば、インポーター・エクスポータークラスを生成する必要のないデータモデルでは、こういった属性を指定する必要はありません)
(なお、DirectI/OWindGateとは、Asakusaアプリケーションの外側のシステムとの入出力(外部連携)を行う仕組み(コンポーネント)です) 

つまり、どの属性を指定すればよいかは、外部システム(Asakusaアプリケーションの外側のシステム)との連携方法をどうするか?を決めないと決まりません。
外部連携方法(システムの構成方法)は、www.asakusafw.comの参考資料の『Asakusa Framework-RDBMS連携方法』が参考になると思います。
また、cocoatomoさんがアドベントカレンダーに書かれている外部連携の話(前編後編)も、ずばりそのものですね(笑)

ちなみに、ひとまずAsakusaFWを試してみようという場合は、たぶん外部連携を考えるよりもDMDLやFlow DSLOperator DSLを書いてみる方が主になるでしょうから、とりあえず@directio.csvを使っておけばよいと思います。 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

HadoopのWindows対応状況

2013-12-15 01:47:57 | PG(分散処理)

Hadoop Advent Calendar 2013の15日目です。
昨日は@s_woolさんの『hueでロードバランシングできるようにしてみる』でした。

Hadoopは基本的にUNIX上で動作しますが、Windowsにも対応して…いたりなかったり^^;なので、ちょっとまとめてみます。
以下、「動作した」というのは、スタンドアローンモードで円周率算出サンプルが動いたことを意味します。


Hadoop0.20の頃はCygwin上で動作させることが出来ました。ドキュメントにもCygwinを使って動作させる方法が書いてあったと思います。
ClouderaのCDH3もHadoop0.20系なので、Cygwin上で動かせます。 

ところが、(0.20の後継である)Hadoop1.2.1(Hadoop1系の最新)をCygwin上で動かしたらエラーになりました。
シェルの中にはCygwinかどうかを判別している箇所はあるので、Cygwin対応をしているとは思うんですけどね(以前から残っているだけという可能性も高そうですが)。
ちなみに、さっき見たら(Hadoop0.23の最新である)Hadoop0.23.10が出ていたので試してみたら、あっさりCygwin上で動きました^^;

次に、HortonworksのHDP1はWindows対応を謳っていて、Cygwinを使わず、hadoop.cmd等が提供されています。
が、この「Windows」はWindows Serverの事であり、WindowsXP・Windows7とかは対象外です。Windows ServerでHadoopクラスターを組むことを目的としており、開発環境として使うことは想定していないっぽいです。
無理矢理やったらWindows7にインストールできるし、コマンドプロンプトからちゃんと実行できましたけどね。やっぱり正式対応を宣言してくれないと、他の人には勧めにくいです^^;

こういう状況なので、やっぱり主流はWindowsに興味が無いんだろうなぁ…と思っていたら、Hadoop2系のHadoop2.1.0-betaがWindowsをサポートしたとあって、びっくり!(たぶん、HDPのWindows対応の内容がApache Hadoopにバックポートされたんだと思うんですが)
ところが、喜んで試してみたら、途中でエラーになる><
cmdファイルはあるんですが、その後、中で呼び出しているwinutils.exeが無いんですよねー。他にもDLLファイルが必要そうなんですが、Hadoopのアーカイブに含まれていないし。まぁ、この時点ではベータ版だったので、正式版が出るときには同梱されるだろうと思っていたんですが。
Hadoop2.2.0-GAも同様の状況でしたorz
ozaさんがissue(HADOOP-10051)を作ってくださったので、そのうち対応されると思うのですが、進捗どうですか?>開発者の方々
ちなみにこの件に関連して、stackoverflowにソースをコンパイルしてwinutils.exeやhadoop.dllを生成する方法があるのを見つけましたが、それを皆がやるかというと、どうなの?って気がします。Hadoopのドキュメントに手順としてそう書かれていたら仕方ないかなーとも思うんですが、特に何も書かれていないし。
僕は英語が苦手なんでよく分からないんですが、Hadoop2.2.0-GAの「GA」ってどういう意味なんでしょうね?(苦笑)

あと、CDH4・CDH5(Hadoop2系)は試していませんが、たぶんWindowsは対象外でしょうね。
HDP2(Hadoop2系)も対応バージョンにWindowsは含まれていません。


何故Windowsにこだわるかと言うと、やっぱり日本では、Hadoopを使って開発をする人(SIer)の環境はWindowsが多いと思うからです。
WindowsでHadoopクラスターを組みたいわけではありません。(HDP(というかHDInsight)はWindows Azure向けに開発された感じがするので、きっとAzureはWindows ServerでHadoopクラスターを作っているのだと思いますが)
まぁ、きっとこれは日本独自の話であり、Hadoopを作っている人達は気にしていないでしょうorz 

というか、HadoopがWindowsに正式対応してくれないと、Asakusa FrameworkがWindowsで動かせないのです(爆)
AsakusaFWで作ったアプリケーションは、Hadoopのスタンドアローンモードを利用してテストを実行するので。
Cygwinを使って動かすことも頑張れば出来ますが、やはり正式対応して欲しい…。 


Hadoopアドベントカレンダー、明日は@nagixさんです。
先にMapRとDrillのネタを書いてnagixさんにネタ被りしないように無茶振りするのは、自分の力では無理です><

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする