Mais conteúdo relacionado
Semelhante a 分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講演資料) (20)
Mais de NTT DATA OSS Professional Services (20)
分散処理基盤Apache Hadoop入門とHadoopエコシステムの最新技術動向 (オープンソースカンファレンス 2015 Tokyo/Spring 講演資料)
- 1. 1Copyright © 2015 NTT DATA Corporation
(株) NTTデータ 基盤システム事業本部
吉田 耕陽
2015/2/28 OSC 2015 Tokyo/Spring
分散処理基盤Apache Hadoop入門と
Hadoopエコシステムの最新技術動向
- 2. 2Copyright © 2015 NTT DATA Corporation
所属/氏名
基盤システム事業本部 OSSプロフェッショナルサービス
吉田 耕陽(よしだ こうよう)
お仕事
徹底的に検証・評価したOSSの組み合わせ、設定・運用のノウハウの提供
高品質なシステム基盤を実現する仕組みの整備
最近は、
の案件適用やPoC等を中心に活動。
担当には「Hadoop徹底入門」、「HADOOP HACKS」 の著者が複数在籍
自己紹介
- 3. 3Copyright © 2015 NTT DATA Corporation
Hadoop概要 ~これまでのHadoop~
Hadoopの最新動向
NTTデータのHadoopコミュニティに対する
取り組み
アジェンダ
- 5. 5Copyright © 2015 NTT DATA Corporation
Hadoopとは?
オープンソースの大規模分散処理フレームワーク
• Googleの基盤ソフトウェアのオープンソース版クローン (GFS, MapReduce)
• Apacheプロジェクト (http://hadoop.apache.org/)
Yahoo Research の Doug Cutting 氏(現 Cloudera社)が Java で開発
『扱うデータがビッグ(大容量・多件数)であるために、従来のITアーキ
テクチャでは難しかった、もしくは超高コストでしか実現できなかった
データ活用が可能となる』
Dougさんのお子さんの
お気に入りだったぬいぐるみ
- 6. 6Copyright © 2015 NTT DATA Corporation
集中管理型の分散システム
Hadoopの構成
Hadoopマスタサーバ
Hadoopスレーブサーバ群
Hadoopクライアント
NameNode
DataNode
DataNode
DataNode
DataNode
JobTracker
TaskTracker
TaskTracker
TaskTracker
TaskTracker
スレーブサーバは、
分散処理の実行や
データの実体を保存
データ管理や
分散処理ジョブの管理は
マスタサーバが実施
- 7. 7Copyright © 2015 NTT DATA Corporation
大きく2つのコンポーネントで構成
分散ファイルシステム
HDFS
並列分散処理フレームワーク
MapReduceフレームワーク
Hadoopの構成するコンポーネント
データを
貯める機能を
提供
貯めたデータを
処理する機能を
提供
- 8. 8Copyright © 2015 NTT DATA Corporation
Hadoopとは
集中管理型の分散システムで
HDFSとMapReduceフレームワークの
2つのコンポーネントにより
並列分散処理を実現するミドルウェア
- 9. 9Copyright © 2015 NTT DATA Corporation
分散ファイルシステム
HDFSとは
NameNode
DataNode
DataNode
DataNode
DataNode
DataNode
一つのファイルシステムを
構成
複数のサーバを束ねて、
- 10. 10Copyright © 2015 NTT DATA Corporation
外から見ると、1つの巨大なファイルシステム
HDFSの外からの見え方
NameNode
DataNode
DataNode
DataNode
DataNode
DataNode
Hadoopクライアント
hdfs dfs -put
HDFSへの
命令
- 11. 11Copyright © 2015 NTT DATA Corporation
外から見ると、1つの巨大なファイルシステム
HDFSの外からの見え方
NameNode
DataNode
DataNode
DataNode
DataNode
DataNode
Hadoopクライアント
hdfs dfs -ls
-rw-r--r-- 3 tester hadoop 129 2015-02-28 12:00 /user/tester/test.txt
所有者権限 作成日時
- 12. 12Copyright © 2015 NTT DATA Corporation
分散ファイルシステムの舞台裏では
HDFSの舞台裏
NameNode
DataNode
DataNode
DataNode
DataNode
DataNode
Hadoopクライアント
入力ファイルは、
ブロックサイズで分割
される
※分割したものをブロックと呼ぶ
④
①
②
③
- 13. 13Copyright © 2015 NTT DATA Corporation
分散ファイルシステムの舞台裏では
HDFSの舞台裏
NameNode
DataNode
DataNode
DataNode
DataNode
DataNode
Hadoopクライアント
各ブロックは複製(レ
プリケーション)され、
スレーブサーバに格納
される
④
①
②
③
①
①
①
②
②
②
③
③
③
④
④
④
レプリカは異なる
3サーバに配置される
- 14. 14Copyright © 2015 NTT DATA Corporation
MapReduceアルゴリズム
大量の件数のデータがあった時に、
複数ワーカーで 並列に処理できる仕組み
例として、選挙の開票作業を想定
- 複数人で作業を分担して実施
- 最初に、投票用紙を分けて、
みんなで並行して候補者別に用紙を仕分ける
- 次に、候補者別の用紙を1カ所にまとめて、
それぞれの枚数を数える
MapReduceって?
- 15. 15Copyright © 2015 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さん
- 16. 16Copyright © 2015 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処理
分類・仕分けされた
データごとに処理
- 17. 17Copyright © 2015 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倍のスピード
(相互に影響を受けずに作業できる)
- 18. 18Copyright © 2015 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
タスク
- 19. 19Copyright © 2015 NTT DATA Corporation
MapReduceジョブを実行するフレームワーク
MapReduceフレームワークの外からの見え方
JobTracker
TaskTracker
TaskTracker
TaskTracker
Hadoopクライアント
MapReduce
ジョブ
HDFS
MapReduceジョブhadoop jar サンプルジョブ.jar
M R
Map
タスク
Map
タスク
Map
タスク
Map
タスク
Reduce
タスク
Reduce
タスク
Reduce
タスク
Reduce
タスク
HDFSから読み込み
HDFSに書き込み
- 20. 20Copyright © 2015 NTT DATA Corporation
HDFS
大量データを高スループットに読み込める
サーバが故障しても、データの安全性は担保
サーバ数を増やせば、格納できるデータ量はスケールする
MapReduceフレームワーク
Mapタスク、Reduceタスクのみ指定すれば、
(原則はJavaで処理を記述)
あとはフレームワークが並列分散処理を実現
サーバが故障しても、タスクが再実行され、ジョブは成功
サーバ数を増やせば、処理性能は基本スケールする
Hadoopの特徴
- 21. 21Copyright © 2015 NTT DATA Corporation
HDFS
大量データを高スループットに読み込める
サーバが故障しても、データの安全性は担保
サーバ数を増やせば、格納データ量はスケールする
MapReduce
Mapタスク、Reduceタスクのみ指定すれば、
(原則はJavaで処理を記述)
あとはフレームワークが並列分散処理を実現
サーバが故障しても、タスクが再実行され、ジョブは成功
サーバ数を増やせば、処理性能は基本スケールする
Hadoopの特徴
並列分散処理の
面倒な部分を
解決してくれる
ミドルウェア
- 22. 22Copyright © 2015 NTT DATA Corporation
Hadoopの適用領域
秒
分
時間
日
処
理
の
レ
イ
テ
ン
シ
バッチ処理
リアルタイム処理
データサイズ少ない 多い
オンライン処理
汎用検索
GB(ギガバイト) TB(テラバイト) PB(ペタバイト)
TB(テラバイト)
オンバッチ処理
純バッチ処理
RDBMSの適用領域
Hadoopの適用領域
バッチ処理の高速化
全件データ
(Big Data) 処理
- 23. 23Copyright © 2015 NTT DATA Corporation
Hadoopは「貯める」「処理する」機能に特化。Hadoop
を活用した大量データ分析を実現するため、様々な
周辺ツールが出現。エコシステムが広がった。
エコシステムを形成
- 24. 24Copyright © 2015 NTT DATA Corporation
MapReduceフレームワークを直接Javaで記述すると、
コード行数が増えることは避け難く、アプリケーション
の生産性が課題となる。
分散処理を記述するためのAPIは提供されているが、
適切なプログラムの記述のためにはアプリ実装者が覚
えることが多いのも事実…
エコシステム ~アプリ記述の抽象化・ライブラリ化~
Map?
Reduce?
Partitioner??
Combiner??
- 25. 25Copyright © 2015 NTT DATA Corporation
Apache Hive
HiveQLというSQLライクな言語でMapReduceを実行
Apache Pig
Pig Latinという独自の言語でMapReduceを実行
Apache Mahout
機械学習アルゴリズムのMapReduce実装のライブラリ
エコシステム ~アプリ記述の抽象化・ライブラリ化~
hive> SELECT COUNT(uid) FROM access_log GROUP BY date;
A = LOAD 'data' USING PigStorage() AS (f1:int, f2:int, f3:int);
B = GROUP A BY f1;
(省略)
$ mahout kmeans --input inputfile --output outputfile
- 26. 26Copyright © 2015 NTT DATA Corporation
HDFS HDFSHDFS
よくある疑問
MapReduceフレームワークの縛りは厳しそうだけど、
SQLのような複雑な処理を実現できるの?
YES!MapReduceを複数段組み合わせることで、
様々な処理が実現できる
M R
M R
M RM
GROUP BY + 集約関数
JOIN(結合処理)
SELECT(射影)やWHERE(選択)
HDFS
JOIN(結合処理)
- 27. 27Copyright © 2015 NTT DATA Corporation
分析対象のデータをHDFSに格納することも課題とな
る
既存のRDBMSに格納したデータを移動して利用したい
Webアクセスログやシステムログなど、多数のサーバで
発生するログを効率よく収集したい
エコシステム ~データ連携~
処理毎に使い捨てスクリプトを書く?
エラーハンドリングや耐障害性など担保
すべきことも多い…
- 28. 28Copyright © 2015 NTT DATA Corporation
Apache Sqoop
RDBMS-Hadoop間のデータ連携ツール
Apache Flume
ログ収集のための分散フレームワーク
エコシステム ~データ連携~
MapReduce
Sqoop
RDBMS
HDFS
import
export
内部的にはMapReduceが動
作。並列でRDBとテーブルの
情報をやりとりする。
HDFS
ログ
ログ
ログ
- 29. 29Copyright © 2015 NTT DATA Corporation
Hadoopコア部分に加えてエコシステムが充実するこ
とで、データの収集や分析など、「大量データ活用」を
身近なものにした。
エコシステムの浸透
HDFS
MapReduce
PigHive Mahout
HBase
SqoopRDBMS
外部システム
Flume
- 31. 31Copyright © 2015 NTT DATA Corporation
Hadoopとエコシステムはユーザーとともに進化を遂
げた。活用事例の増加や取り巻く環境の変化から、
新たな潮流が生まれる…
Hadoopと周辺環境の変化
•一部のユーザは数千台クラスのHadoopクラスタを構築・利用クラスタ”超”巨大化
•企業の利用拡大に伴い、Hadoopにアクセスしてデータ分析をする
利用者が増えたアクセスユーザ増加
•大量データ活用が一般的になるにつれて、「速報値を知りたい」
「もっとインタラクティブに分析したい」といった要求が生まれるデータ処理高速化の追求
•Hadoop黎明期はサーバあたりのメモリ4~8Gが一般的だったが、
現在は100GB以上のメモリを積んだサーバも普及。ハードウェアの進化
主な”変化”の例
- 32. 32Copyright © 2015 NTT DATA Corporation
近年のHadoopおよびエコシステムについて、
以下の3点について最新動向を紹介
近年のHadoopの潮流
クラスタ”超”巨大化
アクセスユーザ増加
データ処理高速化の追求
ハードウェアの進化
1.YARN登場
2.新たな並列分散処理エンジンの出現
3.非機能面の強化
- 33. 33Copyright © 2015 NTT DATA Corporation
YARNの前に:Hadoop1系、Hadoop2系について
Hadoop1系は2007年から開発が始まり、安定化志向。2014年6月に開発は凍結。
Hadoop2系は2012年に分岐。根本のアーキテクチャに変更を入れ、現在も進化を続けている。
20142010 2011 201320122009
branch-2
2.2.0
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.1(stable)0.20.1 0.20.205
0.22.0
0.21.0
New append
Security
0.23.0
0.23.11(final)
NameNode Federation, YARN
NameNode HA
2015
2.5.0
2.6.0
これまでお伝えした範囲
これからお伝えする範囲
- 34. 34Copyright © 2015 NTT DATA Corporation
YARN = Yet Another Resource Negotiator
YARN登場
分散ファイルシステム
HDFS
バッチ処理
MapReduce
Hadoop 1
分散ファイルシステム
HDFS
バッチ処理
MapReduceV2
Hadoop 2
リソース制御
YARN
「蓄積+処理」の構成からリソース制御を切り出した
- 35. 35Copyright © 2015 NTT DATA Corporation
MRv1とMRv2との比較 (ノード構成)
JobHistoryServer
NodeManager
TaskTracker
タスクプロセスタスクプロセスタスクプロセス
Hadoop 1系 Hadoop 2系
HDFS HDFS
JobTracker
ResourceManager
TaskTracker
NodeManager
ジョブ履歴
管理
リソース
管理
タスクプロセス
MRv1
MRv2
YARN
リソース
管理
ジョブ・タス
ク管理
TimelineServer
コンテナ
Application Master
コンテナコンテナコンテナコンテナ タスクプロセス
- 36. 36Copyright © 2015 NTT DATA Corporation
YARNの意義
リソース制御を分離することで…
つまり何が嬉しいの?
柔軟なリソース制御による
スループット向上
Hadoopのスケーラビリティを
さらに向上させる
MapReduce以外の分散処理を実行する
- 37. 37Copyright © 2015 NTT DATA Corporation
マスターサーバの負荷軽減
TaskTracker
ジョブ/アプリケーション管理のイメージ
JobTracker
TaskTracker TaskTracker TaskTracker TaskTracker
Hadoop1系
クライアント ジョブAお願いします。
- 38. 38Copyright © 2015 NTT DATA Corporation
マスターサーバの負荷軽減
TaskTracker
ジョブ/アプリケーション管理のイメージ
JobTracker
TaskTracker TaskTracker TaskTracker TaskTracker
Hadoop1系
クライアント
了解です。
Aさんは○○、Bさんは○○をお願いします。
定期的に進捗報告もお願いします。
- 39. 39Copyright © 2015 NTT DATA Corporation
マスターサーバの負荷軽減
TaskTracker
ジョブ/アプリケーション管理のイメージ
JobTracker
TaskTracker TaskTracker TaskTracker TaskTracker
ジョブAのタスク1、50%終わりました。
余裕あります。
ジョブAのタスク2、30%終わりました。
忙しいです。
ジョブ Hadoop1系
- 40. 40Copyright © 2015 NTT DATA Corporation
マスターサーバの負荷軽減
TaskTracker
ジョブ/アプリケーション管理のイメージ
JobTracker
TaskTracker TaskTracker TaskTracker TaskTracker
ジョブAのタスク02を50%終わりました。
ジョブCのタスク01を完了しました。
余裕あります。
ジョブAのタスクA30%終わりました。
ジョブBのタスクBを50%終わりました。
忙しいです。
ジョブ
マスターサーバの管理コストが多く、
メンバが増えるとボトルネックに…
Hadoop1系
3000~4000ノードで限界といわれている
- 41. 41Copyright © 2015 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
余裕あります。 忙しいです。
YARN
ResourceManagerには余力(≒リソース)を通知
- 42. 42Copyright © 2015 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
YARN
アプリAお願いします。クライアント
YARNでは
ジョブ× → アプリケーション○
- 43. 43Copyright © 2015 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
アプリAの取りまとめお願いします。
リソースが必要であれば連絡ください。
アプリケーション
YARN
仕事(アプリケーション)の管理はメンバに依頼
取りまとめ役(ApplicationMaster)になる
- 44. 44Copyright © 2015 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
アプリAの取りまとめお願いします。
リソースが必要であれば連絡ください。
アプリケーション
YARN
任命されたApplicationMasterは
ResourceManagerにリソースの要求が可能
Application Master
- 45. 45Copyright © 2015 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
了解です。
○○だけリソースお願いします。
YARN
- 46. 46Copyright © 2015 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
○割の仕事は
Bさんの指示に従ってください。
YARN
- 47. 47Copyright © 2015 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
タスクAは進捗50%です。
タスクBは進捗20%です。
YARN
タスク毎の進捗状況はApplicationMasterが管理
- 48. 48Copyright © 2015 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
YARN
ApplicationMasterはアプリケーションの進捗状況をRMに通知
アプリAの進捗70%です
- 49. 49Copyright © 2015 NTT DATA Corporation
マスターサーバの負荷軽減
NodeManager
ジョブ/アプリケーション管理のイメージ
Resource
Manager
NodeManager NodeManager NodeManager NodeManager
マスターサーバの管理コストが減り、
多数のメンバを管理できる(スケーラビリティ向上)
アプリAの進捗70%です
アプリBの進捗30%です
YARN
10000ノード程度のクラスタも構成可能に!
- 50. 50Copyright © 2015 NTT DATA Corporation
コンテナ単位でリソースを柔軟に払い出す
Hadoop 1系 Hadoop 2系
TaskTracker NodeManager
Map
タスク
Map
タスク
Map
タスク
Reduce
タスク
Reduce
タスク
Map
タスク
Map
タスク
Map
タスク
Reduce
タスク
Mapタスク、Reduceタスクの並列数は、
それぞれに設定したスロット数で制限される。
利用可能な仮想CPU、メモリを制限したコン
テナという単位でリソースを払いだす。
(Map、Reduceの区別は無い)
Mapスロット Reduceスロット コンテナ
単一サーバ上での並列実行数管理のイメージ
リソース
(VCPU / メモリ)
Application
Master
柔軟なリソース管理やリソースオーバーコミット防止は、
スループットの向上につながる
- 51. 51Copyright © 2015 NTT DATA Corporation
MapReduceは、ディスクIOを並列化することでスルー
プットを最大化するが、低レイテンシな処理は苦手。
新たな並列分散処理エンジンの出現
M RM R
Reduce処理
MapReduce
ジョブ ・・・
M
M R
M R M R
・・・
・・・
・・・
・・・
Map処理
・・・・・・
HDFS
HDFSHDFS
HDFS
ApplicationMaster
MapReduceのフレームワークの縛りの中で複雑な処理を行うには、多数のMapReduceを組み
合わせることになる。都度HDFSに中間データを書き出すためのオーバーヘッドや、ジョブ
(ApplicationMaster)の起動のオーバーヘッドは分析処理の遅延に繋がる。
HiveやPig(on MapReduce)による一連の処理のイメージ
HDFSに書き出し
HDFSから読み出し
- 52. 52Copyright © 2015 NTT DATA Corporation
MapReduceで実現が難しいデータ処理の課題に対
して、新たな分散処理フレームワーク・実行エンジン
が出現。
新たな並列分散処理エンジンの出現
次ページより概要を紹介します!
- 53. 53Copyright © 2015 NTT DATA Corporation
Apache Spark : Hadoop上で動作する低レイテイシ技術
Apache Spark : 大規模データの分散処理をオンメモリで実現
• データ処理を極力メモリ上で実現するため、高速な処理を実現
• Hadoop MapReduceが不得意な繰り返し処理に威力を発揮
• 機械学習やHadoop MapReduceよりも短時間で処理したいものが得意領域
RDD(Resilient Distributed Dataset)の変換で処理を表現
RDD RDD RDD
Stage Stage
RDD
Sparkができるだけ
処理をまとめこむ
ユーザ定義の
処理の流れ
Sparkによる
実際の処理 ステージ間は
シャッフルが発生
変換 変換 変換 出力入力
Stageに基づいて
サーバ群がタスク実行
- 54. 54Copyright © 2015 NTT DATA Corporation
Apache Spark : コアを中心に成り立つライブラリ
Apache Spark(コア)
Spark SQL
Spark
Streaming
MLlib GraphX
SQLで書ける ストリーム処理できる
機械学習できる
統計処理できる グラフ処理できる
Scala、Java、Pythonで分散処理を書ける
高度な処理を実現するための標準ライブラリが充実
メモリを活用したアーキテクチャ、インタラクティブにも処理を記述できる仕組み、便利なライブ
ラリなど、分析担当者に嬉しい機能が多い。
- 55. 55Copyright © 2015 NTT DATA Corporation
Apache Tez : YARN上での処理に最適化された実行エ
ンジン
Apache Tez : DAG(Directed Acyclic Graph)により実行計画を作成
ApplicationMasterの起動回数削減
HiveやPigといったMRv1で実行していたクエリ・コードを流用できる
• Hive on Tez
• Pig on Tez
Tez
Plan
Plan Plan
Plan
ローカルディスクを利用
(HDFSへの書き込みより高速)
Plan
Plan
特定のノードのみでShuffle
(通信量・リソース削減)
処理量ベースで
実行ノード数を制御
(リソース削減・性能改善)
MapReduceの仕組みに
あてはめない 1つのApplicationMasterで処理
ローカル ローカル
ローカル ローカル
Hive、Pigを利用するユーザは、プログラムの言語(HiveQL、Pig Latin)はそのままで処理時間
の短縮が可能。MRが多段になる複雑な処理であるほど、処理時間短縮効果が大きい。
- 56. 56Copyright © 2015 NTT DATA Corporation
Twitter社のエンジニアにより開発された、並列分散ストリーム処理のた
めのフレームワーク
Apache Storm : 分散ストリーム処理フレームワーク
Storm Topology
Spout:ストリーム処理の入力を担う
Bolt:データへの
処理を実行する
HBase
HDFS
ストリームデー
タ
・ログ
・センサーデータ
アプリケーションエンジニアは、Bolt・Spoutで処理するロジックを記述、それらを組み合わせた
Topologyを定義することで分散ストリーム処理を実現できる。耐障害性やスケーラビリティを意
識せずに享受可能!
処理したデータをKVSや
HDFSに永続化し可視化や
通知を行う
Storm処理の前段にMQ等のシス
テムを配置し、ストリームデータを
受け取る
- 57. 57Copyright © 2015 NTT DATA Corporation
SparkやStormは元々Hadoopとは独立したプロジェク
トだったが、機能追加によりYARN上での動作が可能
に。(TezはYARNでの実行を前提としている)
メリット
- 専用のクラスタを構築する必要が無く、必要なリソースを払いだしながら多様
な分析処理を実行できる
- 同一のデータ(HDFS)にアクセスできる。(データを移動させる必要が無い)
YARNで、Hadoopに乗る
MRv2
PigHive
HDFS
YARN
Tez Spark Storm
MLlib Streaming
…
SQL GraphX
スケーラブルなデータストアの上で、様々な分析処理のワークロードが動作。
「Hadoopはビッグデータの”OS”カーネル」という声も。
http://itpro.nikkeibp.co.jp/article/NEWS/20140708/569985/
- 58. 58Copyright © 2015 NTT DATA Corporation
エンタープライズ用途でより活用されるために、高い
非機能要求に対応するための機能拡張も進んでい
る
以下の観点で、Hadoop2系で追加された機能を紹
介します
可用性
セキュリティ
堅牢なHadoopに向けて
- 59. 59Copyright © 2015 NTT DATA Corporation
Hadoop1系まではマスター系サーバはSPOFと言われ、他の
HA系コンポーネントを組み合わせることで冗長構成をとって
いた。
現在は、Hadoopの機能としてHA機能を提供。障害発生時
も少ないダウンタイムでフェールオーバーを行う。
NameNode-HA
ResourceManager-HA
MRv2やTezは、ResourceManagerやApplicationMasterの障害・切
り替え時もジョブの途中から再実行する
可用性 : SPOFは無い!
- 60. 60Copyright © 2015 NTT DATA Corporation
Hadoopクラスタへアクセスするユーザ・組織の増加や、クリ
ティカルなデータをHadoopで保持する事例も増え、セキュリ
ティ機能も強化されている。
HDFS Transparent Encryption
ファイルを暗号化してDataNodeに書き込む
HDFS ACL
細かな粒度でHDFSへのアクセス権限を制御する
セキュリティ : 暗号化 / ACL
-rw-r--r-- 3 tester hadoop 129 2015-02-27 12:00 /user/tester/test.txt
例: $ hdfs dfs –setfacl –m group:hive:rw- /user/tester/test.txt
上記のコマンドで、hiveグループにも書き込みの権限を付与可能。アクセス制御が柔軟に。
DataNode
DataNode中のデータに
直接アクセスしても読めない
クライアントやアプリケーションか
らは透過的にデータが読める
- 61. 61Copyright © 2015 NTT DATA Corporation
お話した内容
YARN登場
新たな並列分散処理エンジンの出現
非機能面の強化
Hadoopの最新動向のまとめ
根本的なアーキテクチャも見直しを入れて
Hadoopはさらに進化をつづけている
Hadoopがユーザへ浸透することで生まれた新たな課題
に対しても、様々なエコシステムが生まれ活用されている
大量データ保持・活用の様々な課題に対する
Hadoopの適用領域は広がりつづけている
- 63. 63Copyright © 2015 NTT DATA Corporation
Hadoopを多数運用してきたことで得られた知見をもとに、
改善提案をコミュニティにフィードバックしています
運用上特に問題となるバグの改修
利用者向けのドキュメントの拡充
運用、トラブルシュートを便利にする機能の開発
- OfflineImageViewer via the WebHDFS API
- HDFS Tracing
コミュニティへの貢献
- 64. 64Copyright © 2015 NTT DATA Corporation
開発面におけるHadoopコミュニティへの貢献
NTTデータはHadoopコミュニティにおいて世界有数のコントリビュータ(貢献企業)として活動しています。
商用環境においてHadoopを多数運用してきたことで得られた知見をもとに、Hadoopに対する改善提案をコミュニ
ティにフィードバックしています。事象の報告にとどまらずHadoop本体への開発も行っています。運用上特に問題と
なるバグの改修や、利用者向けのドキュメントの拡充のためのパッチを投稿し、コミュニティに貢献しています。
解決済みissue数
2014年 Hadoopコミュニティ貢献指標
Hadoop専業ベンダのHortonworksやCloudera、Hadoopを開発したYahoo! Inc.に
次いで、NTTデータもHadoopコミュニティにグローバルレベルで貢献しています。
貢献コード行数
244,975
131,609
30,595
第6位
21,78023,197 30,595 20,540
14,764 14,534
第4位
370
274
195
85
174
119
72
45 45
- 65. 65Copyright © 2015 NTT DATA Corporation
小沢 健史
日本電信電話株式会社ソフトウェアイノベーションセンタ
- YARN:高可用化
- YARN:処理基盤間のインタフェースの整備と実装
- YARN:致命的なバグの修正
- 計算リソースのリークの改善
鯵坂 明
株式会社NTTデータ 基盤システム事業本部
- OfflineImageViewerの拡張
- Hadoop 2系のドキュメント整備
- メトリクスのドキュメント整備
- 品質強化に関する取り組み
岩崎 正剛
株式会社NTTデータ 基盤システム事業本部
- HTraceのモジュール開発
- HTraceトレーシング機能をHDFSに追加
- Sqoopのコネクタ開発
- Hadoopの運用スクリプト改善
コミッタ(主要開発者)に就任
Hadoop
Hadoop
HTrace
- 66. 66Copyright © 2015 NTT DATA Corporation
小沢 健史
日本電信電話株式会社ソフトウェアイノベーションセンタ
- YARN:高可用化
- YARN:処理基盤間のインタフェースの整備と実装
- YARN:致命的なバグの修正
- 計算リソースのリークの改善
鯵坂 明
株式会社NTTデータ 基盤システム事業本部
- OfflineImageViewerの拡張
- Hadoop 2系のドキュメント整備
- メトリクスのドキュメント整備
- 品質強化に関する取り組み
岩崎 正剛
株式会社NTTデータ 基盤システム事業本部
- HTraceのモジュール開発
- HTraceトレーシング機能をHDFSに追加
- Sqoopのコネクタ開発
- Hadoopの運用スクリプト改善
コミッタ(主要開発者)に就任
Hadoop
Hadoop
HTrace
コミッタを中心に
Hadoopコミュニティを先導し、
Hadoopがより安心して
便利に使えるものになるように
継続して貢献をしていきます!
- 67. 67Copyright © 2015 NTT DATA Corporation
Hadoopは1台のマシンで扱えない規模の大量データを高速に処理する
ためのフレームワークです
数台から始めて、数千台(データ量にして数十PB)までスケールアウトします
Hadoopエコシステムの開発の勢いは今も活発です
性能面、運用面で便利な機能がどんどん追加されています
より低レイテンシな分散処理フレームワークや分析のためのライブラリも充実し、大
量データ活用の可能性を広げています
NTTデータも、Hadoopの開発に参戦しています
バグフィックスや、運用を便利にするための機能開発に取り組んでいます
国内初のコミッタ輩出!さらなる開発力の向上を目指しています
まとめ
- 68. Copyright © 2011 NTT DATA Corporation
Copyright © 2015 NTT DATA Corporation
お問い合わせ先:
株式会社NTTデータ 基盤システム事業本部
OSSプロフェッショナルサービス
URL: http://oss.nttdata.co.jp/hadoop
メール: hadoop@kits.nttdata.co.jp TEL: 050-5546-2496