Hadoop Conference Japan 2011 に参加してきました #hcj2011

きょうは『Hadoop Conference Japan 2011 (Hadoop カンファレンス 2011)』 に参加してきました。

- Hadoop Conference Japan 2011

Twitter のハッシュダグは「#hcj2011」でした。
会場は豊洲駅の豊洲センタービルというNTT データが入っている建物の36階。

P1170279

36階から見る東京湾岸の開発風景は、工事現場を眺めるのが大好きな僕が大好きな風景でした。

P1170282P1170281P1170280

すごいですねぇ。まだ開発してるし、これからもずっと開発中なんでしょうね。

Hadoop Conference Japan 2011 のプログラム


今日のおもなプログラムは以下のとおり。

11:30~12:05Hadoop on クラウド / Amazon Elastic MapReduceの真価Amazon Web Services, Jeff Barr
12:05~12:40MapReduceによる大規模データを利用した機械学習株式会社Preferred Infrastructure, 岡野原 大輔
12:40~13:40昼休み
13:40~14:15モバゲーの大規模データマイニング基盤におけるHadoop活用株式会社ディー・エヌ・エー, 濱田 晃一
14:15~14:50Enterprise Batch Processing Framework for Hadoopウルシステムズ株式会社, 神林 飛志
14:50~15:25Hiveを用いたAmebaサービスのログ解析共通基盤株式会社サイバーエージェント, 福田 一郎
15:40~16:30ライトニングトーク
16:30~17:05マルチユーザーでHadoop環境を利用するためのポイント株式会社NTTデータ, 山下 真一
17:05~17:40Hadoopと分析統計ソフトKNIMEを用いた効率的データ活用株式会社リクルート, 中野 猛

以下、発表の聴講メモです。

Hadoop がらみの参考文献


Hadoop徹底入門

[Amazonで詳細を見る]

Hadoop: The Definitive Guide 2nd Edition

[Amazonで詳細を見る]

Hadoop in Action

[Amazonで詳細を見る]


Hadoop on クラウド / Amazon Elastic MapReduceの真価


Amazon Web Services の Jeff Barr さんの発表。

Jeff さんは 2002年からAmazon のエバンジェリスト。
Host Your Web Site in The Cloud の著者。
Amazon Web Services ガイドブック

[Amazonで詳細を見る]

Host Your Web Site on the Cloud

[Amazonで詳細を見る]

# こっちが原著
Big Data とは何か

- Big Data とは大容量のデータと言う意味だけではない。
-- 既存の技術では処理しきれない量のデータ、データの構造のこと。
- これらのデータを扱って、本質を理解するための結果を迅速に出力したい。

Amazon Elastic MapReduce とは何か

- 大量のインスタンスを使用可能で、大容量データの処理が可能。
- 稼働が容易で、モニタリングが可能。
- CLIもあるし、REST API もある。

なぜ Amazon Elastic MapReduce を使うのか

- MUCK : ぬかるみ。歩くのが難しい抜かるんだ状態。
- Elastic MapReduce は Big DataからMUCKを取り除く
-- Hadoop 利用における MUCK は低層な運用管理やデバッグのこと。

- Hadoop 利用における MUCK(ぬかるみ)の例
-- 計算機クラスタの管理
-- Hadoop のチューニング
-- Job のモニタリンク
-- Hadoop Job のデバッグ

どんなタイプを選ぶべきか

課題に即したインスタンスタイプを選ぶべき。

RAZORFISHとBEST BUYのClickstream Analysis


のクリック、ユニークなクッキー、のターゲット広告の表示。
100 node のクラスタで 8hour で処理が可能。

MapReduce とは何?

Google の論文見てね。
業界標準になってきたので、知ってて当たり前になりつつあるよね。

MapReduceの流れ

1 入力データを取り出す
2 データを問題単位に切り分ける
3 Worker nodeの振り分ける
4 Worker は分散された部分問題を並列処理する
5 Reducerは処理済みのデータを集約して減らしていく

Elastic MapReduce の使い方の説明

