« 【AWS発表】Amazon SESがメール受信、そしてその処理に対応しました | メイン | 【AWS発表】Amazon Elasticsearch Service »

【AWS発表】Amazon EMR リリース4.1.0 - Spark 1.5.0, Hue 3.7.1, HDFS暗号化, Presto, Oozie, Zeppelin, リサイズの改善

私の同僚のJon FritzとAhishek SinhaはEMRチームのシニアプロダクトマネージャです。彼らが以下の様に新しいEMRのリリースと新しいEMRクラスタのリサイズ機能を皆さんにお伝えするゲスト投稿を書いてくれました。

-- Jeff;


Amazon EMRは、Apache HadoopやApache Sparkといった分散データ処理フレームワークの実行と管理を簡単にしてくれるマネージドサービスです。

本日、我々はAmazon EMRリリース4.1.0をアナウンスします、これにはSpark 1.5.0、Hue 3.7.1、そしてHDFSのHadoop KMSを使った透過的な暗号化のサポートが含まれています。また、クラスタのノード数を減らす時に動作しているジョブに対する影響を最小化するインテリジェントなリサイズ機能もご紹介します。さらに、サンドボックスアプリケーションとしてPresto 0.119、Zeppelin 0.6(Snapshot)、Oozie 4.0.1が利用可能なこともアナウンスします。EMRサンドボックスは完全な一般利用可能(GA)リリースに向けて開発中のアプリケーションへの簡単なアクセスを提供します。

EMRリリース4.1.0はリリース4.0.0に続く最初のリリースとなります。リリース4.0.0では、アプリケーションの設定、新しいパッケージングシステム、Hadoopエコシステムアプリケーションの標準的なポートとパスへの変更、そしてAWSマネジメントコンソールでのクラスタのクイック作成オプションといった、多数のプラットフォームの改善が行われました。

4.xリリースシリーズの新しいアプリケーションとコンポーネント

Amazon EMRは、EMRのコンソール、AWS CLI、またはSDK経由でEMR APIを使ってクラスタを作成する時に、HadoopやSparkエコシステムの分散ビッグデータアプリケーションをインストールし設定する簡単な方法を提供しています。リリース4.1.0で、さらにいくつかの新しいアプリケーションのサポートを追加しました:

  • Spark 1.5.0 - 我々はEMRリリース4.0.0にSpark 1.4.1を含めましたが、今回のEMRリリースでSparkのバージョンを1.5.0に更新しました。Spark 1.5.0には多種の新しい機能とバグ修正が含まれていて、Spark SQL/Dataframeの機能追加、MLlibの新しいアルゴリズム、Spark Streaming向けのPython APIの改善、Parquet 1.7のサポート、そしてdynamically allocated executorsのロケーションの指定が含まれます。Amazon EMR上のSparkについてもっと詳しい情報については、こちらをクリックして下さい
  • HUE 3.7.1 - Hadoop User Experience (HUE)はオープンソースのユーザインタフェースで、Hadoopエコシステムアプリケーションでの開発やクエリ・ワークフローの実行や、Hive Metastoreのテーブルを表示、Amazon S3やクラスタ内のHDFSを閲覧することをより簡単にしてくれます。複数のユーザがAmazon EMRクラスタ上のHUEにログインして、Amazon S3やHDFSのデータに対してApache HiveやPigを使ってクエリをかけたり、Oozieを使ってワークフローを作成したり、クエリを開発し後で使うために保存したり、クエリの結果をUIで可視化したりできます。クラスタ上のHUE UIに繋げる方法については、こちらをクリックして下さい。 Emr_hue_hive_query_cloudfront_logs_2 Emr_hue_metadata_manager_3

  • Hadoop KMSでのHDFSの透過的な暗号化 - Hadoop Key Management Server (KMS)はHDFSの透過的な暗号化のための鍵を提供することができ、EMRクラスタではHDFSとともにマスターノードにインストールされています。他にもHadoop KeyProvider APIを使って外部の鍵提供システムを使うこともできます。HDFSでの暗号化はアプリケーションの読み取りと書き込みに対して透過的で、暗号化と復号はクライアントサイドで行われるので移動中もデータは暗号化されています。Amazon EMRにはクラスタ起動時に暗号化されたHDFSのディレクトリをプログラム的に作成する簡単な設定オプションも含まれています。Hadoop KMSとHDFSの透過的な暗号化についてもっと学びたい時には、こちらをクリックして下さい。

EMRサンドボックスのご紹介

