ひしだまの変更履歴

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

CascadingでHBaseアクセス

2010-04-30 23:59:39 | PG(Java)

Hadoop Cascadingによる第2目標、HBase操作に到達。

CascadingそのものにはHBase用のクラスは入っていなくて、コミュニティーによって提供されているライブラリーという扱いになっている模様。
したがって現時点の最新版であるHBase0.20には対応していない(らしい)ので多少の改造が必要だったり、HBaseに格納できるのが文字列だけだったりと制限がある。
まぁでもこれをベースに改造していけばいいので、0から作るよりもいいから、それだけでも有り難い。

バージョンに関して言えば、そもそもCascading自体もHadoop0.20の新クラスには対応していないしなぁ。
(そもそもHadoop0.20の新クラス自体もまだ未完成らしいのだが)

それでも、データをフィールドで扱うCascadingと、テーブルの項目(family:qualifier)を持つHBaseは、相性がいい。
エクスポート処理なんて、コーディングがすごくシンプルで、びっくりしちゃった(笑)

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

Serializable.writeObject

2010-04-28 23:59:31 | PG(Java)

シリアライズのwriteObject()・readObject()の実装方法についてメモ。

Serializableインターフェースにはメソッドが定義されていないくせに、
Serializableを実装したクラスにwriteObject()・readObject()を実装するとそれが呼ばれるという、ちょっと不思議な仕様(苦笑)
しかもこのメソッド、privateだしなー。

あと、ExternalizableインターフェースのwriteExternal()・readExternal()なんてものもあるんだねぇ。
こちらは素直に定義されているメソッドをオーバーライドするもの。
でもSerializableの仕様・実装に比べると、ちょっと貧弱な感じもする。(Serializableが特殊すぎるだけか…)

本当は自分のクラス内にシリアライズ方法を定義するのではなく、シリアライズ用のクラスを別途定義する方法があればいいなーと思ったんだけど、さすがに無いかなぁ?

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

Hadoop Cascading

2010-04-24 22:39:07 | PG(Java)

Hadoop Cascadingでようやく第1目標に到達。

もともとはHadoopのみで偏差値を計算するサンプルを作ってみたかったんだけど、複数のステップを経るのが面倒だったので、Cascadingを試していた。
(ちなみに正式名称は「Cascading」なんだろうけど、「HTTP Server」並に固有名詞っぽくないので、検索には苦労する(苦笑))

Hadoopのラッパー(ツール)としては他にPigやらHiveやらがあるみたいだけど。
Pigは新しい文法を覚えるのが面倒そうだったので却下。(決してあのブタが気に入らなかったからではない(爆))
HiveはSQLっぽいらしいけど、SQLがDBを扱うのに対し、Hiveはあくまでファイルを扱う(はず)。ファイルをSQLで扱うのにも違和感あるからねぇ。
CascadingはJavaのライブラリーだけど、Map/Reduceは隠蔽するので、Hadoopのコーディングがそのまま使える訳ではないから、やはり覚えなければならない事があるのに変わりはない。
でもCascadingは結合を書けるのでやはり便利だ。と言っても、それを行うCoGroupが一番ややこしい対象なので、多少の慣れが必要ではあるが…(苦笑)

それに、最終的にはHBaseを扱いたいのだ。(Hiveが対応しているかどうかは知らないが、Cascadingは対応しているはず)

あと気になるのは、実際のMap/Reduceへ変換された際の実行効率かな。
これについてはPigもHiveも同様に気になるところだけど…。
そういう意味では、Cascadingの処理分岐・結合機能がHadoopに取り込まれるのが一番便利そうな気がする(笑)

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

Graphvizでフロー描画

2010-04-23 22:54:18 | ツール

グラフ(棒グラフや円グラフや折れ線グラフとかではなく、有向グラフ)を描画するGraphvizというツールについてちょっとメモ。

とってもシンプルなテキストデータを書くだけで簡単にフローの図が出来てくるのは、ちょっと感動(笑)

設計書(特にExcelとかWordとか)にフローチャートを描くの嫌いなんだけど(色々考えている内にフローなんか変わるのに、修正が面倒だから)、Graphvizだと意外といけるかもしれない。
長方形とか菱形とか表現できるのか知らんけど(爆)

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