# AsakusaReading Asakusaソースコードリーディング(第一回)
- marblejenka
- 2585
- 0
- 1
- 0
「Flow DSL で "自分自身のデータフローのノードを構築するプログラム" を生成する。Flow DSL を実行すると、グラフを得られる。 #AsakusaReading
2011-05-25 19:29:42「Operator DSL の設計方針: Flow DSL 用のプログラム = データフローノードを表すクラスを生成。拡張は SPI により、演算子プロセッサの追加により新しい演算子を定義。但し、Flow DSL 用の演算子プロセッサも必要になる。 #AsakusaReading
2011-05-25 19:31:34ソースコードが全て揃っていない状態でも一部のソースをコンパイルして不足するコードを生成して再度コンパイルしているため、コンパイルエラーが表示されてしまう。 #AsakusaReading
2011-05-25 19:32:35Asakusaではフロー部品を演算子として取り扱い、フローDSLの部品にすることができる。知らなかった。 #AsakusaReading
2011-05-25 19:33:41ソースコードの生成は注釈プロセッサがやっている。注釈プロセッサが動くとソースコードらしきものが生成されたと認識してコンパイラが走る。 #AsakusaReading
2011-05-25 19:34:58「ラウンドを経る途中で、注釈プロセッサでソースコードを生成して、再コンパイルが発生することが原因で、警告が出ることがある。javac がトポロジカルソートされた状態でコンパイルしてくれれば大丈夫(?)。警告を省略する方法を知りたい。 #AsakusaReading
2011-05-25 19:34:59再開は19:50です。#AsakusaReading (live at http://ustre.am/z663)
2011-05-25 19:39:19合ってます。RT @nsiena: DMDL を良く把握してないことに気付いた。いわゆる DDL 相当品ということでいいのかしら。 #AsakusaReading
2011-05-25 19:44:51Ruby だと、C API <http://doc.okkez.net/static/191/function/ > で、ソースコード文字列をコンパイルしたり、構文木を得たり、操作したりできる。これをラップしたライブラリとかも。 #AsakusaReading
2011-05-25 19:46:28「JavaCC でコードを書く時に、どんな IDE やエディタを使ったらいいか。会場からは、vi と emacs という声が……」.o(あたしも、ふつーのテキストエディタだったなぁ #AsakusaReading
2011-05-25 19:50:52Asakusa の勉強中。以前の勉強会で聞いた、演算子を自分で作れるのが面白いって話の根幹に切り込んでる感じ。 #AsakusaReading (@ (株)EC-ONE 8F 会議室) http://4sq.com/kRUamd
2011-05-25 19:50:53きました。気合いのFlowDSL・・・MRのプログラムを自動生成 #AsakusaReading
2011-05-25 19:52:58「Flow DSL: 演算子をグラフ状に組み立てるもので、ここから MR ジョブネットを構築。BatchDescription → Work* → Workflow → *.java。Work* = …… #AsakusaReading
2011-05-25 19:55:32#AsakusaReading Flow Graphは演算子を並べただけのやつ。で、こいつをコンパイルしてStage Graphにする。Stage GraphはMRの境界を意識したもの。
2011-05-25 19:55:55「Work* = FlowDescription → FlowGraph → StageGraph → JobflowModel → *.java。バッチの中にトランザクションが複数あれば、Work* の処理を複数回行なうことになる。 #AsakusaReading
2011-05-25 19:56:25「今は静的に StageGraphも生成してしまっている。しかし、MR の前段の出力の特性を実行時に見て、それに合わせて次段の MR を最適化するなどの余地がある。その場合は、StageGraph 生成を、クラスタ側で実行時に行なう必要が出てくる。 #AsakusaReading
2011-05-25 20:04:19.o(バッチは繰り返し実行されるから。データ特性は、基本的に変化が小さいという仮定の下で。前回の実行時のデータ特性 (各種統計量) を保存しておいて、次の実行時に最適化をやり直すというアプローチもある。RDBMS みたいに。 #AsakusaReading
2011-05-25 20:07:33DirectBatchCompiler http://bit.ly/k3ca9E testパッケージに入っているのは歴史的な経緯。 #AsakusaReading
2011-05-25 20:10:40「記述解析: BatchDriver: Batch DSL 記述を実行。DSL 自体が DSL で表記した内容を解析するブートストラップ方式。ホスト言語を利用する強みの一つ。 #AsakusaReading
2011-05-25 20:10:42