EMRサンドボックスによって、完全な一般利用可能(GA)リリースにむけて開発中のアプリケーションをEMRクラスタ上で早くからアクセスすることができるようになりました。昔は、EMRで完全にサポートされていないアプリケーションをインストールするにはbootstrap actionが唯一の方法でした。しかし、bootstrap actionスクリプトを指定する必要があり、インストールはEMRのリリースと密結合しておらず、設定の管理は難しいものでした。一方、EMRサンドボックスのアプリケーションは正しくインストールされていることが証明されていて、configuration objectを使って設定でき、EMRのコンソールやCLI、EMR APIでアプリケーション名(ApplicationName-Sandbox)を使って直接指定することができます。リリース4.1.0では3つのEMRサンドボックスアプリケーションがあります:

  • Presto 0.119 - Prestoはオープンソースの分散SQLクエリ実行エンジンで、Amazon S3を含む多様なデータソースからなる大規模なデータセットに対してクエリするようにデザインされています。Prestoはインタラクティブな速さでのアドホックな分析に最適化されていて、複雑なクエリやaggregation、join、ウィンドウ関数を含むANSI SQL標準をサポートしています。PrestoはHadoop MapReduceを使わず、メモリ上でデータ処理するクエリ実行機構を持ち、ステージ毎にネットーワークを超えてパイプラインを実行します。Prestoを使うには、クラスタ上でPresto CLIを使うか、Airbnbがオープンソースにしているwebベースのクエリ実行ツールであるAirpalの様にサポートしているUIを接続します。Airpalはsyntax highlightingや結果のCSVダウンロード、クエリ履歴、クエリ保存、適切なテーブルを検索するtable finder、そしてスキーマを可視化し最初の1000行をサンプリングするtable explorerなど、いくつかのおもしろい機能を持っています。Amazon EMR上でAirpalとPrestoを使うことについては、AWS Big Data Blogの新しい投稿である”Data with Presto and Airpal on Amazon EMR”をご覧下さい。EMRでのPrestoについてのより詳しい情報は、こちらをクリックして下さい。
  • Zeppelin 0.6 (Snapshot) - ZeppelinはオープンソースのGUIで、Sparkを使ったデータ探索をインタラクティブに共同作業できるノートブックを作成します。Scala、Python、SQL (Spark SQLを使います)、またはHiveQLを使ってデータを操作し素早く結果を可視化することができます。Zeppelinのノートブックは何人かのユーザで共有することができ、可視化したものを外部のダッシュボードに公開することもできます。ノートブックでコードやクエリを実行する時に、Spark executorの動的アロケーションを有効にしてプログラム的にリソースを割当てたり、メニューの中からSparkの設定を変更(し再起動)することもできます。
  • Oozie 4.0.1 - OozieはHadoopのためのワークフロースケジューラで、有向非巡回グラフ(DAG)のアクションを作成することがdけいます。またアクションや時間で簡単にHadoopのワークフローを起動することができます。

Amazon EMRでPrestoを使っているお客様のユースケース

Prestoがサンドボックスアプリケーションとしてサポートされる前からも、特にAmazon S3上の巨大なデータセットに対するインタラクティブなアドホッククエリ用途で、多くのAWSのお客様がAmazon EMR上でPrestoを使っていました。いくつかの例がこちらになります:

  • Cogo Labsは、スタートアップのインキュベータで、マーケティング分析とビジネスインテリジェンスのプラットフォームを運用しています。Amazon EMRで動いているPrestoによって、100名以上いる開発者と分析者が500TBを超えるAmazon S3に保存されたデータにSQLクエリを実行することができ、データの探索やアドホック分析、そしてレポーティングを行っています。
  • Netflixはビッグデータに対するインタラクティブでANSI-SQL互換のクエリエンジンとして、スケールすること、オープンソースであること、そしてHive MetastoreとAmazon S3(Netflixのビッグデータウェアハウス環境の基盤)との連携を理由に、Prestoを選択しました。Netflixは常時起動のEMRクラスタでPrestoを実行していて、彼らの25PBクラスのS3のデータストアに渡って高速で柔軟なクエリを行っています。NetflixはアクティブなPrestoのコントリビュータであり、Amazon EMRによって柔軟に自前でビルドしたPrestoをAmazon EMRのクラスタ上で走らせることができています。平均的にはNetflixは3500クエリを毎日Prestoクラスタに実行しています。NetflixのPresto環境についてより詳しいことはこちらをご覧ください。
  • Jamppはモバイルアプリケーションのマーケティングプラットフォームで、広告のリターゲティング技術を使ってユーザに新しいアプリケーションを届けています。現在JamppはEMR上のPrestoで毎日40TBのデータを処理しています。
  • Kanmuは日本の金融サービス業界のスタートアップで、オファーベースの消費者クレジットカードを提供しています。Prestoはインタラクティブな速度での探索や繰り返し分析が可能で、Amazon S3でも良いパフォーマンスが出て、巨大なデータにもクエリできるスケーラビリティがあることから、KanmuではHiveからAmazon EMR上のPrestoに移行しました。
  • OpenSpanは人や処理や技術を橋渡しして、従業員の生産性や取引の単純化、そして従業員と顧客の愛着を増やすための洞察を得る手助けを自動でしてくれる頭の良いソリューションを提供しています。OpenSpanはHBaseから、Amazon S3をデータレイヤーにしたAmazon EMR上のPrestoに移行しました。ANSI SQLのインタフェースを持ち、Amazon S3にリアルタイムに直接クエリを実行できるため、大量のデータを素早く探索して次々にやってくるデータを高速に処理することが可能になるという理由からOpenSpanはPrestoを選択しました。

