hadoop conference 2011
本日はhadoop conference 2011に参加。
http://www.eventbrite.com/event/1278974447/efblike
定員約350人が約4時間で埋まったとのこと。
始まるまで少し時間があったので、参加している人を見渡しながら、ここにいる人が平均10台のクラスタを利用していると仮定すると、計3500台で、ラック型で1台1mの奥行きとすると、3.5km!!とどうでもいいことを考えていました。
ということで、各セッションのメモ
Amazon Elastic MapReduceの紹介 AWS Jef Barrさん
-
- What is big data?
- まだ新しい言葉。ただ単にでかい容量というだけではない。
- 課題として、strucuture, demandの発掘もある。
- また、それらを迅速に解析できる必要がある。
- これらの手伝いをするのがbig data tool
- What is big data?
-
- Elastic map reduce overflow
- EC2, S3をベースに動く
- 簡単、スケーラブル、安全、コストパフォーマンス良し。
- 数百TBの実績もあり。
- 簡単にデプロイ、監視ができる。
- AWS management consoleというweb UIに加えて、コマンドラインでの操作も可
- Elastic map reduce overflow
-
- Elastic map reduce 実行まで
- データをs3にアップロード
- ジョブフローの作成、実行
- 処理が完了したら、S3から結果をとりだす。
- Elastic map reduce 実行まで
-
- Use cases
- 広告配信、ログ解析、遺伝子計算、financial simulation,検索エンジンの生成、データマイニング
- Data ヘビーか、CPUヘビーかで、ジョブフローの使い分けができる。
- 前者はデータマイニング、後者は各種分析やシュミレーションなど。
- Best buy とRazorfish(広告会社)
- 35億件 per dayのデータ
- 7100万UU
- 170万件のターゲット広告配信
- 100ノードのクラスタを構築し、2日かかっていた処理を8時間に短縮。
- 解析が行えるようになったことで、広告効果が500%になった。
- クリック分析の解析を行う会社では、みんな似たような構成を使っている。
- 広告宣伝や大量データ解析の需要が増えているように思う。
- Use cases
-
- Map reduce概要
- データをインプット
- データを切り分け
- ノードに分配
- 並列で処理を行う
- 結果を取り出す。
- Map reduce概要
-
- その他の特徴
- コンソールで進捗状況を確認できる。
- 自分でmap reduce処理を書くことも可。
- 自由にスケール。処理中に動的に追加できる。
- R言語のサポートもしている。RHIPEという環境。
- その他の特徴
-
- Q&A
- スライドにHBaseでシステム構成をしている図(11枚目)があったが? -> ユーザのほうで構築した環境になる。現在、AWSとしてHBaseをサポートはしていないが、将来的にはサポート予定。
- 処理時間が短くても時間単位で課金されてしまうのが悲しい。 -> 時間単位での課金に適した処理を組むべし。
- Q&A
後のセッションで、複数ユーザが居る時の云々でリソースやスケジューラの管理の話があったけれど、EMSをベースに開発していれば、そういったことは気にしなくてよくなるし、大規模クラスタになるほど、サーバリソースを使い切るのは難しいように思うので、PaaSとの相性はさらにいいのかな〜と思った。
ログを転送するという点でセキュリティ的な話や、後はやはり料金的な点が気になるところ。調べてみるか。
Hadoopを使った機械学習 PFI 岡野原さん
-
- 機械学習
- データから有用な規則、ルール等を抽出すること。
- 様々な分野の問題に利用可能。
- タスクと手法の分離が普及の要因。
- 手法が抽象化されているので、定義された形でデータを準備できれば、誰でも行うことができる。
- 機械学習
-
- グラフィカルモデル
- 確率変数を頂点、変数間の依存関係を枝としたグラフ構造。
- 言語処理、情報抽出、音声認識、画像解析、遺伝子解析 etc...
- 計算が非常に困難なのに、データが巨大になっている。
- グラフィカルモデル
-
- 共参照解析。
- 二つの言及が同じ単語を指しているかを解析していく。
- 僕、君 とか。
- 共参照解析。
-
- 数値最適化の並列分散化。
- Parameter Mixuture -> ダメだった
- Distributed Grdien -> ノード間のやり取りが多く通信が混雑、収束が遅い
- Asynchronous Update -> すごい遅い
- Iterative Parameter Mixture -> これがいい!収束証明ができ、しかもスケーラブルであることが分かった。
- 数値最適化の並列分散化。
機械学習系の話は、知識不足であまりついていけず。。しばらくは定義された通りにデータを準備してみるほうの立場で、これいいよと聞いたのを動かしてみて、知識を深めていくというフローになるかな。。
Dremelの所で出てきた列志向データベースという単語は昔、情報処理系のDB系のやつの勉強をしている時に聞いて、何のためにあるんだ?と思った覚えがあるけど、こんな所ででてきてビックリした。ていうか当時は勉強しながら、使われていないモデルなんか出さずに、データベース = RDBMSでいいじゃねえかと思っていた気がする。。
モバゲーの大規模データマイニング DeNA 濱田さん
-
- Hadoopチューニング
- パラメーターチューニング
- 中間ファイルをlzo圧縮
- 出力データサイズの最適化
- Hadoopチューニング
-
- Pigのチューニング
- Partitioner の実装の最適化
- 多段map reduceでの中間ファイルの圧縮
- 独自UDF
- 共通のログ loader
- Pigのチューニング
-
- Mahout
- 用途に応じたデータ変換
- 一連の処理の実行を定型化
- Mahout
-
- 楽しさのマイニング
- 一日20億以上の行動情報
- 統計的に優位に立てる
- 多くの人へ還元することができる
- 楽しさのマイニング
-
- 感情がわかる詳細行動情報
- Webの広告では行動に対する広告に最適化が行われた。
- ソーシャルゲームでは感情に紐づいたような詳細な行動情報が取得できるようになった。
- どういった行動パターンがある時に継続の傾向が見られるのか、利用をやめている人との行動パターンとはどこが違うのか。
- ゲームレコメンデーション
- コミュミケーション系サービスの解析では自然言語処理も利用
- 感情がわかる詳細行動情報
-
- 楽しさの行動パターン
- きっかけを見つける。
- サービス継続している人の行動特徴
- どのサービスがユーザに訴求しているかを解明する。
- そのサービスを新ユーザに早めに提供することで、継続率を増やせる。
- 楽しさの行動パターン
-
- やめてしまう行動パターン
- きっかけを見つける。
- 飽き始めたユーザの予測、判別。
- 新しい体験、他の楽しみ方の提供。
- やめてしまう行動パターン
-
- 健全なプラットフォームへ
- 不正な書き込み判別
- 年齢詐称の判別
- 健全なプラットフォームへ
-
- ユーザの声によるサービス洗練
- ソーシャルコミュニケーションのテキストマイニング
- ユーザの声によるサービス洗練
-
- 迅速なサービス洗練
- 数時間から数日スパンで迅速なサービス洗練。
- サービスを動的に変化できるソーシャルゲームならでは。
- 迅速なサービス洗練
機械学習とか統計とかR言語の所は知識がまだ無いのであれだけど、hadoopのチューニングの所は本に書いてある通りだったり、データの持ち方の所に関しては、自分でもそういうデータの持ち方をできればいいな〜と空想したことはあるし、多くの人がそうなってれば楽だろうなと考えたことはあるんじゃないかと思う。
知識面だけでなく、考えられる全てのことをしっかりと行動に移している(できない理由を考えるのではなく)という点も、エンジニアのあり方として多いに見習うべきと思った。そういう点を全てクリアして初めて次のステップに進めるんだろうな。
デブサミの時の奥一穂さんといい、DeNAは凄い人が集まっているな〜。そういえば、webマイニング勉強会の資料は何度も見たので、知っていたはずなのに、自己紹介の文部大臣の下りで「おおー。」と言ってしまったwww。
Asakusa エンタープライズ ウルシステムズの神林さん
-
- Asakusaの目的
- Hadoopで基幹バッチをやるためのフレームワーク
- バッチ実行時間の短縮
- 今まで時間的な制約でできなかった処理を何度も行うことができる。
- サービスのレベルを上げることができる
- 夜間バッチもなくしたい。エンジニアの負荷的(夜間対応やだ!)にも、お客さんの要望的にも。
- Asakusaの目的
-
- 基幹バッチはややこしい!
- これをBIツールである、hadoopでやるのはハードルが高い。
- データ量がめちゃめちゃ多い。桁が違う。
- 処理自体は単純だが、データフローが複雑で種類も多い。
- 設計が超重要!!
- 基幹バッチはややこしい!
-
- Hadoopに何が足りないか?
- 開発ツールがない。
- テストフレームワークも貧弱。
- 運用は考えられていない。
- Hadoopに何が足りないか?
## 基幹で必要なレベルで考えた場合
-
- ビルディングブロックの構成による処理フローの構成
- Pluggableに色んな処理を組み合わせるイメージ
- ビルディングブロックの構成による処理フローの構成
-
- トランザクション管理
- HDFSがぶっこわれても大丈夫なキャッシュとか
- トランザクション管理
-
- その他機能
- Pig, hiveにはない基幹向けの演算子や機能をデフォルトで提供。
- チェックポイントもあり。
- その他機能
-
- MRコンパイラ
- 多層DSLを最適なMap Reduceに修練していく。
- 素人が見ても撃沈する黒魔術が多用されている。
- MRコンパイラ
-
- Model Generator
- TableやviewをSQLで作ると、自動でクラスを生成してくれる。
- Model Generator
-
- テストツール
- junitで叩けるツールも提供
- Model generatorからテストシートが自動生成される。
- テストツール
-
- 外部連携
- デフォルトはsqoopになる予定
- 現在のprjではもっといいやつ使ってるけど、公開するかは未定
- 運用のためのスクリプトも自動生成。
- Monkey Magicの使用を前提。(hadoopクラスタ用のツールとしての実績、クラウド用のライセンス提供。)
- 外部連携
## 保守系のツールのライセンス問題は、クラウド化を考えた時にけっこうな問題になるよ
-
- OSS化
- 三月目標。
- β版欲しい人は連絡ください。
- OSS化
-
- まとめ
- Asakusaを使うと基幹バッチがホイホイ書ける
- マーケットは確実にBIよりも大きい。億単位のビジネス。
- 普通の業務系、BIでも使えるよ
- まとめ
基幹業務のことは知らないし、DSLやDAGの知識もないので、ついていけない部分もあったけど、目指している所は感じ取ることができた。
テストに関しては皆どこまで検証してんだろうな〜というのは日々疑問に思っていたし、運用に関しても、自分の中で問題発生後の対応でいいべみたいな気持ちがなくはないので、、こういうかっちりした部門のノウハウから吸収できるところは吸収していくべきと思う。
Hiveを用いたAmeba サービスのログ解析 Cyber Agent 福田さん
-
- Patriot開発までの経緯
- 2009年に hadoop conference Japanに参加し、CDH, Hiveを知る。
- その2週間後の伊豆合宿での開発合宿で開発もせずに、サービス解析の重要性を語り合う。
- 上長に相談し、GOサインをもらい開発を開始。
- Patriot開発までの経緯
-
- 従来の問題点
- 各サービス毎に独自解析
- 容量の肥大化
- 開発担当者では解析部分に手が回らない
- 従来の問題点
-
- Patriotの目的
- 統合的なログの解析基盤
- HDFS, Map reduce, Hive, webでの集計結果表示, アドホックなクエリ
- Patriotの目的
-
- hive概要
- (略)
- hive概要
-
- 開発体制
- アプリ側三人、プロデューサー、インフラの人が随時
- 開発体制
-
- 解析概要
- ログはHDFS上に、サマリーデータはmysqlに入れている。
- アクティブ率の一覧
- ブログ毎での訪問者のユーザの属性
- Beeswax -> Hive QLをweb UIから直接叩ける
- アドホックな集計
- ヒープサイズに注意。(実行計画が長期間保存されてしまうため、メモリが足りなくなるが、保存期間を変える方法が不明。)
- プロデューサー用に読み込み権限のみのスレーブを準備
- 実際にプロデューサーがたくさんのクエリを投げている!!
- Join文を使って激重な処理を投げてしまうようなレベル。
- 解析概要
今が新卒3年目と言っていたので、これを提案したり作ったりしたのは2年目の時ってことで、その年次でこれを作っちゃったことも凄いし、そういう発案が入社2年目の社員からなされる会社の風土も凄いし、それを認めて作らせちゃう上司も凄いし、その後プロデューサ系の人にHive QLを浸透させたということで、根気よく教えた側、それを拒否せずに学習した側(しかもシステムをハングさせるような複雑なクエリを生成できるレベル!)、みんな凄い。。
技術面もさることながら、そういった企業文化の面で、見習わなければな〜と思う所がたくさんありました。
マルチユーザでのhadoop環境のポイント. NTTデータ 山下さん
-
- Hadoopのエピソード
- その1 ヒープメモリの枯渇
- 実際に動かして見るとおこることがある。特にマスターノード
- 空ファイルや小さなファイルを置かない
- データ量、ファイル数の見積もりは大切。
- Gangliaによるモニタリング
- その2 ライブラリ起因による処理の実行
- 出力ファイルの一部が一部消失。
- Hadoopの投機的実行、同じ処理の多重実行が原因。
- Task-id でファイルの削除処理をしてた!!Task-attempt-id で処理しようね
- その3 hadoopクラスタの利用拡大
- マルチユーザで使うにあたっての注意点の話が出てくる
- その1 ヒープメモリの枯渇
- Hadoopのエピソード
-
- 概要
- 利用者にクラスタ構成は意識させない設計
- 適切なアクセス制限
- お互いの利用状況を知らないという前提でものごとを考える
- HDFSは誰かによって領域をおさえられたり、ファイルを削除されたりしまうようなことが起こりえる
- MapReduceは好き勝手に実行されて、(優先度highばっかりとか)一向に処理が開始しないとか
- Hadoopのコマンドを意識させない。 HUEの導入。
- Hadoopのweb画面にはアクセスさせない
- 特定のクライアントを通してのみのアクセス
- 概要
-
- HDFS
- ユーザーグループ、パーミッションの設定
- クオーターの設定、ブロック数の制限
- HDFS間の通信
- 認証、認可 Kerberos, 他のアプリケーションの組み合わせとか
- HDFS
-
- Map reduce
- スケジューラによるジョブ制御 。Fair scheduler, capacity task scheduler。それぞれに特徴がある。
- 内部通信に関するポリシー
- アクセスコントロールの設定. mapred.acis.enabled
- Map reduce
-
- もっと使いこなすには、、
- ChildプロセスのJVMオプション制御
- スケジューラ改良
- 共有資源、占有資源の制御
- 物理ディスク対策
- ユーザーグループ
- もっと使いこなすには、、
-
- Q&A
- hadoopであれこれするのは無理があり、入り口の認証(Gatekeeper?)でマルチユーザを実現するのが一般的だと思うが?? -> hadoop内で制御できれば、クラスタを統一できコストが減らせるのではないかということでやっている。 (+hadoop内でどこまでできるのかという挑戦的な意味合いも強い。 濱野さんより)
- Q&A
これの直前にLTもあって、この辺から集中力が低下。。
あと、そもそも、複数ユーザの問題に行き当たるほど使い込めてもいないので、もっと利用シーンが広がってきた時に、ああ、これはこういうことを言っていたんだな〜と分かる日が来ると思う。
hadoopとKNIMEを用いた広告配信 リクルート 中野さん
-
- 現状
- 余剰の35台の研修環境、新規に23台のクラスタ環境
- Hiveの利用開始、HBaseの検証中
- メルマガ用のリコメンド、相場表のクロス分析などをやりたい
- 現状
-
- KNIME
- データの処理ロジックをビジュアルに組み立てることができる
- ノード(細かな処理。joinとかソートとか)の組み合わせで実行状況を可視化。
- ジョブの進み具合もリアルタイム見ることができる。
- 各ノードをクリックすることで、その時点でのデータの状況を確認することができる。
- ドイツのコンスタン大学で開発
- 全世界で約6000人
- 日本でのサポートもあり
- KNIME
-
- Hadoop + KNIME
- 前処理をhadoopでしておいて、KNIMEで取り出して解析みたいな。
- Hive , KNIME間の各種ドライバを作成中。
- 解析プラットフォームとしたいが、データ取得部分でSQL的な所は出てしまうので、そこは課題。共通で使えるなにかを用意したり?
- Hadoop + KNIME
-
- Q&A
- 可視化ツールときくと破綻しそうな印象があるが?? ( +Asakusaでも導入しているが、リファクタリング、重複コードの除去はどうするの??みたいな問題が起こっている。) -> 色々と制約を入れたりすることで防いでいきたいと思っている。
- Q&A
分析専門の人がいれば、簡単に機械学習とかできそうと勘違いしていたけど、そういう人と仕事をするにあたっては、また別の課題があるんだな〜。ただ、そういうことに気付けたり、色々と教授してもらえる人がいるというのは羨ましい。(そういう系列の人は、コミュニケーションが難しそうな印象もありつつ。)
自分の知識不足 + 集中力不足もあって、やろうとしていることの全体像が掴み切れなかったので、次は簡単なデモなど見れるといいなと思った。
あと、Rでも処理フローをビジュアル化して作れるものがあったような無かったような。。
文字書くのに疲れたのでTL部分はまた明日。。