ウィリアムのいたずらの、まちあるき、たべあるきーPART2

gooブログ「ウィリアムのいたずらの、まちあるき、たべあるき」がお引越ししてきました

「Hadoopエコシステムの最新技術動向」を聞いてきた!

2月27日のオープンソースカンファレンス 2016 Tokyo/Springに行ってきた!つづき

Hadoopエコシステムの最新技術動向とNTTデータの取り組み

をメモメモ



Hadoopエコシステムの最新技術動向とNTTデータの取り組み

・自己紹介
・Hadoopの概要
  HDFS
  MapReduce
  YARN
 エコシステムの最新動向
 データの取り組み

【Hadoopとは】
・オープンソースの大規模分散処理フレームワーク
・Doug Cutting(だぐかってぃんぐ)氏がJavaで開発
 扱うデータがビッグであるために従来のIT-キテクチャでは難しかった
  →2005年から開発開始
 名前:ぬいぐるみから

Hadoopの構成
・集中管理がらの分散システム
 Hadoopマスタサーバー
 Hadoopスレーブサーバー
 Hadoopクライアント

Hadoopを構成するコンポーネント
 分散ファイルシステム:HDFS
 分散リソース管理機構:YARN
→HDFSとYARNの2つのコンポーネントにより

HDFSとは
 分散ファイルシステム
 複数のサーバー 1つのファイルシステム
 →外から見ると1つの巨大なファイルシステム

HDFSの舞台裏
・分散ファイルシステムの舞台裏では
 各ブロックは複製され、スレーブサーバーに格納される
 ブロック→こわれたとき、スループット向上などのため
 レプリカは異なる3サーバーに配置される

MapReduceとは
 MapReduceアルゴリズム
  大量の件数のデータがあった時に複数ワーカーで並列に処理できるしくみ
 例として:選挙の開票作業

  第一段階
   1)用紙を適当に3つ分ける
   2)3人で並行して候補所ごとに仕分け
  第二段階                   MAP処理
   3)候補者ごとに用紙を集める
  第三段階                   Reduce処理
   4)3人で候補者ごとに枚数を数える

Map処理              Mapタスク
 M人でやればM倍のスピード
 (相互に影響を受けずに作業できる)          MapReduceジョブ
Reduce処理           Reduceタスク
 N人でやれば、約N倍のスピード
 (相互に影響を受けずに作業できる)

MapReduce:YARN上で動作
 MapReduce=YARN上のアプリケーションの1つ

YARNとは
 Yet Another Resource Negotiator
 分散処理のリソースを制御する仕組み
  Hadoopのスケーラビリティをさらに向上させる
  柔軟なリソース制御によるスループット向上
  MapReduce以外の分散処理を実行できる

ますたーサーバーの負荷軽減
 ジョブ・アプリケーション管理のイメージ
  Resource Manager
 YARNでは
  ジョブX→アプリケーション○
  仕事(アプリケーション)の管理はメンバに依頼、とりまとめ役になる
  任命されたApplication MasterはResourceManagerに進捗状況
  タスクごとの進捗状況はApplication Masterがかんり、
  ますたーサーバーの管理コストが減り、多数のメンバーを管理できる
   →スケーラビリティ向上 10000ノード程度のクラスタも構成可能に

HDFS
 大量データをこうスループットに読み込める
 サーバーが故障してもデータの安全性担保
 サーバー数を増やせば格納できるデータ数はスケール
YARN
 リソースベースで処理を割り当て、こうスループット
 サーバーが故障してもタスクが再実行されジョブは成功
 サーバー数を増やせば、処理性能は基本スケールする
MapReduce
 MapタスクRduceタスクのみを指定すればあとはYARNで

【Hadoopエコシステム】
 2011後半からYARN→YARNあたりまえ
 今、2.6.4と2.7.2

11年目Hadoop
・大容量、多件数データのバッチ処理基盤→仕組み・手法ともに成熟
  クラウド
・MapReduceにこだわらない処理→ベースは感性、成長著しい
・新たなステージ→群雄割拠
 SQL on Hadoop
 Hadoopエコシステムの拡大
 Apache Spark

・代表的なHadoopエコシステム
 Apache TEZ→Pigとじゃもうごく
 Apache Spark
 HBASE
 Apache Impale分散クエリ
 Apache Ambari
 Hue
 Kafka(メッセージングシステム)

特に
・MapReduceによらないあらたな分散処理

ApacheSpark:コアを中心に成り立つライブラリ
 大規模データの分散処理をオンメモリで実現
  繰り返し処理に柔軟に対応→機械学習のクラスタリング
   SPARK SQL
   SPARK Streaming
   MLIB
   GraphX

Spark最新動向
・フロントエンドとバックエンドの進化
 フロントエンド:DataFrame API→処理高速化
 バックエンド :Project Tungsten→CPUの利用効率高める

Hive2.0 新たな時代のHive
・Apache Hive2.0 :2016年2月リリース
 機能・運用面・性能面の強化
 CLIとしてBeeLineが標準に
 SQL Standard Authorization
 Hive Server2機能強化
 LLAP
 実行エンジンとしてMapReduceは非推奨に

HiveServer2
 Web画面:実行されたクエリの情報・実行計画
  →メトリクスも
LLAP
 秒未満のクエリ実行時間を実現するための仕組み
  コンテナ立ち上げに時間がかかった
  →YARNのリソース管理 YARN上にデーモン
   コンテナ:TEZ
 ベータ版

【NTTデータの取り組み】
・Apache Hadoop PMC就任
・その他公開資料
  http://www.slideshare.net/hadoopxnttdata

まとめ
・Hadoopは1台のマシンで扱えない規模の大量データを高速に処理するためのフレームワーク
・Hadoopエコシステムの開発の勢いは今も活発
・NTTデータもHadoopの開発に参画しています
  Hadoopだけでなく、エコシステム全般