hadoop最新情報 - yarn, omni, drill, impala, shark, vertica - mapr cto meetup 2014/03/14

61
© MapR Technologies, confidential ® ® M. C. Srivas CTO & Founder [email protected] Hadoop 最新情報

Upload: mapr-technologies-japan

Post on 15-Jan-2015

2.765 views

Category:

Technology


2 download

DESCRIPTION

MapR Technologies CTO の M.C. Srivas による、Hadoop最新情報。YARN, MapR OmniによるHadoopスケジューリング、Drill, Impala, Shark, VerticaといったSQL on Hadoopソリューションについて解説します。2014年3月14日に開催された MapR CTO Meetup での説明資料です。

TRANSCRIPT

Page 1: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

®

M.  C.  Srivas  CTO  &  Founder  [email protected]  

                     Hadoop  最新情報  

Page 2: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

Say  BIG  DATA  one  more  3me  ...  

Page 3: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

バックグラウンド

•   サーチ  –   MapReduce,  Bigtable    

•  チーフアーキテクト  –   現 Netapp    

•  AFS  –   AFS  チームリード  –   現  

Page 4: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

MapR の歴史

        ‘09   ‘11  07  06  

MapReduce  論文を発表  

MR  論文もとにHadoop  を開発

Hadoop  を利用開始  

Hadoop  を利用開始  

Hadoop  を利用開始  

NYダウが14,300  から 6,800  に急落

2009年7月 MapR  設立    

‘13  ‘12  

2011年7月 高信頼性 Hadoopを発表  

とのパートナー

数々の世界記録を更新

2500  ノードの最大の商用クラスタ

MapR  M7  世界最速NoSQL

Page 5: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

South Pacific Ocean

North Pacific Ocean North Pacific Ocean

Indian Ocean

Arctic Ocean

North Atlantic Ocean

South Atlantic Ocean Zimbabwe

Zambia

Yemen Vietnam

Somoa

Venezuela

Vanuatu

Uzbekistan

Uruguay

United States

U. K.

U.A.E.

Ukraine

Uganda

Turkmenistan Turkey

Tunisia

Trinidad & Tobago

Tonga

Togo

Thailand

Tanzania

Tajikistan

Syria

Switz.

Sweden

Swaziland

Suriname

Sudan

Sri Lanka

Spain

South Africa

Somalia

Solomon Islands

Slovenia

Slovakia

Singapore

Sierra Leone

Senegal

Saudi Arabia

Rwanda

Russia

Romania

Qatar

Puerto Rico

Portugal

Poland

Philippines

Peru

Paraguay

Papua New Guinea

Panama

Palau

Pakistan

Oman

Norway

Nigeria

Niger Nicaragua

New Zealand

Neth.

Nepal

Namibia

Mozambique

Morocco

Mongolia Mold.

Mexico

Mauritania

Malta

Mali

Malaysia

Malawi

Madagascar

Mace.

Lux.

Lithuania

Libya

Liberia

Lesotho

Lebanon

Latvia

Laos

Kyrgyzstan

Kuwait

South Korea

North Korea

Kenya

Kazakhstan

Jordan

Japan

Jamaica

Italy

Israel

Ireland

Iraq Iran

Indonesia

India

Iceland

Hungary

Honduras Haiti

Guyana

Guinea-Bissau Guinea Guatemala

Greenland

Greece

Ghana

Germany

Georgia

Gambia

Gabon

French Guiana

France

Finland

Fiji

Taiwan

Ethiopia

Estonia

Eritrea

Equatorial Guinea

El Salvador

Egypt

Ecuador

Timor Leste (East Timor)

Dom. Rep.

Dijbouti

Denmark

Czech Rep.

Cyprus

Cuba

Croatia

Cote d'Ivoire Costa Rica

Congo

Dem. Republic of Congo

Colombia

China

Chile

Chad

Central Africa Republic

Cape Verde

Canada

Cameroon

Cambodia

Burundi

Myanmar (Burma)

Burkina Faso

Bulgaria

Brunei

Brazil

Botswana

Bosnia & Herz.

Bolivia

Bhutan

Benin

Belize

Belgium

Belarus

Bangladesh Bahamas

Azerb.

