たごもりすメモ

コードとかその他の話とか。

第2回NHNテクノロジーカンファレンスでしゃべってきた

勤務先が主催でNHNテクノロジーカンファレンスという技術者向けイベントをやってるんだけど、その登壇者として社外の誰かから推薦されたらしいので(何故……)、ひとセッションしゃべってきた。なお「HBase at LINE」の発表は「HBaseについて誰かいない?」と主催の伊勢さんに聞かれたのに自分が推薦しました。みんなありがたがるといいよ。

他の人の話も、懇親会でのあれやこれやも大変楽しかった。HBaseなー、火山かー、みたいな。そのうち techblog にまとめエントリが上がるんじゃないでしょうか。それまでこっちでも見ると当日の状況が多少なりわかるかもしれません。

第2回NHNテクノロジーカンファレンス #nhntech まとめ - Togetterまとめ

で、自分がしゃべったときのスライドはこちら。(slideshareのembed用タグを埋めてもはてなダイアリーに弾かれてしまう…… 対応されました!)

動画も上がっております。

何の話をしようか迷った。HiveやFluentdの技術的なトピック詳細に言及しようかとも思ったけど、それ過去にしゃべった内容とだいぶカブるしなー、とか、そもそもそういうことをいちいち書いてたら時間がいくらあっても足りねえよ、とか。

そういうことをぐだぐだ考えていたら、気付いたらああいう内容になっておりました。直接的にみなさまの参考になるかはわかりませんが、何かの参考になれば幸いです。

内容について多少の補足

「誰でもクエリを投げられるようにしておくと、パフォーマンスに影響が出るようなクエリを投げちゃう人がいないか?」という質問があった。自分の回答は「見付けたらこれこれこういう理由で直しておきましたよ、という感じで」みたいなのだった。
これは状況としては何も間違っていないと思っていて、各サービスの担当エンジニアはあくまでサービスの向上が目的/役割なのであって、彼らの投げるHiveクエリが効率的かどうかなんて正直どうでもいい話だ。なので、彼らには欲しいデータがとれるならどんなクエリでもいいからがんがん投げてもらえればいいと思う。どういう数値が欲しいかはクエリを読めばわかるので、それを問題のないように書き直すのは誰がやったって別に重要でもなんでもない。
もっと言うと、Hadoop+Hiveの世界は、一般的なWebプログラミングの常識からはやっぱりかけ離れた技術的要素がだいぶ多くて、それを全員が承知していなければならない、というのは現時点では無理があると思う。多少の効率なんてどうでもいいから、サービスを良くするためのクエリならがんがん投げてほしいな。

shibのバックエンドストレージが Kyoto Tycoon を使っていることについていくつか軽く反応があったけど、これはちゃんと理由があって、選んで使っている。Hiveクエリの結果は簡単な統計処理の結果なら数KBだけど、ある程度のデータセットを出力させたい場合だと数MBから下手すると数GBになりかねない。普段からそういうのもどうかと思うけど、常に可能性はある。
shibの設計をやってるときにそういうケースにどういうストレージが使えるかなと思っていて Kyoto Cabinet で使えるDirDBのことを思い出したので shib で使うことにした、という流れ。データをファイル単位で分離して格納する方式なら多少大きめのデータならだいたいは問題ないはず、と思ってる。

ShibUI について、Hadoopソースコードリーディングのときには見せたHiveクエリ生成機能のところをデモで見せるのを忘れてた。WebページのフォームでぽちぽちやるとHiveクエリが生成されるびっくりどっきり機能がじつはあったりします。*1
その機能は Hadoop ソースコードリーディングのあとにコード公開しないのかと何人かから聞かれてて、その準備がだいたい終わったところだったりする。

tagomoris/shibui · GitHub

セットアップ方法とかだいぶ道程が長いので、別途ちゃんと解説エントリを書く、つもり。特にクエリ生成のあたりなどは内部で使ってるテーブル定義べったりなところが多く、そのままこのコードを使えるケースは皆無だと思う。どこに手を入れなければならないかみたいなのも書くつもりなので少し待っていると良いことがあるかも。

猫スライドについて

今回のプレゼンテーション資料中の猫画像については Fluentd meetup #1 のときと同様に @kbysmnr さんからご提供いただいたものを使っている。これがもうすごい効果で、当日から「猫かわいい」「猫のおかげで集中できない」「皆、猫にだまされるんじゃない!」など絶賛の嵐。本当にご提供ありがとうございます。

実際スライドをどうつくるかは毎回けっこう悩みどころで、文字だけで押すとやっぱりちょっとダレる。
かといってRuby界隈でよくやられている「文字にあわせたイメージ画像を背景に使う」のって*2とにかく画像を探すのがめちゃくちゃに大変で、正直やってられないというか、年に一度の発表の機会にやるのはいいかもしれんが、毎回あれをやってたら死ぬ。あれをやれる人は本当にすごい。

で、逆転の発想。「猫画像になら何のテキストをあわせても問題ないのでは!?」
画像そのものに主張がないからどんな文字も載せられる! しかもみんなの気分も盛り上がり、後日のスライド人気もうなぎのぼり*3。すばらしいですね。

というだけの話でした。

*1:それを忘れずに見せていたら+1分で時間通りには終わってなかったなw

*2:やりかけたことはあるんだけど

*3:slideshareのviewsもはてブ数もすごいことに……