hadoop - osc2013 .enterprise

27
Apache Hadoop現状、これから Hadoopユーザー会 山下 真一

Upload: shinichi-yamashita

Post on 05-Dec-2014

1.440 views

Category:

Documents


6 download

DESCRIPTION

12/13に開催されたOSC 2013 .Enterpriseで発表したHadoopに関するスライドです。

TRANSCRIPT

Page 1: Hadoop - OSC2013 .Enterprise

Apache Hadoopの現状、これから

Hadoopユーザー会山下 真一

Page 2: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 2

自己紹介

• 山下 真一 (@_sinchii_)

• 日々進化するHadoopと格闘中

• Hadoop Advent Calendar やります : 12/21 予定

• http://qiita.com/advent-calendar/2013/hadoop • 12/1 から開催中!

Page 3: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 3

Hadoopユーザー会

• Hadoopユーザーの集い場です!

• http://hugjp.org/index.php

• 不定期ですが、イベントも開催しています!• ソースコードリーディング : 次回は12/20 (金)• Advent Calendar などなど

• 年一回ユーザーカンファレンスも開催しています!• 前回は、今年1月@東京ビッグサイト 次回は来年?

Page 4: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 4

本日の発表内容

• Hadoopのおさらい

• Hadoopの歩み

• Hadoop最新動向

• Hadoopのこれから

Page 5: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 5

おさらい : Hadoopとは

HDFS分散ファイルシステム

MapReduceフレームワークGoogle MapReduce

論文 (2004)

Google File System論文 (2003)

集計 抽出 加工 分析主な利用用途

OS / Java

数十分~数日のバッチ処理を数分~短時間で処理

色々なデータを分散して保存データは複数の複製を保持

容易に入手できるコモディティなサーバを利用

処理異常時は再試行

Page 6: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 6

MapReduceの仕組み

<A, 10>

<A, 25>

<C, 15><B, 20>

Map

Map

Map

Reduce

Reduce

Shuffle(同じKeyでデータを集約)

<D, 5>

<D, 10>

<B, 10><C, 5>

<A, {10,25} >

<C, 10>

<C, {10,5,15} >

<B, {20,10} ><D, {5,10} >

<A, 35 ><C, 30 >

<B, 30 ><D, 15 >

スコアの抽出

何らかの処理

スコア一覧

・<Key, Value>の形でデータを管理

・MapやReduceが分散処理の対象

Page 7: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 7

Hadoopの仕組み

クライアント

DataNode(s)

TaskTracker(s)

・・・

・・・

・・・

・・・

・・・

・・・

JobTrackerJobClient

DFSClient

マスターサーバ

ファイル

ファイルをブロックに分割配置を指示

ラックを意識したブロック配置を実施

M M MR R R

タスク

M

M

R

入出力データはHDFSと連携

データローカリティを意識した割り当て

ジョブ情報 タスク分割

NameNode

Page 8: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 8

本日の発表内容

• Hadoopのおさらい

• Hadoopの歩み

• Hadoop最新動向

• Hadoopのこれから

Page 9: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 9

Hadoopのヒストリー

2003 2004 2006 2013

The Google File System論文の公開

MapReduce論文の公開

2005

プロトタイプ作成

2011

1.0リリース

2系安定版リリース

0.20リリース

2009

Pig

Hive

HBase

Impala

Spark

CDH HDP

EMR

HA

YARN

NFS

API

Sqoop

Flume

Oozie Ambari

Page 10: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 10

Hadoopエコシステム

HDFS分散ファイルシステム

MapReduceフレームワーク

Hive(SQL style)

Pig(DSL)

Impala(低レイテインシ)

HBase(カラム指向型ストア)

Spark(インメモリ)

Flume(データ投入)

Sqoop(DB連携)

Oozie(ジョブフロー)

Ambari(クラスタ管理)

ZooKeeper(分散ロック)

Mahout(機械学習)

Page 11: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 11

本日の発表内容

• Hadoopのおさらい

• Hadoopの歩み

• Hadoop最新動向

• Hadoopのこれから

Page 12: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 12

YARN : Yet Another Resource Negotiator

• Hadoop 1.0 系 MapReduce基盤の問題

• JobTrackerへの負荷集中• 多数のリクエストを処理するためネックとなりやすい

• TaskTrackerでリソースを予約して動作• スロット数は固定して利用するためリソースを十分活用でき

ない

MapReduceジョブ制御(タスクアサイン)

TaskTracker管理(ハートビート)

Mapスロット Reduceスロット

Page 13: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 13

YARN : Yet Another Resource Negotiator

• JobTrackerのリソース管理とジョブ管理を分離

• ResourceManager : リソース管理• スレーブノード(NodeManager)管理