Austria

Australia

Armenia

Argentina

Angola

Algeria

Albania

Afghanistan

Western Sahara (Occupied by Morocco)

Serbia Mont. Kos.

世界の MapR オフィス

Page 6: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

エンタープライズ Hadoop 運

用管

MapR データプラットフォーム

APACHE HADOOP エコシステム

6

Storm

Drill

Shark

Sentry

Spark

Impala

HBase

MapReduce

Hue

Solr

YARN

Flume

Cascading

Pig

Sqoop

Hive/

Stinger/

Tez

Whirr

Oozie

Mahout

Zookeeper

エンタープライズグレード 相互運用性 マルチテナント セキュリティ 業務利用

Page 7: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

本日のトピック

•  Hadoop  スケジューラ  •  YARN,  MR1  •  MapR  Omni:    既存のコードを変更無しにHadoop上で動かすしくみ  

•  SQL:  Drill,  Impala,  Shark,  VerUca  

Page 8: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

MapR:  唯一の汎用 Hadoop  ディストリビューション  

管理

ツー

ル  

汎用分散ストレージプラットフォーム  

YARN  Hadoop  API  

Hadoop  および非 Hadoop  アプリケーション  

SQL   Search  NoSQL   HPC   C,  C++,  Python,  Ruby,  non-­‐Java  MapReduce   …

99.999%  高可用性   データ保護   リアルタイム

データ投入  ディザスター

リカバリ  スケーラビリテ

ィ &  性能  マルチテナント  &  データ配置管理  

®

POSIX,  ODBC  

Omni  MR1  

Page 9: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

MR1 – JobTracker と TaskTracker

TT  は  JT  に定期的にハートビートを送信  •  スロットの空き状況  •  タスクの進捗  •  生存確認  

ハートビートの応答として JT  は  TT  に指示を送る  •  タスクの起動  •  タスクの強制終了  •  Reducerの入力の準

備状況  

Page 10: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

MR1

利点  – 速いスケジューリング  –  JVM  の再利用  – 最適化された JT-­‐TT  間通信  – 障害復旧がシンプル  

欠点  – 静的で固定のスロット、異なるサ

イズのジョブへの適合が困難  – リソースの過剰な確保  – リソースの確保の不足  – MapReduce  のみのスケジューリ

ング、それ以外は未対応  – 大規模クラスタでは JT  がボトル

ネック  

Page 11: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

YARN  と MR2  

クラスタ全体で1つの ResourceManager  (RM)  •  NodeManager  (NM)  は各ノード上のエー

ジェント  •  CPU  と  RAM  のみを管理  •  CPU/RAM  は Yarn  コンテナ として割り当

てられる  •  各ノード上の  NM  が管理  •  Linux  コンテナとの混同に注意  

「ジョブ」ごとに個別の AppMaster  •  コンテナ内部で起動される  •  RM  にコンテナを要求  

•  MR2  の  Map  および Reduce  スロット  •  1つのジョブのみを管理  •  RM/NM  は MapReduce  を関知しない  

2階層モデル  

Page 12: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

YARN

利点  – 様々なジョブの要求に容易

に応じることが可能  – リソースの過剰な確保を防止  – MapReduceだけでなく、様

々なタイプのクラスタサービスに対応  

–  JT  ボトルネックを「興味深い方法で」解決  

Page 13: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

MapR  の  YARN  はより優れている  

•  MR1  と YARN  の両方をサポート  – 両者を単一クラスタの全てのノードで同時に利用可能  – MapReduce  1.0  アプリを YARN  向けに書き直し/再コンパイルは不要  

•  アプリの移行が一度にできる  – 新旧のフレームワークを使って結果を検証  – 古いものを使い続けるか、新しいものに移行するかを判断  

•  MapR  のみが実現  

Page 14: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

YARN

利点  – 様々なジョブの要求に容易

に応じることが可能  – リソースの過剰な確保を防止  – MapReduceだけでなく、様

々なタイプのクラスタサービスに対応  

–  JT  ボトルネックを「興味深い方法で」解決  

欠点  – スケジューリングが遅い  –  JVM  の再利用なし  – アプリは  YARN  API  を使って開

