chirp hackday
Post on 19-May-2015
929 Views
Preview:
DESCRIPTION
TRANSCRIPT
自己紹介
• 和田浩一– wada@garage.co.jp– @Koichi
• ツイナビのエンジニアリング– http://twinavi.jp
Chirp
• 4/14, 15 in San Francisco
• 本日ご紹介する内容– Chirp の様子– Hack Day のセッションから技術トピック
を2つ
Chirp の様子
1日目 -Conference
1 日目 - 夕方 Hack Day Start
1 日目 - 夜 Ignite
1 日目 - 深夜 Coding time
2 日目 - 開始前
2日目 -Sessions
2 日目 -Lunch, Meet The founders
まとめ
• 夜も通して 2 日連続のスケジュール• エンジニアが大勢集まって活気いっぱ
い• 食べ物と飲み物はしっかり
Hack Day セッション
技術トピック
• アプリが守るべきポリシー• 大量データの扱い
アプリが守るべきポリシー
守ってほしいポリシー
• ユーザーを悪い意味でびっくりさせない– 説明と違う動きをしたり– 急に機能が変わったり
• SPAM を送らない– 過去に DM を大量に送るゲームがありました
• プライバシーを守る– みんなが気にしてることです
守ってほしいポリシー (2)
• ガイドラインやルールを守る– Tweet Display Guidlines
• http://media.twitter.com/14/tweet-display-guidelines
– Terms Of Service• http://twitter.com/tos
• わからないことは質問する• Awesome なアプリを作る
–重要 !
守ってほしいポリシー (3)
• API 呼び出しの結果は Cache する• もらった OAuth Key を使わない
ポリシーまとめ
• いいアプリを作ってください
• スライド at slideshare - #chirppolicy– We Have Faith in (Most of) You: How Twitter
Crafts Policies to Allow Good Apps to Thrive– http://www.slideshare.net/delbius/chirppolicy
大量データの扱い
Twitter 上で生成されるデータ
7TB/日Chirp でのこの講演中に
225 GB
技術的 Challenge
• データ収集• 格納 & 解析• 早く解析結果を得る
データ収集
• 最初は syslog-ng を使った• データ量が膨大になってくるとスケー
ルしなかった
そこで
• Scribe– Facebook で開発されたオープンソースの
ログ収集フレームワーク– Thrift 上で動作– アプリケーションからはカテゴリーをつ
けてログを書き込むだけ
Scribe
• ローカルで動作– 障害に強い
• 階層構成– 下向きに書き込み
• プラガブルストレージ
書き込み 書き込み 書き込み
集約 集約
ファイル HDFS
データの格納
• 7TB/ 日を書き込むとして• 書き込み速度 80MB/s を仮定すると• 24.3 時間必要• 1台では間に合いません• 容量も必要
そこで
• Hadoop– 分散ファイルシステム– MapReduce 並列処理– オープンソース– Y! では 4000 ノード– 1TB のランダムな整数を 62 秒でソート
解析
• MySQL 上での操作では無理– ツイートを数える : COUNT, GROUP– ソーシャルグラフの集計 : JOIN
• やっぱり Hadoop– 全部のツイートを数えるのに 5 分– ソーシャルグラフの集計– ページランク
早く解析結果を得る
• 解析は通常 Java でコードを書くことになる
• ちょっと難しい– MapReduce– コンパイルが必要
そこで
• Pig– オープンソース– SQL の代わりになる高級言語– レコード集合に対して操作– 処理を 1 ステップづつ記述
Pig sampleusers = load ‘users.csv’ as (username: charaarray, age: int);
users_1825 = filter users by age >= 18 and age <=25;
pages = load ‘pages.csv’ as (username: chararay, url: chararray)
joined = join users_1825 by username, pages by username;
grouped = group joined by url;
summed = foreach grouped generate group as url, COUNT(joined) AS views;
sorted = order summed by views desc;
top_5 = limit sorted 5;
store top_t into ‘top_5_sites.csv’
Java に比べて簡単
5%のコード量ですむ
まとめ
• 大量なデータを処理するためのオープンソースソフトウェアを改良して使っています– Scribe– Hadoop– Pig
• スライド at slideshare - #chirpdata– Analyzing Big Data at Twitter– http://www.slideshare.net/kevinweil/big-data-at-twit
ter-chirp-2010
最後に
• 日本からも何人か参加されてました• 次回参加されてはいかがでしょうか• ご清聴ありがとうございました
top related