Asakusa Framework : 0.5.3リリースの注目点まとめ
去年末のクリスマスイブに0.5.3がリリースされました。私がブログで書いてきた点についても、いろいろ改善がされているので、まとめてみたいと思います。
DMDLコンパイラ, DSLコンパイラ, Direct I/O実行時のエラーメッセージを改善
Modelプロパティ名の制約違反時のエラーメッセージが改善
Asakusa Framework : DMDLのハマりやすいところ - TEPPEI STUDIOで書いた点ですが、改善されています。以下の例では、プロパティ名に、ハイフンが入っている場合のエラーメッセージについて記載しています。
Before
[java] Caused by: com.asakusafw.dmdl.parser.ParseException: Encountered " <UNEXPECTED> "- "" at line 9, column 13. [java] Was expecting: [java] ":" ...
After
[java] 07:26:07 ERROR file:/Users/teppei_tosa/asakusa-develop/workspace/Asakusa-FirstStep-053/src/main/dmdl/models.dmdlの解析に失敗しました [java] com.asakusafw.dmdl.parser.DmdlSyntaxException: DMDLスクリプトが正しくありません: 名前「item-id」は小文字アルファベット、数字、アンダースコアで構成する必要があります (場所: file:/Users/teppei_tosa/asakusa-develop/workspace/Asakusa-FirstStep-053/src/main/dmdl/models.dmdl:10:9)
だいぶ分かりやすくなりました。
「出力missedは結線されていません」のメッセージが改善
Asakusa Framework : MasterJoinのハマりやすいところ - TEPPEI STUDIOで書いた点ですが、MasterJoinのマッチしなかったレコードの扱いについて実装されていない場合のメッセージが、分かりにくかったのが改善されています。
Before
[java] java.io.IOException: 実行計画の作成に失敗しました ([JoinOperator.joinedDataの出力missedは結線されていません ([JoinOperator.joinedData(operator#222237550)])])
After
[java] 11:16:59 ERROR JoinOperator#joined(@MasterJoin)の出力missedが他の演算子への入力、もしくはジョブフローの出力に接続されていません (at teppeistudio.jobflow.MainJobFlow) [java] 11:16:59 ERROR コンパイルはエラーにより中断しました (teppeistudio.batch.MainBatch)
だいぶ分かりやすくなりました。
出力ディレクトリ重複時のエラー
Direct I/O の出力ディレクトリが重複している時に出るエラーが改善されました。
Before
[java] 20:15:16 [main] INFO c.a.c.f.external.ExternalIoAnalyzer - teppeistudio.jobflow.MainJobFlowの入出力を検証しています [java] 20:15:16 [main] ERROR c.a.c.flow.FlowCompilingEnvironment - 出力が別の出力を上書きします (teppeistudio.jobflow.ErrorRecordToCsv->teppeistudio.jobflow.SalesDetail2ToCsv) [java] 20:15:16 [main] ERROR c.a.c.bootstrap.BatchCompilerDriver - コンパイルはエラーにより中断しました (teppeistudio.batch.MainBatch) [java] java.io.IOException: フローの入出力が正しくないため、コンパイルを中止します (出力が別の出力を上書きします (teppeistudio.jobflow.ErrorRecordToCsv->teppeistudio.jobflow.SalesDetail2ToCsv))
After
[java] 13:13:36 ERROR 2つの出力のベースパスが重複しています: teppeistudio.jobflow.io.CopyOfJoinedSalesDetailToCsv[/fs053/out] <-> teppeistudio.jobflow.io.JoinedSalesDetailToCsv[/fs053/out] [java] 13:13:36 ERROR コンパイルはエラーにより中断しました (teppeistudio.batch.MainBatch) [java] java.io.IOException: フローの入出力が正しくないため、コンパイルを中止します (2つの出力のベースパスが重複しています: teppeistudio.jobflow.io.CopyOfJoinedSalesDetailToCsv[/fs053/out] <-> teppeistudio.jobflow.io.JoinedSalesDetailToCsv[/fs053/out])
こちらもだいぶ分かりやすくなりました。
対応プラットフォームの拡大
Asakusa Frameworkのススメ - TEPPEI STUDIOでは、「サポート対象のHadoopバージョンが少ない」と書きましたが、かなり拡大されています。
Before
http://asakusafw.s3.amazonaws.com/documents/0.5.2/release/ja/html/product/target-platform.html
After
http://asakusafw.s3.amazonaws.com/documents/0.5.3/release/ja/html/product/target-platform.html
個人的には、CDH4系のサポートが追加されたのが嬉しいですね。