発する必要がある  – 障害復旧は非常に複雑で、Apache  Hadoop  では未実装  

– 既存のアプリは  Yarn  とクラスタを共有できない  

Page 15: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

MapR Omni

•  init  により起動  •  CPU/RAM  を割り当て  •  物理RAMの%,  最大,  最小  •  起動,  停止,  再起動,  監視  •  フェールオーバーを支援  

– 1  of  N  – M  of  N  

Omni  

/etc/init.d/  

MapR  Data  Plaaorm  

MR  1   YARN  

Zookeeper  

VerUca  Shark/Spark  

Page 16: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

MapR Omni

•  コードではなく設定で対応  – Omni  向けにサービスを宣言  – HA  が必要か?  

再起動で十分か?  – 起動順序  

•  必要なノードで設定  – MapR  の一括設定が利用可

能  

/opt/mapr/conf/warden.vertica.conf diplayname=vertica # on MapR’s GUI heap.min=1G heap.max=10G heap.percent=15 start=/opt/vertica/start-vertica stop=/opt/vertica/stop-vertica monitor=/opt/vertica/check-health uri=… HA=10 # of 20

Page 17: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

MapR の MapReduce 性能 (速い!)

TeraSort  記録  1  TB  を 54  秒  

1003  ノード  

MinuteSort  記録  1.5  TB  を 59  秒  

2103  ノード  

®

Page 18: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

MapR/Cisco の MapReduce 性能 (より速い!)

TeraSort  記録  1  TB  を 54  秒  

1003  ノード  

MinuteSort  記録  1.5  TB  を 59  秒  

2103  ノード  1.65  

300  

®

Page 19: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

まとめ  

MapR は唯一の汎用 Hadoop フレームワーク

•  MR1 + YARN + Omni: 汎用プロセッシングフレームワーク •  MapR データプラットフォーム: 汎用ストレージシステム

•  MapR Hadoop: 上記を統合した唯一のディストリビューション

•  MapR のみが実現 : Hadoop と非 Hadoop アプリが同じデータを共有

Page 20: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

20

運用

管理  

     

MapR  データプラットフォーム  

APACHE HADOOP と OSS エコシステム

Spark   Hue  HP  VerUca  Shark  Impala  Drill  

Hive/  SUnger/  Tez  

Storm   Sentry  Solr  Mahout  Cascading  Zookeeper  Flume  

Oozie   HBase  MapReduce  YARN  Pig  Whirr  Sqoop  

SQL アクセス

SQL ディスカッション

Page 21: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

どの SQL-on-Hadoop がお好みですか?

SQL  から MapReduce  への変換  

SQL  クエリエンジン   SQL  ベースの分析  

Impala リアルタイム  

インタラクティブクエリ  

リアルタイム  インタラクティブクエリ  

presto shark

Page 22: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

Page 23: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

自己表現型のデータが一般的になってきている

中央管理されたスキーマ  -­‐  静的  -­‐  DB  管理者による管理  -­‐  中央管理のレポジトリ    入念なデータの準備のために長い時間が必要  (ETL,  スキーマの作成/変更,  等)    –  6〜18  ヶ月  

自己表現型もしくはスキーマレスデータ  -­‐  動的/更新されていく  -­‐  アプリケーションによる管理  -­‐  データに埋め込まれる    スキーマをなくすことで,  大容量・多用途・更新の速いデータにより適している  

Apache  Drill  は両方のスキーマをサポート  

Page 24: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

基本的な処理の流れ

Zookeeper  

DFS/HBase   DFS/HBase   DFS/HBase  

Drillbit  

分散キャッシュ  

Drillbit  

分散キャッシュ  

Drillbit  

分散キャッシュ  

クエリ   1.  クエリがいずれかの Drillbit  に到着 (JDBC,  ODBC,  CLI,  protobuf)  2.  Drillbit  はクエリ最適化&ローカリティに基づき実行プランを生成  

3.  処理の Fragment  が各ノードで実行される  4.  データが最初のノードに返される  

Page 25: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

Drillbit 内部のコードモジュール

SQL  パーサ   オプティマイザ  

Physical  プ

ラン   DFS  エンジン  

HBase  エンジン  

RPC  エンドポイント  

分散キャッシュ  