インテリジェントなリサイズ機能

リリース4.1.0で、我々はインテリジェントなリサイズ機能を追加しましたので、実行中のジョブに対する影響を最小にしてEMRクラスタを縮退することができます。加えて、クラスタにインスタンスを追加するときにも、利用可能になったらすぐにそのキャパシティを使いはじめることができるようになりました。以前は、全てのリクエストしたキャパシティが利用可能になるまで、YARNが追加したノードにタスクを送ることができませんでした。また、現在(クラスタの目標サイズを変更するための)リサイズのリクエストが実行されている間でもリサイズのリクエストやリサイズ処理を停止することもできるようになりました。

Emr_resize_up_1

クラスタのサイズを減らすときには、プログラム的にタスクが実行されていないインスタンスを選ぶか、もしクラスタの全てのインスタンスが利用中であれば、あるインスタンスがタスクを完了するまでクラスタからの削除を待ちます。デフォルトの待ち時間は1時間で、この値は変更可能です。また/home/hadoop/conf/yarn-site.xmlか/etc/hadoop/conf/yarn-site.xmlのyarn.resourcemanager.decommisioning.parameterを変更することでタイムアウトの秒数を指定することもできます。EMRは動的に新しい設定へ更新し、resourse managerの再起動は必要ありません。これを任意の大きな数字にすることで、クラスタを縮小する際にどのタスクもkillされないことを保証できるようになります。

Emr_resize_down_2

加えて、Amazon EMRは、実行中のYARMコンポーネントによってHDFSの一部データを保持しているcore groupからのインスタンス削除をサポートするようになります。退役処理の間、クラスタに必要なreplication factor(EMRはデフォルトではreplication factorを1-3 core nodesなら1、4-9 core nodesなら2、10以上のcore nodesなら3としています)を満たす様にHDFSはそのインスタンス上のブロックを他のアクティブなインスタンスに複製します。データロスを防ぐために、EMRはHDFSがデータ保存のために要求するストレージの要件を下回る様なクラスタの縮小は許可しませんし、退役するインスタンスから残りのインスタンスにブロックの複製が成功するだけの十分な空き容量がクラスタにあることを保証します。もし要求したインスタンスの数が既存のHDFSのデータに対して小さすぎた場合、いくつかのインスタンスだけが退役させられます。

core groupからnodeを削除する前にHDFSへの重い書き込みを最小化することをオススメします。書き込み中のブロックやレプリカブロックの不整合によってHDFSのレプリケーションは遅くなる可能性があり、それはリサイズ処理全体のパフォーマンスを低下させます。EMRクラスタのリサイズについてはこちらをクリックして下さい。

Emr_core_resize_down_2

Amazon EMRクラスタ 4.1.0は今日から使えます

EMRクラスタを4.1.0で作成するには、AWSマネジメントコンソールのクラスタ作成ページ上でリリース4.1.0を選ぶか、AWS CLIかEMR APIを通じたSDKを使う場合にはrelease labelに”emr-4.1.0”を使います。

--  Jon Fritz and Abhishek Sinha

原文: https://aws.amazon.com/jp/blogs/aws/amazon-emr-release-4-1-0-spark-1-5-0-hue-3-7-1-hdfs-encryption-presto-oozie-zeppelin-improved-resizing/ (翻訳: SA岩永)

コメント

Featured Event

2016年3 月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31