すごく丁寧な説明で(ry。
(省略)

質疑応答

Q : Elastic MapReduce を使うと何が嬉しいの?
A : 運用が自分のアプリケーションに集中できる。

Q : MapReduce で MCMC をしてどんなことが嬉しい?
A : 並列でシミュレーションをして、一番良い結果を探す事ができる

Q : Elastic MR を分単位で提供することはないの?
A : 現在の顧客の使い方を見る限りは問題がないけど、開発チームに一度相談してみる。

感想

Jeff さんはエバンジェリストなので Elastic MapReduce の宣伝とMapReduce の宣伝の分量が結構多かったです。

会場にいるの人がどんな層なのか分からないけど、僕個人としては顧客の利用例やTipsに特化してもらえた方が嬉しかったのにな、と思いました。

MapReduceによる大規模データを利用した機械学習


株式会社Preferred Infrastructure の岡野原大輔さんの発表。
PFI の研究開発チームリーダー。


MapReduceと機械学習

結論:MR+MLは実用的

機械学習の定義は Wikipedia 参照。
- 機械学習 - Wikipedia
人工知能における研究課題の一つで、人間が自然に行っている学習能力と同様の機能をコンピュータで実現させるための技術・手法のことである。 ある程度の数のサンプルデータ集合を対象に解析を行い、そのデータから有用な規則、ルール、知識表現、判断基準などを抽出する。 データ集合を解析するため、統計学との関連も非常に深い。


有用な規則やルールを作り出すのは、人手が多くかかり困難。
しかし、今の世の中にはデータが溢れてる。
この大量のデータからうまく抽出できたら有用。

機械学習だ!

- 機械学習がなぜ普及したのか
-- タスク固有の問題を抽象化し、学習手法とタスクを分離できたから

- 近年、世界で作られるデータの量が爆発的に増えすぎている
-- データが増えすぎて、処理するアルゴリズムは線形以上の速度が必要。

機械学習がMapReduce 向けでなくても、それを実現する分散並列システムをつくるより、MR化した方がコスト安という認識が広がっている。
多くの機械学習がデータごとに求まる関数和の問題と考えることができる。

Apache Mahout
- Apache Mahout:: Scalable machine-learning and data-mining library
Mahout in Action

[Amazonで詳細を見る]


Hadoop 上で動く機械学習ライブラリ
スケーラブルであることを最優先
開発が活発で2〜3ヶ月ごとに大きくアップデートする。
新しいコードも多く品質は様々

どんな分野に対応しているのか
■ 分類
-- Logistic Regression (SGD)
-- Bayesian
-- Support Vector Machines (SVM)
-- Perceptron and Winnow
-- Neural Network
-- Random Forests
-- Restricted Boltzmann Machines
■ クラスタリング
-- Reference Reading
-- Canopy Clustering
-- K-Means Clustering
-- Fuzzy K-Means
-- Expectation Maximization (EM)
-- Mean Shift Clustering
-- Hierarchical Clustering
-- Dirichlet Process Clustering
-- Latent Dirichlet Allocation
-- Spectral Clustering
■ パターンマイニング
-- Parallel FP grows Algorithm
■ 回帰
-- Locally Weighted Linear Regression 回器
■ 次元削減
-- Singular Value Decomposition and other Dimension Reduction Techniques
-- Principal Components Analysis (PCA)
-- Independent Component Analysis
-- Gaussian Discriminative Analysis (GDA)
■ 進化的計算
■ レコメンド/協調フィルタリング
■ 文字列データ処理
■ 行列演算

Mahout は数台から百台強の動作実験では線形にスケールした。
でもドキュメントが不足しているので、詳細の挙動についてはコードを参照。

大規模並列分散処理の最前線

結論:機械学習での分散処理はMahoutで試せる。

グラフィカルモデルも Hadoop で処理できる
確率変数を頂点、変数間の依存関係を枝としたグラフ構造。
グラフィカルモデルの推論は一般に困難
 それに加えて、モデルはより巨大で密なグラフで、数百万の変数も扱う方向へ
様々な並列化アルゴリズムが提案されている。

グラフィカルモデルの並列処理に関する Sameer Singh さんの発表。LCCC 2010。
論文:Distributed MAP Inference for Undirected Graphical Models
プレゼン動画:Distributed MAP Inference for Undirected Graphical Models
プレゼン:Distributed MAP Inference for Undirected Graphical Models

数値最適化の並列分散化
多くの機械学習は数値最適化問題に帰着する
 目的関数F(θ)の最小値を達成するθを求める。

数値最適化の並列分散化はMapReduceを使えば簡単?
 方法1:Parameter Mixture
  データを分割してパラメタを求めて平均を取る、だけ。
  実はうまくいかない。
 方法2:Distribute Gradient
  勾配の計算部分を並列に行なう。更新を一台で行う。
  短所として、収束が遅く、Worker間でパラメタ共有する必要あり。
 方法3:Asynchrinous Update
  パラメタは共通で、更新を分散する。
 方法4:Iterative Parameter Mixture
  うまく行く事が分かった。  
  処理は以下の流れ
   1. データを分割しshardに配る
   2. shardごとに最適化
   3. 全部のshardのθの平均を取る
   4. 平均をθとして再度各shardに配り1へ
  これだけだが、平均をとるだけで単体のマシンで最適化したのと同じ効果。
  つまり分散する程、速く学習が終わる。
  実験では、クリック予測でIterative Parameter Mixtureが、ぶっちぎりの高速&高性能

Iterative Parameter Mixtureに関する Slav Petrovさんの発表。LCCC 2010。
- 論文:MapReduce/Bigtable for Distributed Optimization
- プレゼン動画:MapReduce/Bigtable for Distributed Optimization
- プレゼン:MapReduce/Bigtable
for
Distributed
Optimization

今後注目の技術

結論:MRの補助にDremel(ドリーメル)を使える
 低レイテンシでのアドホッククエリ処理が可能
 将来的に高速な推論、分類に使える

Sergey Melnikさんの研究成果。
- 論文:Dremel: Interactive Analysis of Web-Scale Datasets, VLDB 2010
- スライドDremel: Interactive Analysis of Web-Scale Datasets

Dremelは対話的な大規模データ解析基盤
 一兆のデータに対するアドホッククエリの結果を数秒で得られる
  MRと比べて低レイテンシ、簡単な統計処理のみ
 クエリ言語はSQL
 Googleでは2006年から使ってる

列指向のデータ格納
 列指向DBの考えを木構造に応用
  各属性の値は期中の同じ位置ごとにれんぞくした領域に確保される
  一部の属性しかクエリに関係がない場合に大部分を読まなくて済む
 圧縮レコードの復元
  クエリに関係するフィールドのみを復元する
 クエリ処理アーキテクチャ
  木構造
   検索におけるクエリーサーバーと同じ
  クエリは根から葉に向かって広がる
   処理がおわったら、葉から根に集約する。

HadoopとDremelは補い合えるのでは
 MapReduceが苦手としている、低レイテンシーでの検索が可能
 Dremel を使うために、MapReduce でindex構築が必要

質疑応答

教師無しの方が伸びるかな

感想

機械学習も MapReduce を使わないと何とかならない時代が来ていることがヒシヒシと伝わってきたので、一般企業で普通に使われるようになるのは、もう3年後くらいなんじゃないだろうか。

Dremel(ドリーメル)は注目し続けようと思います。

お昼休み @ NTT データの社員食堂


カンファレンス参加者は 19 階と 20 階の社員食堂を使うことができるということだったので、昼休みに行ってきました。
懇親会は 20F の食堂でやるみたいでした。社内で打ち上げができるとか便利ですね。

P1170288

ランチのサンプルを見ている間にも、すごい速さでメニューが売り切れるのでビックリしました。ギリギリ食べられましたけど。
20階の社員食堂は500円程度の値段で良い感じでした。

P1170286

そして景色が素晴らしいですね。開発するぞ。という気分になります。

モバゲーの大規模データマイニング基盤におけるHadoop活用


mobage の株式会社 DeNA の濱田晃一さんの発表。

大規模データマイニング基盤

■KPI定常算出と共有
 ビジネス・サービスの変化を検知
■経営判断・サービス洗練をおこなうためのデータマイニングを行なう
■データマイニングや機械学習の結果をサービスへ活用
 ユーザの行動の特徴を検出し、どういうサービスを提供するとユーザの活動が活発になるかを考える
■全行動ログとサービスのデータをHadoopに投入する
■Pigもつかう
 少ない記述量での一次集計/KPI
■Zebra
 一次集計のスキーマ管理
■MapReduceをいろんな言語から使う(Java/Perl)
 時系列処理、ゲームの分散シミュレーションなど
■R
 統計解析、データマイニング、気秋学習
■Mahout
 大規模データマイニング、機械学習
 素のMahoutは使いにくいので、主要な機能を組み合わせたラッパーをつくる
■検索エンジン
■DataMining Libraries
 各種ソーシャル行動解析用

Hadoopチューニング
 ネットワーク、ハードウェアに合わせたパラメタ設定
  MapReduceのタスク数、帯域制御、OSのパラメタ
 MapReduce間でやり取りするデータの一次圧縮(LZOで)
 出力データサイズの最適化
 Reducerのデータ取得法の実装を最適化
  MapReduce間の転送を高速化

Pigチューニング
 データマイニング、機械学習を行ないやすいように。
 環境に合わせたPertitionar実装の最適化
 多段MapReduce間の一次圧縮によるIO負荷軽減
 小さなファイルのCombineによる時間短縮
 独自のUDFによる一次集計の簡易化
 サービス間で共通のログローダーの開発

Mahoutチューニング
 各種Mahout出力用のデータコンバーター 
 目的に応じた手法の選択

一日20億強のアクションの行動情報
 感情が分かる詳細行動情報を得られる
  ユーザの活動情報
   クリック情報
   ユーザが生成したテキスト情報
 アクティブなユーザの行動の特徴やアクティブで無くなってきたユーザの行動の特徴を検出する
 周期的な特徴や時系列中の特徴などを取得し、サービスを改善していく

活動的なパターン
 活動的になる切っ掛けをマイニングする
  その切っ掛けを他のユーザにも提供して、他のユーザにその切っ掛けを高頻度で体験させる
 マイニングすることで、ユーザ目線での楽しみ方が分かる
  開始初期にその楽しみ方を体験してもらう

飽きてきたパターン
 飽きはじめるきっかけや、不快な状況をさがす
  それらを減らして、ユーザ離れを防ぐ
 飽き始めてきたユーザを予し、検出することが大切

レコメンデーション
 興味のあるコンテンツや、他のユーザとのであり。

不健全な書き込みの検出
 不正な書き込みや、年齢詐称の判別をする必要がある

ユーザの声をサービスに反映する
 Web情報をテキストマイニングし、改善点を抽出する

大規模サービスよく生じる問題
 サービスごとにログフォーマットがことなる
 ログの置き場がバラバラ・分散されている
 こうなると、ログ収集と基礎的な集計作業がメインになり、データマイニングまでたどり着かない

ログは、サービス間をまたいで統一されたフォーマットにするべき。
 サービスを横断して、同じプログラムで行動解析ができる
 スキーマが分からない、ということはない。
  学習コストが低い
 データの活用をスムーズに行なえる
 Hadoop上にデータを載せておけば、データは分散されているけど、利用の際にデータ収集がいらない。
 こうなると、データマイニングと機械学習に到達できる

Enterprise Batch Processing Framework for Hadoop


ウルシステムズ株式会社の神林飛志さんの発表。



Asakusa
 基幹バッチ処理を行うもの

基幹バッチの特徴
 同時に使うデータの種類が多い
  数百種類
 処理の組み合わせは単純

基幹バッチの処理を行なうには今のHadoopに足りないものが沢山ある。

Asakusa はPigなどと同じような層にあり、コアに手を入れていない

フルスタックのフレームワークである。
 上位の開発方法論
 実装フレームワーク
 コンパイラ
 データモデリング
 運用連携
  
DAGベースの多層DSL構造
 三層のDSL
  BatchDSL:Jobの連鎖を記述する
  FlowDSL:各Job内の処理の流れをMapReduceで構成する
  OperatorDSL:データを実際にどう処理するか演算子を出力する
   演算子は基幹向けに必要なマスターとの突き合わせや、フロー制御をするための演算子をもっている

ビルディングブロックの構成により処理のフローを記述
トランザクション管理
ロールバック制御
 HDFS上のデータがブッこわれても大丈夫になるような工夫をしている
  どうやって?

MRコンパイラ
 Ashigelコンパイラ
 ステージングコンパイラ
 多層DSLを最適なMapReduce処理群に変換する
 ソースコードが面白いそうだ

SQLからテンプレートを使ってモデルを生成できる。

運用ツール
 現時点ではデフォルトはMonkeyMagic
  とりあえず実績がある
  クラウド用のライセンス体系

β版は利用可能になっているので、発表者まで連絡すればパッケージが貰える。そうです。

Asakusaは何が嬉しいのか
 基幹バッチがほいほい書ける
  Hadoopで一般業務向けの処理が書ける
 しかし、なんと言っても「お金になる」
  基幹系マーケットはBIよりも大きい

Asakusaのターゲット
 Hacker
 業務屋の人
 SI屋の人

感想

プレゼンがすごい速いので、ここまでの発表で一番ついていけなかったです。
あとで、埋めていきます。

Hiveを用いたAmebaサービスのログ解析共通基盤


株式会社サイバーエージェントさんの福田一郎さんの発表。



@toutou
Amaba Pigの開発と運用 => ログ解析基盤「Patriot」の開発

非エンジニアのディレクターが使いやすいデータの可視化を実現しちゃうよ、という話。

アメーバについて
 ユーザの6割が20〜40代の女性

 アメーバPig
  可愛いUI上でユーザ間コミュニケーションが可能
  ユーザ数600万人
  アクティブユーザの ARPPU 2121円

 モバイルゲームも提供している

Hadoop の使い方
 アメーバピグ(HDFS)
  「アクセス解析というサービスでログ解析結果の可視化をしている」
 pico(S3、Amazon Elastic MR、Pigのスクリプト)

Patriotができるまでの問題
 各サービスごとに独自に解析していた
  しかしどれも定型的だった
 ログ容量の肥大化
  重要なログが消されてしまう悲劇が起きた
 サービス開発担当者が解析部分までに手が回らない
  でもプロデューサーは、サービスの運用に関する数値を取得したい

Patriotの実現方法
 HDFS
 MapReduce
 Hive
  SQLっぽい言語で、MapReduceを記述できる
  メタストア
  行単位の更新ができない
 Patriot Web UI  
 HUE

Patriotの開発
 システム3名
 インフラ1名
  ↑
  ↑リクエスト
  ↑
 会員獲得担当プロデューサー1名
 サービス担当プロデューサー1名

使ってるアプリ
 Hadoop 0.20、Hive0,5、Puppet、Nagios、Ganglia
 Ext JS、HUE、Hinemos

ファイルフォーマット
 基本、GzipでSequentialブロック単位圧縮
 MapOutputはLZO圧縮

Hive はUDFを簡単に作ることができる。

HUE
 Beeswax
   HiveQLをWebUIから直接叩ける
 アドホックな集計ができる
 初期設定では落ちるので、ヒープサイズに注意
  データ保持機能を調整するオプションがないので、ヒープサイズを大きめにするしかない。
   調査中

アメーバのプロデューサーはHiveQLを書ける
 すばらしいですね。いや、ほんとに。

ライトニングトーク


Gfarm上でのMapReduce



@shun0102

HDFSの問題点
 POSIXに準拠してない
 マウントしたい

他のファイルシステム
 GlusterFS:比較実験した
 Ceph:負荷をかけると固まった
 Lustre, PVFS2 : 試したい

Gfarm
 大学や研究所などで使用実績がある。

HDFSと比較した欠点
 ブロック分割しない
  単一ファイルへのアクセスがスケールしない
 複製生成が非同期

Hadoopから他のファイルシステムを利用する方法
 1、JNIのlayerをはさむ
  今回はこっち
 2、マウントしてアクセス

HDFS VS Gfarm
 書き込みはメモるに乗る分、性能差が出た。
 読み込みはディスクネックで差が出ない

GlusterFS
  ローカルファイルシステムを束ねて一つにファイルシステムにする
  安定していて、使いやすい

GlusterFS vs HDFS
 HDFSに負ける
 HDFSに負ける理由
  ローカリティを利用できないから?
  FUSEのオーバーヘッド?で遅い?

Hadoop Hapyrus

@fujibee

Hadoop開発の問題点
 最初の敷居がすごく高い
  サーバを大量に用意する必要がある
  MapReduce自体の理解
  サービスの運用

Hapyrusとは
 Hadoopを使った大規模分散データ処理のための
 http://hapyrus.com/

別のユーザが用意してくれたコードのおかげで、自分でMapReduceのコードを書かなくても処理できる。

MySQLをJobTrackerに使ったMapReduce

@frsyuki

単一故障点がない
任意のMapタスクやReduceタスクを連鎖可能
マルチユーザー対応
Worker以外は既存のシステムを利用

Jobtrackerの形式
 Hadoop
  push型
    暇なworkerにjobを与える
 このシステム
  pull型
   暇なWorkerがJobを取りに行く

Streaming inputを実装
 I/Oと計算を多重化して遅延を隠蔽する

課題
 いろいろ

実際にMapReduceが動いてた。かっこいい。

Hadoop and HBase for ranking process engine

@uprush

huge dataのリアルタイムランキング
 ここで言うランキングは属性に従ったランキング
  高速な集計が必要になる

HBase を使った。
 RDBMSを使っていたころにできなかった集計を高速に行なうことができるようになった。

Bondingとスループット

Bonding の設定を変えてスループットを計ってみた

サーバ側
 802.3ab
 blance-rr
スイッチ側
 src-mac
 src-dst-ip
 src-dst-mac

110MB/Sec = 880MbpsのNICを使う。

スループット3位の設定
 サーバ:balance-rr
 スイッチ:src-mac

balance-rrのスループットが遅かった。
 その理由
  balance-rrのログ出力がCPUを食いつぶしていた。

スループット2位の設定
 802.3ab
 src-mac

NICごとにバラツキはあるけれど、トータルは2枚でNIC1毎分の1.3枚分。

スループット1位の設定
 802.3rd
 src-dst-ip

さらにがんばった。
NIC2枚で最大1.8倍に届く勢いでスループットが向上

ネットワークの設定をどうするとスループットが向上するのか計ってみた。
結果として、802.3rdとsrc-dst-ipの組み合わせが良さそうだ。

Hadoop とMongoDBの美味しい関係

@yuunyan_m

Hadoop + MongoDB
レセプト280万件/年
フォーマットがひどい
 可変複数行で1データが構成されている
 仕様書が紙
 データが仕様書どおりではない

Ruby-mongoを使って格納した。

Rを使って集計したくなったときには、MongoDBにRからアクセスすればいい。
しかし、Rでシングルノードで計算すると1団体のレセプト処理に100時間。
 団体は複数ある。

こうなったらMapReduceするしかないか?
 しかし、統計化のRのコードをStreaming化できない
  仕方が無いからRubyでHadoopの周りをラッピングして、処理することにした。

平和に終わった。

マルチユーザーでHadoop環境を利用するためのポイント


株式会社NTTデータの山下真一さんの発表。

NTTのHadoopへの取り組み
 Cloudera社との提携とか

環境で使ってるアプリ、ライブラリ
 Kickstart + Puppet
 CDH
 Sqoop
 Hue
 Ganglia

エピソード1:ヒープメモリが枯渇する
 空ファイルや小さなファイルを置かない
  定期的に消す
 数年後の状況を見積もって、数年後でも耐えるような構成や設定をする
 モニタリングする仕組みを用意しよう

エピソード2:ライブラリ起因による処理の不整合
 使用しているライブラリの挙動を把握していないと起きるトラブル
 問題の例
  MRの出力ファイルの一部が完全に消えていた
 原因
  MRの投機的実行による同じ処理の多重実行されていた

エピソード3:Hadoopクラスタの利活用の拡大
 もっといろいろな用途で利用したい、という要望
 もっといろいろな部署で利用したい、という要望

 こういう問題に対処する方法を考えた。

複数の利用者や目的で動作させるHadoopクラスタ

 Hadoopクラスタの構成を意識させないように
  クライアントを用意して、クラスタに直接アクセスさせない
 クライアントに認証
 Hadoopのコマンドを直接実行させない
 HadoopのWebインターフェイスにアクセスさせない


避けたい想定外の問題
 HDFS
  誰かが任意のデータの権限を変えたり、操作したり
  誰かが領域をつかいきったり
 MapReduce
  誰かの処理がリソースを使い過ぎ
  みんな優先度高
 その他
  誰が何をやっているか筒抜け

HDFS

 HDFS上での明確な管理
  supergroupは使わない
 その他の利用者はアクセス不可
  640,750の設定
 共有領域を用意する

クオータ
 ファイル数やディレクトリ数の設定
 格納できるサイズの設定
 最大レプリケーション数の設定
 ユーザごとのブロック数の限定

内部通信に関するポリシー
 hadoop-policy.xmlの設定

認証、認可
 HDFSのKerberos認証
 HueなどによりHadoopクラスタ前面で認証
 なりすましを防ぐ手法

MapReduce

スケジューラー
 CapacityTaskScheduler
  キュー単位のリソース配分
   ユーザごとの独立した割当はできるけど、公平な割当ができない
 FairScheduler
  プール単位のリソース配分
    公平な割当はできるけど、プールの使用量を制限できない

内部通信に関するポリシー
 hadoop-policy.xmlの設定

MapReduceに関するACLの設定
 ACL機能を有効にする
 キューに投入できるユーザ、、グループを設定する
 ジョブを制御する

もっと上手に乗るために

ChildプロセスのJVMオプション制御
スケジューラの改良
占有資源と共有資源の改良
物理ディスク対策
 物理ディスク上でのデータの暗号化とか
ユーザとグループ
アプリケーションを実行する利用者に対するルールを定義する
 優先度とか
 アクセスとか

Hadoopと分析統計ソフトKNIMEを用いた効率的データ活用


株式会社リクルートの中野猛さんの発表。

リクルート + Hadoop

35台の余剰マシンを持っていたり、23台の本番環境を構築したりしている。
Hiveは利用を開始
 メタストアはPgSQL
 UDFの拡張性が良い
HBaseも利用準備中
 半リアルタイムのデータ集計

今までは既存のバッチ処理を高速化するためにHadoopを使ってきた。
これから先は、別のことにチャレンジしたい。

チーム

分析屋 + システム屋
 両者の視点はが微妙に異なる
  SQL的に考える人 & R言語的に考える人

道具を共通化すれば、話が合うのではないか。
 しかし、分析屋さんのツールは極めて高価。
  なので、安価なツールを探していた。
   KNIME(ナイム)を見つけた。

KNIMEとは

データの処理ロジックをビジュアルで組み立てられる
  処理ロジックは沢山ある(150種類以上)
 製薬系の人が使っている

アニメーションで処理状況を確認できる。

ドイツのコンスタンツ大学が作っているらしい。
 全世界のアクティブユーザは6000人程度。

サポートは日本でもある。

類似アプリにはSpoon(Pentaho),Orangeなど

KNIMEの検討

商用アプリから2つの処理を焼き直ししてみた

良いところ
 クラスタリングなど、マイニング系は充実してる。
 処理をJavaでスクリプト的に記述できる。
そうでもないとこ
 SQLで一文書けば良いことが、ビジュアルで組み立てると煩雑に
 英語だし。

Hadoopとの連携

連携の方法
 Hiveを通して、JDBCで接続する

速い、とばしまくってる

KNIMEのモジュールの作り方

Javaのコードの断片を書き込めるので、Javaを利用できる。

課題

結局、今のところHiveQLは書かなきゃいけない。
 使用頻度が高いものは、単発のHiveQLを発行するようにすればいい

今後

活用に向けて整備したい。

質問

Q:ビジュアルでの入力は破綻するんじゃないですか?技術屋さん的にどう思いますか。
A:破綻すると思います。でも用途が限定されていると分かって使うなら、大丈夫では。

Hadoop がらみの参考文献


Hadoop徹底入門

[Amazonで詳細を見る]

Hadoop: The Definitive Guide 2nd Edition

[Amazonで詳細を見る]

Hadoop in Action

[Amazonで詳細を見る]


おわりに


ということで、今日はHadoop Conference Japan 2011 に参加してきました。

発表も充実していて、終わったあとグッタリしました。
全然知らない単語も多々あったので、聞きにきて良かったなと思いました。
会場は前から後ろまでビッシリ埋まっていました。参加者は350名。すごい人気。
P1170291
あと、会場内で Hadoop 徹底入門を買いましたよ。2冊目。
家用はあるので、作業場用のもう一冊。3500円でちょっぴりお得でした。

ちょっと残念なのは、龍版に会場前方がものすごくタバコ臭かったこと。
喫煙室から部屋に流入してるのかも。

今日は用事があるので懇親会には不参加でした。本当は参加したかったなぁ。

コメント


随時プレゼン資料を追加しつつ、誤字を修正したりしています。(2011/02/24)


投稿者:としのり  日時:23:59:59 | コメント | トラックバック |
blog comments powered by Disqus