スト

レー

ジエ

ンジ

ン  

イン

ター

フェ

ース  

Logical  プ

ラン  

実行  

その他  

Page 26: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

クエリステート SQL  •  何をしたいか(分析者の視点)  Logical  プラン:    •  何をしたいか(言語非依存、コンピュータの視点)  Physical  プラン  •  どのようにしたいか(考え得るベストな方法)  実行プラン(Fragment)  •  どこでしたいか  

Page 27: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

クエリの実行

SQL  パーサ  

オプティマイザ  

スケジューラ  

Pig  パーサ  

Physical  プ

ラン  

Mongo  エンジン  

Cassandra  エンジン  

HiveQL  パーサ  

RPC  エンドポイント  

分散キャッシュ  

スト

レー

ジエ

ンジ

ンイ

ンタ

ーフ

ェー

ス  

Operators  オペレータ  

Foreman  

Logical  プ

ラン  

HDFS  エンジン  

HBase  エンジン  

JDBC  エンドポイント   ODBC  エンドポイント  

Page 28: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

集約クエリの比較

MapReduce  

•  全体ソートが必ず発生  •  すべてのデータがソートされるまで集

約が始まらない  •  Reduce  の場所の割り当ては、Map  タ

スクが一部完了するまで行われない  

Drill  

•  ソートは必ずしも必要でない  •  データは最初と次のフラグメントの間

でパイプライン化される  •  集約は最初のレコードの準備ができ

次第すぐに開始  •  最初のクエリの時点でタスクの割り当

てが行われ、データの準備ができ次第すぐに目的の場所に送信される  

Page 29: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

Drill の差別化ポイント •  Late-­‐bind  スキーマによりメタストア定義が不要  

SELECT cf1.month, cf1.year, FROM hbase.table1!  

•  ネストデータをネイティブに扱える:  BigQuery  と同様に、ネストデータ型に対するSQL拡張が行われている  (Four-­‐value  semanUcs)  

SELECT!!c.name, c.address, COUNT(c.children) !FROM! SELECT!! !CONVERT_FROM(cf1.user-json-blob, JSON) AS c ! FROM! !hbase.table1!

Page 30: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

a

•  クエリ処理の途中でスキーマが変わる可能性がある  •  スキーマ変更イベントによりオペレータの再構成ができるよ

うになっている  – 柔軟性のためのオーバーヘッドを最小化  – 実際のデータ特性に基づいてより高度な実行時最適化を行える  

Page 31: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

Drill の差別化ポイント(続き)

•  最新の研究のアプローチを活用  –  Late  record  materializaUon  – ベクトル化オペレータ  

•  拡張性  – Hive  UDF/SerDe  をサポート  – 明確に定義されたストレージエンジンとオペレータインターフェース  – 最適化と拡張性のための Logical/Physical  プラン API  レイヤー  

Page 32: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

•  ANSI  SQL  標準の INFORMATION_SCHEMA  によるメタデータ利用  SELECT  table_name,  table_type  FROM  informaUon_schema.tables  WHERE  table_schema=‘MyDatabase’  ORDER  BY  table_name  DESC    

•  Drill  を構成する  SQL  •  SELECT,  GROUP  BY,  ORDER  BY,  LIMIT,  JOIN,  HAVING,  UNION,  UNION  ALL,WITH,  IN,  EXISTS,DISTINCT,  BETWEEN  他    

•  SELECTのネスト  :  スカラおよび相関サブクエリ  •  結合:  Inner,  Leo  outer,  Right  outer,  Full  outer  •  DDL/DML  サポート  

– CREATE  DATABASE,  CREATE  TABLE/VIEW  AS  SELET,  INSERT  INTO  

Page 33: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

Drill   Impala   Hive+Tez  

概要  

ステータス   Alpha   1.0   Alpha  

典型的な小さいクエリの性能   100  ミリ秒   100  ミリ秒   ??  

HBase  に対するクエリ   ✓   ✓   ✓  

SerDe  に対するクエリ   ✓   ✓  

Hive  UDF  サポート   ✓   ✓  

コントリビューション/開発モデル   Apache   MySQL   Apache  

実行プログラミング言語   Java   C++   Java  

