open network live - hack day report

Post on 19-May-2015

1.424 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Chirp Hack Day Report

(株)デジタルガレージ 和田浩一 wada@garage.co.jp

@Koichi

自己紹介

•  和田浩一 – 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でのこの講演中に 225GB

技術的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 sample users = 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-

twitter-chirp-2010

最後に

•  日本からも何人か参加されてました •  次回参加されてはいかがでしょうか •  ご清聴ありがとうございました

top related