2011/7/28 Nikkei Business Publications All Rights Reserved. 2011 1
今さら聞けない今さら聞けないクラウドのキーテクノロジークラウドのキーテクノロジー
日経日経Linux Linux 副編集長 安東副編集長 安東 一真一真
2011/7/28 2Nikkei Business Publications All Rights Reserved. 2011
本日お話すること本日お話すること
話題の技術、事例、最新動向話題の技術、事例、最新動向
HadoopHadoop KVSKVS((NoSQLNoSQL))
CassandraCassandra HBaseHBase MongoDBMongoDB
2011/7/28 3Nikkei Business Publications All Rights Reserved. 2011
HadoopHadoopとはとは
GoogleGoogleが開発した技術「が開発した技術「MapReduceMapReduce」」をオープンソースで実装したものをオープンソースで実装したもの(論文は(論文は20042004年公開)年公開)
米米YahooYahooの技術者が開発の技術者が開発
大量データに対する処理を並列実大量データに対する処理を並列実行で高速化行で高速化
2011/7/28 4Nikkei Business Publications All Rights Reserved. 2011
HadoopHadoopの適用領域の適用領域
WebWebサービス領域サービス領域
ログ分析ログ分析
レコメンデーションレコメンデーション
YahooYahooはは40004000台で台で
楽天、リクルート、クックパッドなどなど楽天、リクルート、クックパッドなどなど
基幹バッチ処理基幹バッチ処理
2011/7/28 5Nikkei Business Publications All Rights Reserved. 2011
基幹バッチでの適用事例基幹バッチでの適用事例
西鉄ストア ー 世界初の基幹への導入西鉄ストア ー 世界初の基幹への導入 20112011年年55月に本格稼働月に本格稼働
44時間のバッチが時間のバッチが2020分に分に
仕入れや買掛金の確定、請求書の突き合わせ仕入れや買掛金の確定、請求書の突き合わせ
月次 → 日次に月次 → 日次に
今月末にも単品レベルの売り上げ、利益が見ら今月末にも単品レベルの売り上げ、利益が見られるように → れるように → 2020万点分を日次で把握万点分を日次で把握
9/16 XDev9/16 XDevにて詳細を明らかににて詳細を明らかに
ノーチラス・テクノロジーズ 神林ノーチラス・テクノロジーズ 神林 飛志氏飛志氏
2011/7/28 6Nikkei Business Publications All Rights Reserved. 2011
MapReduceMapReduceとはとは
MapMap処理処理
データを抽出・仕分けするデータを抽出・仕分けする
ReduceReduce処理処理
抽出・仕分けしたデータを集計する抽出・仕分けしたデータを集計する
ログ分析ログ分析 URLURL別に仕分けして、集計別に仕分けして、集計 →→ アクセス数アクセス数
基幹バッチ基幹バッチ 商品別に請求書を仕分けして集計商品別に請求書を仕分けして集計
複数の人が手分けしてできる処理には適用可能複数の人が手分けしてできる処理には適用可能
2011/7/28 7Nikkei Business Publications All Rights Reserved. 2011
仕組み: 抽出、仕分け仕組み: 抽出、仕分け →→ 集計集計
2011/7/28 8Nikkei Business Publications All Rights Reserved. 2011
処理の流れ(処理の流れ(11))
2011/7/28 9Nikkei Business Publications All Rights Reserved. 2011
処理の流れ(処理の流れ(22))
2011/7/28 10Nikkei Business Publications All Rights Reserved. 2011
データ分割の仕組みデータ分割の仕組み
NameNode
入力データ
CSV形式やHadoop独自形式のファイル
Hadoopが動作するノード群
④各ブロックを保存
ブロック5・・・
ブロック3 ブロック4・・・
ブロック2ブロック6
・・・
スレーブノード1 スレーブノード2
スレーブノード3 スレーブノード4
ブロックリスト
③ブロックの保存 ノードを指示
・・・
DataNode DataNode
DataNodeDataNode
クライアント
①保存先を問い合わせ
HDFSクライアントソフト
ブロック1スレーブノード1スレーブノード2スレーブノード3
ブロック2 スレーブノード2・・・
・・・・・・
ブロック2ブロック3ブロック4ブロック5ブロック6
・・・
ブロック1
ブロック1
入力
②各ノードへ均等にブロックを割り当てる。 ノードの障害などに備えて、各ブロックを複数箇所に保存する(通常3箇所)
入力データを固定サイズに分割
ブロック1
ブロック1
通知や指示 データの流れ
ブロック名 保存ノード
2011/7/28 11Nikkei Business Publications All Rights Reserved. 2011
障害を自動復旧障害を自動復旧
障害が起こると、障害が起こると、MapMap処理、処理、ReduceReduce処理のど処理のど
ちらも自動的に再実行ちらも自動的に再実行
投機的再実行投機的再実行
遅くなっているマシンに対処遅くなっているマシンに対処
2011/7/28 12Nikkei Business Publications All Rights Reserved. 2011
簡易言語(簡易言語(DSLDSL)が充実)が充実
MapReduceMapReduceアプリケーションを生で書くのは難アプリケーションを生で書くのは難
しい。(並列処理の基礎知識)しい。(並列処理の基礎知識)
DSLDSL(ドメイン特化型言語)(ドメイン特化型言語)
PigPig簡易なスクリプト言語簡易なスクリプト言語
HiveHive SQLSQLで分析処理を記述できるで分析処理を記述できる
AsakusaAsakusa基幹バッチ処理向け。基幹バッチ処理向け。MapReduceMapReduceの知識が不要の知識が不要
2011/7/28 13Nikkei Business Publications All Rights Reserved. 2011
HiveHiveの例の例
SELECT a.name SELECT a.name FROM employee a WHERE a.birth > '1980'; FROM employee a WHERE a.birth > '1980';
2011/7/28 14Nikkei Business Publications All Rights Reserved. 2011
AsakusaAsakusaは三つのは三つのDSLDSLで構成で構成
Operational DSLOperational DSL 基礎演算子 → 基礎演算子 → HadoopHadoopの知識が必要の知識が必要
Flow DSLFlow DSL 業務処理(データフロー)を記業務処理(データフロー)を記
→ → HadoopHadoopを意識しなくてを意識しなくてOKOK
Batch DSLBatch DSL いわゆるジョブフローの記述 → 簡単なスクリプいわゆるジョブフローの記述 → 簡単なスクリプトのようなものトのようなもの
2011/7/28 15Nikkei Business Publications All Rights Reserved. 2011
実装が増えている(実装が増えている(11))
ClouderaCloudera 商用ディストリビューションの草分け商用ディストリビューションの草分け
HadoopHadoopの生みの親(ダグ・カッティング氏)などがの生みの親(ダグ・カッティング氏)などが
参加参加
Elastic MapReduceElastic MapReduce 米米Amazon Web ServicesAmazon Web Servicesのサービスのサービス
自営のマシンは不要自営のマシンは不要
国内事例も増えつつある国内事例も増えつつある
2011/7/28 16Nikkei Business Publications All Rights Reserved. 2011
実装が増えている(実装が増えている(22))
Hortonworks Hortonworks YahooYahooからスピンアウト。からスピンアウト。Apache HadoopApache Hadoopを開発を開発
次世代次世代HadoopHadoop
MapR TechnologiesMapR Technologies クローズドなソフト。単一障害点をなくす。クローズドなソフト。単一障害点をなくす。
MapReduceMapReduceを独自に実装、を独自に実装、HDFSHDFSを書き直しを書き直し
米米EMCEMCと提携、と提携、GreenplumGreenplumと連携と連携
米米MicrosoftMicrosoftの「の「DryadDryad」」
2011/7/28 17Nikkei Business Publications All Rights Reserved. 2011
KVSKVSとはとは
キーと値のペアで読み書きするデータベースキーと値のペアで読み書きするデータベース
スケーラビリティー、耐障害性が高いスケーラビリティー、耐障害性が高い
NoSQLNoSQL((SQLSQLを使わない)と総称されることがを使わない)と総称されることが
多い多い
用途に合ったソフトを選ぶ必要がある用途に合ったソフトを選ぶ必要がある
2011/7/28 18Nikkei Business Publications All Rights Reserved. 2011
KVSKVSの分類の分類
揮発性 キャッシュとして高速化揮発性 キャッシュとして高速化 memcachedmemcached
miximixiなど広く利用されているなど広く利用されている
不揮発性不揮発性 CassandraCassandra HBaseHBase MongoDBMongoDB
2011/7/28 19Nikkei Business Publications All Rights Reserved. 2011
狭義と広義狭義と広義
2011/7/28 20Nikkei Business Publications All Rights Reserved. 2011
CAPCAP定理で分類定理で分類
C(一貫性)
A(可用性)
P(分割耐性)
CA:RDBMS
AP:Cassandra
CP:Hbase、MongoDB
2011/7/28 21Nikkei Business Publications All Rights Reserved. 2011
CassandraCassandraとは(とは(11))
米米FacebookFacebookが開発、現在はが開発、現在はApacheApacheののOSSOSS データの一貫性よりも、可用性を重視データの一貫性よりも、可用性を重視
特に書き込みが速い特に書き込みが速い
単一障害点がない単一障害点がない
TwitterTwitter、、RackspaceRackspaceなどが利用などが利用
FacebookFacebookは・・・ もう使っていませんは・・・ もう使っていません
2011/7/28 22Nikkei Business Publications All Rights Reserved. 2011
CassandraCassandraとは(とは(22))
米米AmazonAmazonの「の「DynamoDynamo」がベース」がベース
書いたデータをすぐに読み出すと、読めないこと書いたデータをすぐに読み出すと、読めないこともある・・・もある・・・
ショッピングバスケットの例ショッピングバスケットの例
バスケットに入れたデータがマレに間違うことよりも、バスケットに入れたデータがマレに間違うことよりも、何秒も画面が表示されないことの方が問題何秒も画面が表示されないことの方が問題
売り上げランキングなどなら売り上げランキングなどならOKOK
一貫性の高さはアプリケーションで選択一貫性の高さはアプリケーションで選択
2011/7/28 23Nikkei Business Publications All Rights Reserved. 2011
CassandraCassandraの仕組みの仕組み日経SYSTEMS 2011/7号より
2011/7/28 24Nikkei Business Publications All Rights Reserved. 2011
HBaseHBaseとはとは
Google BigtableGoogle Bigtableのクローン、現在はのクローン、現在はApacheApacheののOSSOSS
可用性よりも一貫性を重視可用性よりも一貫性を重視 HadoopHadoopと相性がよい(と相性がよい(HDFSHDFSベース)ベース)
FacebookFacebookがが30003000ノード、ノード、4040ペタバイトで運用中ペタバイトで運用中
ユーザー間のメッセージ交換ユーザー間のメッセージ交換
サイトのアクセス分析などサイトのアクセス分析など HadoopHadoop++MySQLMySQLで最大で最大2424時間時間 →→ 3030秒に秒に
2011/7/28 25Nikkei Business Publications All Rights Reserved. 2011
データの一貫性を維持データの一貫性を維持
2011/7/28 26Nikkei Business Publications All Rights Reserved. 2011
MongoDBMongoDB
スキーマレスでデータを格納スキーマレスでデータを格納
SQLSQLライクに検索できる(ライクに検索できる(JoinJoinはない)はない)
数十~数百台で分散可能数十~数百台で分散可能
自動シャーディング自動シャーディング
““汚いデータ汚いデータ””の前処理などに有効の前処理などに有効
ログ分析などログ分析など
2011/7/28 27Nikkei Business Publications All Rights Reserved. 2011
少し宣伝を少し宣伝を
みてわかるクラウドマガジンみてわかるクラウドマガジンvol.3 vol.3
Hadoop、Pig、Asakusa、Cassandra、Hbase、MongoDBなどを楽しく
触りながら学べます
2011/7/28 28Nikkei Business Publications All Rights Reserved. 2011
ご静聴ありがとうございましたご静聴ありがとうございました