クエリ言語  

書き込みのサポート   ✓   ✓  

クエリ言語   SQL2003 HiveQL サブセット HiveQL

データ  

スキーマレスデータのサポート   ✓  

リレーショナルオペレータのネスト   ✓  

内部ソート  &  結合   ✓   ✓   ✓  

外部ソート/結合/集約   ✓   ✓  

実行  

コード生成   ✓   ✓  

カラム実行   ✓  

ベクトル化オペレータ   ✓   ✓  

Page 34: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

Impala

Page 35: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

Impala 概要

Impala  サービス  Impalad    •  クラスタの各データノードで稼働  •  データに対しクエリのプランニン

グと実行を行う  Statestored    •  クラスタ内の1つのノードで1つの

インスタンスが稼働  •  Impala  デーモンの稼働状態をチ

ェック  

Impala  クライアント  •  Shell  :  Impala  とやり取りするコマンドラインインターフェース  •  JDBC/ODBC  :  BI  ツールから  Impala  へのアクセスを可能に  

Impala  データソース:  ファイル,  HBase/M7  テーブル  

Impala  メタデータ  •  Hive  メタストアが必要  

Page 36: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

Impala の SQL まとめ •  制限つきの  DDL/DML  (update/delete  は無し)  •  等価結合のみをサポート,  直積や非等価結合は無し  •  OrderBy  には  LIMIT  を付ける必要がある  

•  機能的な制限  –  結合は全ノードの合計メモリ内に収まらなければならない  –  サポートされていない Hive  QL  機能    

•  UDF  (1.2.1  で一部サポート)  •  map,  array,  struct,  XML,  JSON  のような非スカラデータ型および関数  •  統計集約関数  (例:  variance,  var_pop,  var_samp,  stddev_pop  他)  •  Lateral  view  •  Sort  by,  Cluster  by,  Distributed  By  のような MapReduce  機能  •  インデックス,  ロックなど  

Page 37: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

Shark/Spark

Page 38: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

SPARK 関連プロジェクト

Spark

Spark Streaming (real-time)

GraphX (graph) Shark"

(Hive on Spark)

MLbase (machine learning)

BlinkDB

Page 39: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

Spark のアプローチ

•  用途を特化するのではなく、MapReduce  を 汎用化 して新しいアプリを同じエンジンでサポート  

•  前述のモデルを表現するためには、2つの変更  (汎用タスク  DAG  &  データ共有)  で十分  

•  統合による大きな利点  – エンジンにとっての利点  – ユーザにとっての利点  

Spark

Stre

aming

Gra

phX

Shar

k

MLb

ase

Page 40: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

Spark の RDD

•  RDD  =  Read-­‐only,  parUUoned,  collecUon  of  records  – ディスクへの書き出しや、ディスクからの再構築が可能  

•  RDD  は様々な変換によって生成される  – RDD  セットは変換の  Lineage  (系統)と共に運ばれる  

•  Lineage  は障害時にデータを復旧するために使われる  – ほとんど  RAM  上で操作されたであっても復旧される  

messages = textFile(…).filter(…).map(…)

HadoopRDD ß FilteredRDD ß MappedRDD

Page 41: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

MLlib

•  機械学習ライブラリ  •  MLlib  は Scala,  Java  から呼

び出し  •  MLI:  機能拡張とアルゴリズ

ム開発のための API  •  ML  OpUmizer:  モデル選択

を自動化  

SPARK  

MLlib  

MLI  

ML  Op3mizer  

Page 42: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

MLlib

•  分類:            LogisUc  Regression,  Linear  SVM,  …  •  回帰:            Linear  Regression  (Lasso,  Ridge)  •  協調フィルタリング:  AlternaUng  Least  Squares  •  クラスタリング:    KMeans  •  最適化プリミティブ:  SGD,    Parallel  Gradient  

Page 43: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

デプロイメント

•  Spark  0.8:    YARN,  EC2  サポート  •  Spark  0.8.1:  YARN  2.2  のサポート  •  SIMR:  Spark  を MapReduce  クラスタ内で Hadoop  ジョブとして

起動(インストール不要)  •  MLlib  0.8.1  

Page 44: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

Shark

