/home/by-natures/dev*

ソフトウェア開発者として働く人の技術的なメモ

memo: MapR 4.0.1

aboutus

MapR セミナーのメモを備忘録代わりに残します。間違ってたらご指摘ください。

Drill も MapR-DB(より使いやすいHBase) も MapR なら利用可能ということで、Drill が AWS で利用可能になるのでしょうか…。そう思うと非常に期待が高まります。S3 になんでもかんでも置いておいて、あとは Drill でどうにかするよという世界でしょうか。Presto でもいいですね。imaifactory さんが、一番好きな AWS サービスは S3 だと言っていましたが、日ごとにその言葉の意味が分かる今日この頃です。

参考:v4.0.1 リリースノート

[追記] Drill は Amazon EMR のブートストラップアクションで用意があり、現在でも簡単に利用することが可能だと MapR の方に教えていただきました。GitHubリポジトリを見ると elasticsearch や Presto も用意があるので、簡単に環境を整えられそうです。 github: awslabs/emr-bootstrap-actions

v4.0.1 の新機能

MR1 の問題点

スロットを Mapper / Reducer それぞれに割り当てる必要があり、リソースの無駄が生じやすい。例えば、Mapper タスクが大量に発生しても、Reducer のスロット分を使い回すことはできない。

また、JobTracker が分散しないため、負荷のボトルネックとなりやすい。

v4.0.1 で YARN 対応をし、MR1 の問題点を解決

上記問題点を受け、YARN では次のように解決している

  • ResourceManager, NodeManager によるリソース管理
  • リソースコンテナは固定長ではなく、流動的
  • コンテナはスロットの替わりとなる概念。Mapper / Reducer の別はないため、リソースを効率的に利用できる。
  • ApplicationMaster:
    • JobTracker の役割だが、各アプリケーションごとに立ち上がるため、負荷のボトルネックとならない
    • これもリソースコンテナの中で動く
    • 他のディストリビューションとは違い、MapR では CPU, メモリに加え、ディスク情報もリソース計算に使う

その他新機能

  • ラベルベース・スケジューリング(MapR)
    • MapR では以前からあった機能だが、YARN でも可能
    • 特定のジョブを特定のノードにひもづける機能
    • 例えばノードの方に "Fast", "High Memory" などのラベルを付けておき、ジョブでこのラベルを指定する事が出来る
  • MR1 との共存
    • 段階的に移行したいという希望に答える
    • MR1 の TaskTracker, YARN の NodeManager が1つのノードに共存
    • v4.0.1 では4タイプ使用可能:
      • 全て MR1
      • 全て YARN
      • ノードごとに MR1/YARN を切り分け
      • ノード内に MR1/YARN を共存させる
    • MapR の管理画面のノード管理画面で、MR1/YARN の状況をそれぞれ見る事が出来る

v4.0.1 or v3.1.1?:

  • YARN が必要かどうか・パフォーマンスは大丈夫か。パフォーマンスはまだ旧バージョンの方がよいが、開発が進むにつれて YARN 上でのパフォーマンスも改善するはず
  • ローリングアップグレードは v4.0.2 から(v4.0.1 では全インスタンスを停止して入れ替えなければならない

Apache Drill

概要

ANSI SQL に準拠したクエリエンジン。スキーマレス(JSON, BSON)のデータも扱える。CSV のローカル環境での抽出なら、ローカルで直に試すことができる:

SELECT column[1] AS LOCATION, max(columns[2]) AS MAX_TEMP
FROM dfs /root/...
GROUP BY LOCATION;
  • FROM でいろいろなデータソースが指定できる(ファイルシステム、Hive、...)
  • 様々な形式のデータを1つのクエリで取ってきて JOIN することも可能(FROM 句でそれぞれ形式を指定する)

ロードマップ

現在は version 0.6

  • v1.0 -> on YARN, 認証機能, on Spark(Spark への入出力に使える)
  • v2.0 -> 統計解析関数、オプティマイザの強化
  • v3.0 -> INSERT, UPDATE, DELETE への対応(トライ)

Apache Drill では UDPマルチキャストを必要とするため、今のところDrill on AWS は動かない。v0.7 で対応予定。

MapR-DB(M7)

  • READ の性能向上(memcached)
  • WRITE の性能向上:NoSQL
  • ログのようにとにかく溜めておくような使い方
  • MapR-DB: MapR Enterprise Database Edition (旧M7)
  • NoSQL. 旧M3 (Community Edition) でも利用可能
  • ファイルシステムの中に、テーブルがファイルのように存在するので、管理不要(テーブル作成の運用負担などはない)
  • HBase 互換なので、HBase のシェルが使える
  • LSM と BTree のよいところを取り入れた
    • BTree Index を大きく作り、その中に LSM が枝葉として存在(?)