ひしだまの変更履歴

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

『HADOOP HACKS』

2012-04-30 13:01:07 | PG(分散処理)

HADOOP HACKS』に一通り目を通した!
(Mahoutは関連知識不足なので飛ばしたけど…)

色々な話題が詰まっているので、基本的には全部読むのではなくて興味のある部分だけ読むタイプの本かな。
基礎は知っている前提で書かれているので、まどろっこしい入門向け説明でページを使わず、一気に本筋に入るのが素晴らしいw

掲載されているソースコードについては抜粋だし(本筋とは関係ないところだがバグもあったりするし)、実際に使いたいと思ったら、サイト(http://sg.sg/hhacks)で公開されているソースを見た方が良さそう。
(自分がソースコードレビューをするんだったらHashMapの定石…とかforeachを使った方がーとかnew Integerを使うなーとか言いたい部分もあるけどw、Hadoopとは関係ないから別にいい)

以下、個別の章の感想。 

  • システム構築/運用
    • マスターノードのHA化は『Hadoop徹底入門』にも出ていたと思うけど、実際にやろうとしたらかなり大変らしいので、情報は多い方がいいよね
    • SqoopはHDFSと外部とのデータ転送で注目されていると思うんだけど、あまり知らなかったので、載っていて嬉しい。SqoopではOracleのテーブル名を大文字で書かないといけないなんて、絶対ハマりそう
  • アプリケーション開発
    • 自分が「HashMapを使う方式」って呼んでたやつは、InMapperCombinerって名前が付いていたのか!
    • DistributedCache(分散キャッシュ)とかCombineFileInputFormatとかMapサイドジョインとかReduceサイドジョインとか、自分でMapReduce書いて実行性能を出そうとしたら必要そう
      (これを自前でやる気はしないけど^^;、AsakusaFWは内部でこういうのを駆使しているはず)
  • HBase
    • 「カラムファミリー」とか何の説明も無しに使われているのが新鮮w(HBaseの入門だと、その辺りから入るから)
    • バルクロードやHFileOutputFormat(MapReduceでHBaseにデータを入れる方法)やpre-splitテーブルの作成など、実際にHBaseを使う上で超重要そう
  • Hive
    • 性能面の話として、いきなりHiveで出来ない事が並んでいるのがすごいw
      (これはHadoopを基盤としている以上、HiveもPigもAsakusaFWも同じだけど)
    • HiveQLはSQLに似ていると言われるが、違いを色々挙げているのが素晴らしい。知らない点が多かった
  • Pig
    • LoadFunc・Storage・UDFの作り方とか、他の章と比べると当たり前の内容が多かったなぁ
      (Storageの作り方をググろうとすると、日本語の情報では自分のページくらいしか出ないので、もしかすると当たり前ではないのかもしれないが^^;)
    • PigをJavaから呼び出せるらしいという事は聞いたことがあったが、実際にやっている例は初めて見た
  • ZooKeeper
    • ZooKeeperのリーダー選択の仕組みやアクセス制御(ACL)・tickTime等、内部構造について説明されている
    • znodeの操作とか分散並列キューのサンプルが載っている
    • ZooKeeperへアクセスするツールがそんなに色々あるとは知らなかった
      (Eclipse・REST・FUSE)

HBase TableOutputFormatの危険性

2012-04-28 23:59:13 | PG(分散処理)

HADOOP HACKS』のHBaseの章を読んでいると、HFileOutputFormatの使い方が載っていた。
それで、先日@ueshinさんから教えていただいたTableOutputFormatの危険性について思い出したので、メモ。

自分はTableOutputFormatしか使ったことが無いが(しかもサンプルレベルのみ)、TableOutputFormatはいわゆるロールバックが出来ないから危険ということらしい。
HFileOutputFormatを使ってHFileを作り、それをHBaseへバルクロードした方がいいそうだ。

HFileOutputFormatの使い方やバルクロードの方法は『HADOOP HACKS』に載っているぞw
(Windows7マシンに切り替えてからHBaseの環境を作っていないので、自分では試してない^^;)


Play2.0 Eclipse設定作成時にソースを添付する方法

2012-04-28 01:40:54 | PG(Scala)

ueshinさんがTwitterでeclipsifyにwith-source=trueという便利なものがあるとつぶやいていたので、ほほう!と思って試してみたら、上手くいかなかった(爆)

色々教えていただいた結果、とりあえず何とかする手順は分かったので、メモ。

…それにしても、こんなにハマるとは思わなかったなぁ(苦笑)


reStructuredText構文

2012-04-22 13:47:24 | PG(Markup)

SphinxreStructuredTextの構文をメモ。

マークアップ言語といってもHTMLやWikiとはまた雰囲気が違う。
変換しなくてもそのままで見やすいように考えられているというのがなかなか面白い。
(そのせいで、番号つきリストは自分で番号を書かなきゃいけないけど^^;)

インデントが強制されるのは面倒だなーと思っていたけど、テキストとしての見栄えも追求するなら、こういうのも有りかも。 


JavaFX2 ドロップ処理

2012-04-21 23:59:31 | PG(Java)

JavaFX2でファイルのドロップを処理する方法をメモ。

aoetkさんから教えていただいたサンプルがとても分かり易かったが、そのままだと芸が無いので、Scene Builder(というかFXML)を使ってレイアウトを書いて、処理本体はコントローラークラスに書く方式で試してみた。

FXMLからControllerソースを生成するツールもファイルをドロップできるようにしてみた)

SwingだとTransferHandlerを書いてコンポーネントに登録するという作業が必要でけっこう面倒だったんだけど、JavaFX2はその辺りかなり簡単。
汎用的に扱えるインターフェースを残しつつ、よく使うファイルとか文字列には専用のメソッドを用意している。
汎用的なメソッドしか提供していなかったSwingに比べれば楽なわけだよ(笑)