•  SHark  =  Hive  on  Spark  •  HIVE  UDF  の完全サポート  •  対応予定:  Spark  ライブラリ(例:  MLlib)の呼び出し,  オプティ

マイザ,  Hive  0.11  &  0.12  

Page 45: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

Drill  1.0   Hive  0.13  +  Tez   Impala  1.x   Presto  0.56   Shark  0.8  

レイテンシ   Low   Medium   Low   Low   Low  

ファイル   Yes  (すべての Hive  ファイル形式)  

Yes  (すべての  Hive  ファイル形式)  

Yes  (Parquet,  Sequence,  …)  

Yes  (RC,  Sequence,  Text)  

Yes  (すべての  Hive  ファイル形式)  

HBase/M7   Yes   Yes     問題あり   No   Yes  

スキーマ   Hive  or  スキーマレス   Hive   Hive   Hive   Hive  

SQL  サポート   ANSI  SQL   HiveQL   HiveQL  (サブセット)   ANSI  SQL   HiveQL  

クライアントサポート  

ODBC/JDBC   ODBC/JDBC    

ODBC/JDBC    

JDBC    

ODBC/JDBC    

大きなジョイン   Yes   Yes   No   No   No  

ネストデータ   Yes   Limited   No   Limited   Limited  

Hive  UDF   Yes   Yes   Limited   No   Yes  

トランザクション   No   No   No   No   No  

オプティマイザ   Limited   Limited   Limited   Limited   Limited  

同時実行   Limited   Limited   Limited   Limited   Limited  

インタラクティブ SQL-on-Hadoop の選択肢

Page 46: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

その他の Spark プロジェクト

Page 47: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

Spark Streaming

ストリーミング処理を非常に小さい  Determinis3c  な(入力に対し出力が一意に決まる)一連の  バッチジョブとして実行  

47

Spark  

Spark  Streaming  

数秒ずつのデータ群  

ライブデータストリーム  

処理結果  

§ ライブストリームを数秒ずつのデータ群に切り刻む  

§  Spark  はそれぞれのデータ群を  RDD  として扱い、RDD  処理を施していく  

§ 最終的に  RDD  処理の結果がデータ群として返される  

Page 48: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

例: Twitter からハッシュタグを取得

val  tweets  =  ssc.twitterStream(<Twitterユーザ名>,  <Twitterパスワード>)  

 DStream:  分散データストリームを表現する分散データセットのシーケンス  (RDD)  

batch  @  t+1  batch  @  t   batch  @  t+2  

tweets  DStream  

RDD(変更不可の分散データセット)としてメモリ上に格納される  

Twiter  ストリーミング API  

Page 49: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

例: Twitter からハッシュタグを取得

val  tweets  =  ssc.twitterStream(<Twitter  username>,  <Twitter  password>)  val  hashTags  =  tweets.flatMap  (status  =>  getTags(status))  

 

flatMap   flatMap   flatMap  

…  

変換:  1つの DStream  中のデータに手を加えて別の DStream  を作る  新しい DStream  

バッチ毎に新しい RDD  が作られる  

batch  @  t+1  batch  @  t   batch  @  t+2  

tweets  DStream  