• ApplicationMaster : アプリケーション• MapReduceジョブは、ApplicationMasterが制御

• 処理はコンテナ(Container)が実行

• NodeManager : スレーブノード• リソース使用状況(CPU・メモリ)を確認

Page 14: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 14

YARNを構成するノード

ResourceManager

NodeManager

NodeManager

NodeManager

ApplicationMaster

NodeManager

Container

Container

ハートビートCPU・メモリ利用状況

AM割り当て&管理

MapReduceジョブ管理タスク割り当て Map(Reduce)タスク

JobHistoryServer

(ジョブ履歴)

Page 15: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 15

YARNの特徴

• スレーブノードのリソースを十分に利用する仕組み

• MapReduce APIの互換性

• Hadoop 1.0系のMapReduceジョブも実行可能

• 様々なApplicationMasterが動作可能

• MapReduceジョブ以外のアプリケーションも実行可能

Page 16: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 16

YARN上で動作するアプリケーション

• MapReduce• Apache Spark : インメモリ処理エンジン

• Apache Storm : ストリーミング処理

• Apache Giraph : グラフ処理

• Apache Tez : Hive/Pig実行エンジン

• HOYA (Apache HBase) : カラム指向型ストア

• Impala : 低レイテンシ処理

などなど

Page 17: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 17

YARNもstableとなったものの...

• 2013年12月12日時点では...あと一歩な印象

• YARN HA の実装

• ResourceManager• ApplicationMaster

• スケジューラ• CapacityScheduler• FairScheduler

• 長時間動作するApplicationMaster対応

Page 18: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 18

HDFS 2.0

• NameNode HA• HDFS Snapshot• HDFS Cache• NFS• (HDFS Federation)

Page 19: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 19

NameNode HA

• ホットスタンバイ構成

• ZooKeeperを利用して死活監視

• QJMによりトランザクションログ(edits)管理

NameNode(active)

NameNode(standby)

JournalNode JournalNode JournalNode

トランザクション情報 edits

fsimage

ZKFC ZKFC

ZooKeeperロック情報 ロック監視

ロック消滅時にフェールオーバー実施

Page 20: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 20

HDFS Snapshot

• ユーザ単位でのスナップショット

/user

hoge fuga

file1 file2dir1

file3 file4

file5

管理者によってスナップショット可能な

ディレクトリを設定65535世代保存可能

Read-Only

Page 21: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 21

HDFS Snapshot

• スナップショットのコマンド• 作成 : hdfs dfs -createSnapshot• 削除 : hdfs dfs -deleteSnapshot• リネーム : hdfs dfs -renameSnapshot• 比較 : hdfs snapshotDiff

• スナップショットの確認• hdfs dfs -ls <対象ディレクトリ>/.snapshot/

Page 22: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 22

その他

• Apache Pig : 0.12.0• ASSERT 文、IN CASE文、

• AvroStorageをサポート

• (HCatalogによるHiveメタ情報の連携)

• Apache Hive : 0.12.0• Date型対応

• Parallel ORDER BY• クエリ最適化

Page 23: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 23

その他

• Java 7 対応

• Windows 上での Hadoop環境

• ログ周りの改善• auditログ

• メッセージレベルの見直し• 無駄なstacktrace出力の抑制

Page 24: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 24

本日の発表内容

• Hadoopのおさらい

• Hadoopの歩み

• Hadoop最新動向

• Hadoopのこれから

Page 25: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 25

Hadoop Trunk状況

• Hadoop 2系(2.2がcurrent)• 2.3

• バグフィックス? • 2.2.1 を2.3として扱うかも?

• 2.4• YARN HA (RM Fail Over via ZKFC) ?• Application History Server• Long-running applications

• HDFS Trace ? HDFS Symlink ? ヘテロなストレージ ?

• Hadoop 1系 … 果たして今後リリースはあるのか?

Page 26: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 26

Hadoopエコシステムの拡大

• Apache Sentry• ロールベースのHadoopクラスタ認証

• Apache Tez• YARN上でPig / Hive をより適切な実行計画での動作

• Stinger • Hiveのクエリを100倍高速にするとか...

• Openstackとの連携

• Savannaプロジェクト

Page 27: Hadoop - OSC2013 .Enterprise

OSC .Enterprise 2013 27

まとめ

• Hadoop 2系

• HDFS : 必要な仕組みは一通りそろった

• YARN : まだまだ発展途上

• エコシステムの膨張• 次々と新しいものは出てくる印象• これまで利用してきたもの(Hive/Pig ...)もより充実

• 従来の仕組み(HDFS+MR)はほぼ完成

• HDFSを土台とした新たな仕組みに期待!