More Related Content
Similar to Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料) (20)
More from NTT DATA OSS Professional Services (20)
Hadoopエコシステムの最新動向とNTTデータの取り組み (OSC 2016 Tokyo/Spring 講演資料)
- 1. Copyright © 2016 NTT DATA Corporation
○○○○年○○月○○日
株式会社NTTデータ
○○ ○○ ○○ ○○
タイトルを1~2行で入力
(長文の場合はフォントサイズを縮小)
NTTデータ 基盤システム事業本部
OSSプロフェッショナルサービス
山下 真一
Hadoopエコシステムの最新技術動向と
NTTデータの取り組み
2016/02/27 OSC 2016 Tokyo/Spring
- 2. 2Copyright © 2016 NTT DATA Corporation
自己紹介 : 山下 真一 (やました しんいち)
所属 : NTTデータ 基盤システム事業本部
OSSプロフェッショナルサービス
Hadoop/SparkなどOSS分散処理関連の導入支援、サポート
コミュニティ活動も実施
Apache Hive コントリビュータ
Apache Hadoop コントリビュータ
Apache Pig コントリビュータ
書籍やWeb記事も執筆
- 3. 3Copyright © 2016 NTT DATA Corporation
アジェンダ
Hadoop概要
HDFS
MapReduce
YARN
Hadoopエコシステムの最新動向
NTTデータの取り組み
- 5. 5Copyright © 2016 NTT DATA Corporation
Hadoopとは?
オープンソースの大規模分散処理フレームワーク
• Googleの基盤ソフトウェアのオープンソース版クローン (GFS, MapReduce)
• Apacheプロジェクト (http://hadoop.apache.org/)
Doug Cutting 氏が Java で開発
『扱うデータがビッグ(大容量・多件数)であるために、従来のITアーキ
テクチャでは難しかった、もしくは超高コストでしか実現できなかった
データ活用が可能となる』のもと2005年から開発開始
Dougさんのお子さんの
お気に入りだったぬいぐるみ
- 6. 6Copyright © 2016 NTT DATA Corporation
Hadoopの構成
集中管理型の分散システム
Hadoopマスタサーバ
Hadoopスレーブサーバ群
Hadoopクライアント
NameNode
DataNode
DataNode
DataNode
DataNode
Resource
Manager
Node
Manager
NodeManager
NodeManager
NodeManager
スレーブサーバは、
分散処理の実行や
データの実体を保存
データ管理や
分散処理ジョブの管理は
マスタサーバが実施
- 7. 7Copyright © 2016 NTT DATA Corporation
Hadoopの構成するコンポーネント
大きく2つのコンポーネントで構成
分散ファイルシステム
HDFS
分散リソース管理機構
YARN
データを
貯める機能を
提供
貯めたデータを
処理する機能を
提供
YARN上のアプリケーション
MapReduce など
- 8. 8Copyright © 2016 NTT DATA Corporation
Hadoopとは
集中管理型の分散システムで
HDFSとYARNの
2つのコンポーネントにより
MapReduceなど並列分散処理を実現
するミドルウェア
- 9. 9Copyright © 2016 NTT DATA Corporation
集中管理型の分散システムで
HDFSとYARNの
2つのコンポーネントにより
MapReduceなど並列分散処理を実現
するミドルウェア
とは?
- 10. 10Copyright © 2016 NTT DATA Corporation
HDFSとは
分散ファイルシステム
NameNode
DataNode
DataNode
DataNode
DataNode
DataNode
一つのファイルシステムを
構成
複数のサーバを束ねて、
- 11. 11Copyright © 2016 NTT DATA Corporation
HDFSの外からの見え方
外から見ると、1つの巨大なファイルシステム
NameNode
DataNode
DataNode
DataNode
DataNode
DataNode
Hadoopクライアント
hdfs dfs -put
HDFSへの
命令
- 12. 12Copyright © 2016 NTT DATA Corporation
HDFSの舞台裏
分散ファイルシステムの舞台裏では
NameNode
DataNode
DataNode
DataNode
DataNode
DataNode
Hadoopクライアント
入力ファイルは、
ブロックサイズで分割
される
※分割したものをブロックと呼ぶ
④
①
②
③
- 13. 13Copyright © 2016 NTT DATA Corporation
HDFSの舞台裏
分散ファイルシステムの舞台裏では
NameNode
DataNode
DataNode
DataNode
DataNode
DataNode
Hadoopクライアント
各ブロックは複製(レ
プリケーション)され、
スレーブサーバに格納
される
④
①
②
③
①
①
①
②
②
②
③
③
③
④
④
④
レプリカは異なる
3サーバに配置される
- 14. 14Copyright © 2016 NTT DATA Corporation
集中管理型の分散システムで
HDFSとYARNの
2つのコンポーネントにより
MapReduceなど並列分散処理を実
現するミドルウェア
とは?
- 15. 15Copyright © 2016 NTT DATA Corporation
MapReduceって?
MapReduceアルゴリズム
大量の件数のデータがあった時に、
複数ワーカーで 並列に処理できる仕組み
例として、選挙の開票作業を想定
•複数人で作業を分担して実施
•最初に、投票用紙を分けて、
みんなで並行して候補者別に用紙を仕分ける
•次に、候補者別の用紙を1カ所にまとめて、
それぞれの枚数を数える
- 16. 16Copyright © 2016 NTT DATA Corporation
MapReduce (アルゴリズム)
①用紙を適当に3つに分ける第1段階
第2段階
第3段階
a氏 e氏
③候補者ごとに
用紙を集める
d氏c氏b氏
Aさん Bさん Cさん
・・
・
・・
・
・・
・
a氏 b氏 e氏 a氏 b氏 e氏 a氏 b氏 e氏
②3人で並行して、
候補者ごとに用紙を
仕分ける
④3人で並行して、
候補者ごとに
枚数を数える
a氏の得
票数
b氏の得
票数
d氏の得
票数
e氏の得
票数
c氏の得
票数
投票
結果
Bさん CさんAさん
- 17. 17Copyright © 2016 NTT DATA Corporation
MapReduce (アルゴリズム)
Aさん Bさん Cさん
①用紙を適当に3つに分ける
・・
・
・・
・
・・
・
a氏 b氏 e氏 a氏 b氏 e氏 a氏 b氏 e氏
②3人で並行して、
候補者ごとに用紙を
仕分ける
第1段階
第2段階
第3段階
a氏 e氏
③候補者ごとに
用紙を集める
d氏c氏b氏
④3人で並行して、
候補者ごとに
枚数を数える
a氏の得
票数
b氏の得
票数
d氏の得
票数
e氏の得
票数
c氏の得
票数
投票
結果
Bさん CさんAさん
Map処理
データを分類・仕分け
Reduce処理
分類・仕分けされた
データごとに処理
- 18. 18Copyright © 2016 NTT DATA Corporation
MapReduce (アルゴリズム)
Aさん Bさん Cさん
①用紙を適当に3つに分ける
・・
・
・・
・
・・
・
a氏 b氏 e氏 a氏 b氏 e氏 a氏 b氏 e氏
②3人で並行して、
候補者ごとに用紙を
仕分ける
第1段階
第2段階
第3段階
a氏 e氏
③候補者ごとに
用紙を集める
d氏c氏b氏
④3人で並行して、
候補者ごとに
枚数を数える
a氏の得
票数
b氏の得
票数
d氏の得
票数
e氏の得
票数
c氏の得
票数
投票
結果
Bさん CさんAさん
M人でやれば M倍のスピード
(相互に影響を受けずに作業できる)
N人でやれば 約N倍のスピード
(相互に影響を受けずに作業できる)
- 19. 19Copyright © 2016 NTT DATA Corporation
MapReduceジョブ
Aさん Bさん Cさん
①用紙を適当に3つに分ける
・・
・
・・
・
・・
・
a氏 b氏 e氏 a氏 b氏 e氏 a氏 b氏 e氏
②3人で並行して、
投票者別に用紙を
仕分ける
第1段階
第2段階
第3段階
a氏 e氏
③投票者ごと
用紙を集める
d氏c氏b氏
④3人で並行して、
投票者ごとに
枚数を数える
a氏の得
票数
b氏の得
票数
d氏の得
票数
e氏の得
票数
c氏の得
票数
投票
結果
Bさん CさんAさん
Map処理
データを分類・仕分け
Reduce処理
分類・仕分けされた
データごとに処理
MapReduce
ジョブ
Map
タスク
Map
タスク
Map
タスク
Reduce
タスク
Reduce
タスク
Reduce
タスク
- 20. 20Copyright © 2016 NTT DATA Corporation
MapReduceジョブの見え方
MapReduce=YARN上のアプリケーションの1つ
TaskTracker
TaskTracker
TaskTracker
Hadoopクライアント
YARN
MapReduce
ジョブ
HDFS
MapReduceジョブhadoop jar サンプルジョブ.jar
M R
Map
タスク
Map
タスク
Map
タスク
Map
タスク
Reduce
タスク
Reduce
タスク
Reduce
タスク
Reduce
タスク
HDFSから読み込み
HDFSに書き込み
- 21. 21Copyright © 2016 NTT DATA Corporation
集中管理型の分散システムで
HDFSとYARNの
2つのコンポーネントにより
MapReduceなど並列分散処理を実現
するミドルウェア
とは?
- 22. 22Copyright © 2016 NTT DATA Corporation
YARN
YARN = Yet Another Resource Negotiator
分散処理のリソースを制御する仕組み
柔軟なリソース制御による
スループット向上
Hadoopのスケーラビリティを
さらに向上させる
MapReduce以外の分散処理を実行できる
- 23. 23Copyright © 2016 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
余裕あります。 忙しいです。
YARN
ResourceManagerには余力(≒リソース)を通知
- 24. 24Copyright © 2016 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
YARN
アプリAお願いします。クライアント
YARNでは
ジョブ× → アプリケーション○
- 25. 25Copyright © 2016 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
アプリAの取りまとめお願いします。
リソースが必要であれば連絡ください。
アプリケーション
YARN
仕事(アプリケーション)の管理はメンバに依頼
取りまとめ役(ApplicationMaster)になる
- 26. 26Copyright © 2016 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
アプリAの取りまとめお願いします。
リソースが必要であれば連絡ください。
アプリケーション
YARN
任命されたApplicationMasterは
ResourceManagerにリソースの要求が可能
Application Master
- 27. 27Copyright © 2016 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
了解です。
○○だけリソースお願いします。
YARN
- 28. 28Copyright © 2016 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
○割の仕事は
Bさんの指示に従ってください。
YARN
- 29. 29Copyright © 2016 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
タスクAは進捗50%です。
タスクBは進捗20%です。
YARN
タスク毎の進捗状況はApplicationMasterが管理
- 30. 30Copyright © 2016 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
YARN
ApplicationMasterはアプリケーションの進捗状況をRMに通知
アプリAの進捗70%です
- 31. 31Copyright © 2016 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
マスターサーバの管理コストが減り、
多数のメンバを管理できる(スケーラビリティ向上)
アプリAの進捗70%です
アプリBの進捗30%です
YARN
10000ノード程度のクラスタも構成可能に!
- 32. 32Copyright © 2016 NTT DATA Corporation
Hadoopの特徴
HDFS
大量データを高スループットに読み込める
サーバが故障しても、データの安全性は担保
サーバ数を増やせば、格納できるデータ量はスケールする
YARN
リソースベースで処理を割り当て、高スループットを実現
サーバが故障しても、タスクが再実行され、ジョブは成功
サーバ数を増やせば、処理性能は基本スケールする
Hadoop MapReduce
Mapタスク、Reduceタスクのみ指定すれば、
あとはYARNで並列分散処理を実現
- 34. 34Copyright © 2016 NTT DATA Corporation
11年目・2016年のHadoop
2.7.0
2005
0.1.0
2006
開発開始 11年目
trunk
大容量・多件数データのバッチ処理高速化
MapReduceに拘らない処理
新たなステージ
MapReduce V1
MapReduce V2
YARN
20142010 2011 201320122009
branch-2
2.2.0 (GA)
2.3.0
2.4.02.0.0-alpha
2.1.0-beta
branch-1
(branch-0.20)
1.0.0 1.1.0 1.2.10.20.1 0.20.205
0.22.0
0.21.0
New append
Security
0.23.0
0.23.11(final)
NameNode Federation,
NameNode HA
2015
2.5.0
2.6.0
2016
2.7.2
2.6.4
- 35. 35Copyright © 2016 NTT DATA Corporation
11年目・2016年のHadoop
大容量・多件数データのバッチ処理基盤 → 仕組・手法ともに成熟
様々な関連ソフトウェア、ソフトウェア、ツールの充実
高可用性、セキュリティ等Hadoop自身で対応
自社運用環境だけでなく、クラウド型サービスも活発
MapReduceに拘らない処理 → ベースは完成、成長著しい
非MapReduce処理エンジンは成長中
処理基盤の運用のための仕組みは、基本的なものは整備済
新たなステージ → 群雄割拠
SQL on Hadoop は、次から次へと新たなプロダクトが登場
Hadoopエコシステムの更なる拡大
Apache Sparkエコシステムの方向性
- 36. 36Copyright © 2016 NTT DATA Corporation
代表的なHadoopエコシステム&関連プロダクト
HDFS
YARN
MRv2
分散処理
フレームワーク
HDFSを活用
Apache Spark
メモリベースでの
分散処理エンジン
Apache Hive
SQLライクな言語
Apache Pig
DSL言語
Apache HBase
カラム型
データベース
Apache Impala
分散クエリエンジン
Hue
Webベースの
インタフェース
Hadoop用
高級言語
分散処理
エンジン
運用管理
Apache Sqoop
データベース
連携
Apache Tez
YARNに特化した
分散処理エンジン
Apache Ambari
Hadoopクラスタの
運用管理
Apache Kafka
メッセージング
システム
Apache ZooKeeper
分散ロック機構
- 37. 37Copyright © 2016 NTT DATA Corporation
新たな並列分散処理エンジンの出現
MapReduceで実現が難しいデータ処理の課題に対
して、新たな分散処理フレームワーク・実行エンジン
が出現。
分散処理エンジン
分散ストリーム処理
SQLライクなインターフェース
+ 実行エンジン
分散処理エンジン
- 38. 38Copyright © 2016 NTT DATA Corporation
Apache Spark : コアを中心に成り立つライブラリ
Apache Spark(コア)
Spark SQL
Spark
Streaming
MLlib GraphX
SQLで書ける ストリーム処理できる 機械学習できる
統計処理できる
グラフ処理できる
Scala、Java、Pythonで分散処理を書ける
メモリを活用したアーキテクチャ、インタラクティブにも処理を記述できる仕組み、便利なライブ
ラリなど、分析担当者に嬉しい機能が多い。
Apache Spark : 大規模データの分散処理をオンメモリで実現
• データ処理を極力メモリ上で実現するため、高速な処理を実現
• Hadoop MapReduceが不得意な繰り返し処理に威力を発揮
• 機械学習やHadoop MapReduceよりも短時間で処理したいものが得意領域
- 39. 39Copyright © 2016 NTT DATA Corporation
Spark最新動向
フロントエンドとバックエンドの進化
フロントエンド : DataFrame API
• より簡潔にSparkの処理を定義
• オプティマイザにより処理を高速化
バックエンド : Project Tungsten
• Sparkを利用環境ではCPUがボトルネックになるケースが多い
• CPUの利用効率を高める工夫
–メモリ管理機構の改善
–HWキャッシュの活用
–コードの動的生成による無駄な処理の排除
- 40. 40Copyright © 2016 NTT DATA Corporation
Hive 2.0 : 新たな時代のHive
Apache Hive 2.0 : 2016年2月リリース
機能・運用面・性能面の強化
CLI として Beelineが標準に
SQL Standard Authorization
HiveServer2機能強化、メモリリークの改善
CBO(コストベース最適化)の改善
LLAP (※ ベータ)
実行エンジンとしてMapReduceは非推奨に!
- 41. 41Copyright © 2016 NTT DATA Corporation
Hive 2.0 : HiveServer2のWeb画面
実行されたHiveQLの情報の詳細をWeb画面で確認可能に!
実行時間や実行計画、メトリクス
実行された
クエリの情報
実行された
クエリの実行
計画
- 42. 42Copyright © 2016 NTT DATA Corporation
Hive 2.0 : LLAP
秒未満のクエリ実行時間を実現するための仕組み
YARN上に処理ノードを立ち上げ続け、クエリを実行
Hiveクエリ実行の課題であったプロセス起動を削減、高速化を目
指す
YARN
LLAP
Daemon
LLAP
Daemon
LLAP
Daemon
LLAP
Daemon
処理の制御
処理用
コンテナ
処理用
コンテナ
処理用
コンテナ
処理用
コンテナ
処理用
コンテナ
データの
キャッシュ
YARN上のデーモンとして動作
HiveQL
※ベータ
- 44. 44Copyright © 2016 NTT DATA Corporation
Apache Hadoop PMC就任
http://www.nttdata.com/jp/ja/news/information/2016/2016020401.html
- 45. 45Copyright © 2016 NTT DATA Corporation
その他公開資料は。。。
http://www.slideshare.net/hadoopxnttdata
- 46. 46Copyright © 2016 NTT DATA Corporation
まとめ
Hadoopは1台のマシンで扱えない規模の大量データを高速に処理する
ためのフレームワークです
数台から始めて、数千台(データ量にして数十PB)までスケールアウトします
Hadoopエコシステムの開発の勢いは今も活発です
性能面、運用面で便利な機能がどんどん追加されています
より低レイテンシな分散処理フレームワークや分析のためのライブラリも充実し、
大量データ活用の可能性を広げています
NTTデータも、Hadoopの開発に参画しています
バグフィックスや、運用を便利にするための機能開発に取り組んでいます
国内初のコミッタ輩出!さらなる開発力の向上を目指しています
HadoopだけでなくHadoopエコシステム全般で更に貢献していきます
- 47. Copyright © 2011 NTT DATA Corporation
Copyright © 2016 NTT DATA Corporation
お問い合わせ先:
株式会社NTTデータ 基盤システム事業本部
OSSプロフェッショナルサービス
URL: http://oss.nttdata.co.jp/hadoop
メール: hadoop@kits.nttdata.co.jp TEL: 050-5546-2496