hashTags  Dstream  [#cat,  #dog,  …  ]  

Page 50: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

tagCounts  

例: 直近1分間のハッシュタグをカウント

val  tagCounts  =  hashTags.window(Minutes(1),  Seconds(1)).countByValue()  

 

hashTags  

t-­‐1   t   t+1   t+2   t+3  

スライディングウィンドウ  

countByValue  

ウィンドウ内の全データをカウント  

Page 51: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

標準ライブラリ

•  Spark  Streaming:  継続運用のための改善と最適化が次期バージョン  0.9  に含まれる予定  

•  BlinkDB:  まだ出たばかり  DataBricks  による取り組み  

Spark

Spark Streaming

(real-time)

GraphX (graph) Shark"

(Hive on Spark)

MLbase (machine learning)

BlinkDB

Page 52: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

大規模データセットに対するインタラクティブで  SQL  ライクな集約クエリをサポート(サンプリング+近似を利用)  blinkdb> SELECT AVG(jobtime) FROM very_big_log!  

           WHERE src = ‘hadoop’!!! ! ! LEFT OUTER JOIN logs2!

! ON very_big_log.id = logs.id  

現在  Alpha,  バージョン  0.1.1    

Blink  DB  

Page 53: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

a

Page 54: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

HP Vertica とは? ノード1   ノード2   ノードn  

•  MPP  カラムストアデータベース  •  データはクラスタ内で分散格納  •  並列にロード・クエリ処理を行う機能を提供  •  高速 SQL  クエリエンジン  •  オバマの  2012  再選キャンペーンで使われたことで有名  

Page 55: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

SQL on Hadoop: 2つのアプローチ

既存  DB  の改良  Pivotal  HAWQ,  MS  PolyBase,  IBM  BigSQL  

Hadoop  SQL  Impala,  Drill,  Presto,  Hive  on  Tez,  Shark    

テクノロジーアプローチ  

従来の  MPP  エンジンが Hadoop  をストレージとして利用    専用のファイル形式でデータをロードし、専用のメタデータストアを使う必要がある  

Hadoop  をストレージと処理の両方に使用する、目的特化型のクエリエンジン    Hadoop  のオープンなファイル形式と Hadoop  のメタデータ  (Hive/Hcatalog)  を利用  

利点   より完全な  SQL  成熟  

コスト効率  スケーラビリティ  再利用  

Page 56: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

•  実際は統合されていない  –  MPP  DWHの例  

典型的な Database-on-Hadoop のしくみ

MPPデータベース  

HiveServer2  via  ODBC  

Hadoop  HDFS  コネクタ  

ローカルディスク  

クエリ  

データ  

ここを管理する必要がある  

クエリプランナーはHadoop上のデータがどこにあってどのように分散されているかが分からない  

Page 57: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

+ve:    高い性能  -­‐ve:      管理が難しい  

ローカルディスクと NAS/SAN の比較

高い管理性:  -­‐  拡張可能なストレージ  -­‐  ディスクスペースの効率的な利用  

-­‐  故障コンポーネントの修理/交換  -­‐  ダウンタイムなしのシームレスなアップグレード  -­‐  性能の調整  

-­‐  バックアップとディザスターリカバリ  

データベース  

ローカルディスクストレージ  

データベース  

SAN/NAS  ストレージ  

Page 58: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

MapR: NAS の機能を備えたローカルディスク

•  MapR  のみが完全な  NAS  機能を備えつつローカルディスクの性能を提供  – 動的なスペース管理  – 性能の調整  – 階層化  – 即時の一貫性のあるバックアップ  – ディスクエラーからの自動復旧  – 完全な  DR  ソリューションを内蔵  

完全 Read/Write

ビルトイン圧縮

分散メタデータ

Web Server

Database Server

Application Server

Page 59: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

•  VerUca  は唯一の真にHadoopと統合されたデータベースに  

Vertica on MapR

クエリ  

データ  

完全に管理されたストレージ、別の SAN/NAS  の必要なし  

クエリプランナーはHadoopの上のデータローカリティをフルに活用  

Page 60: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

幅広い分析機能 •  1つのプラットフォーム上で幅広い分析機能を利用可能  

– HP  VerUca  に内蔵された様々な分析機能  – Mahout,  Hive,  Pig  を含む Hadoop  プロジェクト  

•  MapR  上の HP  VerUca  は、様々な  BI  ツールと検証済みで、自動生成された  SQL  の実行に最適化されている  

 •  HP  VerUca  Flex  Zone  による高速なスキーマレスデータの探索    

Page 61: Hadoop最新情報 - YARN, Omni, Drill, Impala, Shark, Vertica - MapR CTO Meetup 2014/03/14

© MapR Technologies, confidential ®

運用

管理  

     

APACHE HADOOP と OSS エコシステム

Spark   Hue  HP  VerUca  Shark  Impala  Drill  

Hive/  SUnger/  Tez  

Storm   Sentry  Solr  Mahout  Cascading  Zookeeper  Flume  

Oozie   HBase  MapReduce  YARN  Pig  Whirr  Sqoop  

エンタープライズ Hadoop

エンタープライズグレード 相互運用性 マルチテナント セキュリティ 業務利用

MapR  データプラットフォーム