Category: Amazon EMR*


さあ、Amazon EMRで、Apache Flinkを使って、大規模なリアルタイムストリーム処理を実行しよう

Amazon EMR リリース5.1.0

Amazon EMRリリース5.1.0で、Apache Flink 1.1.3と、バージョンアップしたApache Zeppelin(0.6.2)Apache HBase(1.2.3)が利用できるようになりました。また、Hueのinteractive notebookが、Prestoを用いたクエリをサポートしました。

Apache Flinkは、高スループットのデータソースに対して、簡単にリアルタイムストリーム処理を実行できる、ストリーミングデータフローエンジンです。順不同なイベントに対するイベントタイムセマンティクスや、exactly-onceセマンティクス、バックプレッシャー制御、そして、ストリーミングバッチ処理どちらにも最適化されたAPIを兼ね備えています。さらに、Flinkは、Amazon Kinesis StreamsApache KafkaElasticsearchTwitter Streaming API、それから、Cassandraへのコネクターを持っており、さらに、Amazon S3(EMRFS経由)やHDFSにアクセスすることもできます。

AWSマネージメントコンソール、AWS CLI、または、SDKから、リリースラベル「emr-5.1.0」を選択して、リリース5.1.0のAmazon EMRクラスターを作成することができます。Flink、Zeppelin、それから、HBaseを指定して、これらのアプリケーションをクラスターにインストールすることができます。リリース5.1.0や、Flink 1.1.3Zeppelin 0.6.2HBase 1.2.3についての、より詳細な情報については、Amazon EMRのドキュメントをぜひご確認下さい。(原文)

Amazon EMRでApache Flinkを利用する

Apache Flinkは、お客様の間でリアルタイムビッグデータアプリケーションを構築するために使われている、並列データ処理エンジンです。Flinkによって、例えばAmazon Kinesis StreamsApache Cassandraデータベースのような、たくさんの異なるデータソースを変換することができるようになります。バッチとストリーミングどちらのAPIも提供しています。また、Flinkは、これらのストリームやバッチデータセットに対するSQLも、多少サポートしています。多くのFlinkのAPIのアクションは、Apache HadoopやApache Sparkにおける分散オブジェクトコレクションの変換と、非常に類似しています。FlinkのAPIは、DataSetとDataStreamに分類されます。DataSetは、分散データのセットやコレクションの変換ですが、一方で、DataStreamは、Amazon Kinesisに見られるようなストリーミングデータの変換です。

Flinkは、純粋なデータストリーミング実行エンジンです。リアルタイムに以前のデータ変換結果を操作するためのパイプライン並列処理を有しています。つまり、複数の操作を並行して実行できます。Flinkのランタイムは、これらの変換パイプライン間のデータの交換をハンドリングします。また、例えバッチ処理を記述したとしても、同一のFlinkストリーミングデータフローランタイムが、その処理を実行します。

Flinkのランタイムは、2つの異なるタイプのデーモンで構成されています。スケジューリング、チェックポイント、リカバリーといった機能をまとめる責任を担うJobManagerと、アプリケーション内のストリーム間のデータ転送やタスクの実行を担うワーカープロセスであるTaskManagerです。それぞれのアプリケーションは、ひとつのJobManagerと、ひとつ以上のTaskManagerを持ちます。

TaskManagerの数をスケールさせることができますが、同時に「タスクスロット」と呼ばれるものを使って、並列処理をさらに制御しなければなりません。Flink-on-YARNでは、JobManagerは、YARNのApplicationMasterに内包されます。一方で、個々のTaskManagerは、そのアプリケーションのために割り当てられた別々のYARNコンテナに配置されます。

本日(11/3)、Amazon EMRリリース5.1.0でネイティブサポートしたことにより、AWS上でFlinkを実行することが、さらに簡単になりました。EMRがFlink-on-YARNの実行をサポートしたことにより、複数のジョブを受け付けるロングランニングクラスターを作成することも、利用中の料金のみにコストを抑えるために一時的なクラスターでショートランニングのFlinkセッションを作成することも、どちらも可能です。

ロギングや設定パラメータ用の設定分類を、EMRの設定APIを使って、Flinkがインストールされたクラスターに設定することもできます。

直接EMRコンソールから、もしくは、以下のようにCLIを実行すれば、今日からEMRでFlinkの利用を開始できます。

aws emr create-cluster --release-label emr-5.1.0 \
 --applications Name=Flink \
 --region us-east-1 \
 --log-uri s3://myLogUri \
 --instance-type m3.xlarge \
 --instance-count 1 \
 --service-role EMR_DefaultRole \
 --ec2-attributes KeyName=YourKeyName,InstanceProfile=EMR_EC2_DefaultRole

Apache Flinkについてもっと知りたいという方は、Apache Flinkのドキュメントをご確認下さい。そして、EMRでのFlinkについてもっと知りたいという方は、ぜひAmazon EMRリリースガイドのFlinkトピックをご確認下さい。(原文)

翻訳: 半場 光晴

Amazon EMR に保存データと転送中データの暗号化オプションを追加

AWS をご利用のお客様は Amazon EMR (Apache HadoopApache Spark エコシステムを形成する全範囲のツールを含む) を使用して様々なタイプのミッションクリティカルなビッグデータのユースケースを処理しています。以下の例をご覧ください。

  • Yelp 毎日テラバイト以上のログファイルと写真を処理
  • Expedia クリックストリーム、ユーザー操作、データ提供を処理
  • FINRA 毎日数十億件の証券取引の記録を分析
  • DataXu 毎月 30 兆件の広告チャンスを判断

こうしたお客様 (詳しくはその他のビッグデータのユースケースを参照) は、多くの場合ミッションクリティカルであり安全に保護する必要がある重要なデータを処理しています。

AWS では、EMRFS を使用する Amazon S3 や HDFS の透過的なデータ暗号化など、EMR 用のデータ暗号化オプションを複数ご提供しています。こうしたソリューションは保存データを保護する場合には優れていますが、一時ファイルに保存しているデータやジョブステップの間にあるデータには対処していません。暗号化オプションはそれぞれ有効にしてから設定する必要があるため、暗号化の実装を必要以上に面倒なものにしていました。

ただし、それはもう過去のこと。

新しい暗号化のサポート
本日、AWS は EMR の新しい包括的な暗号化ソリューションをリリースしました。今後は EMR で使用する Apache Spark、Apache Tez、Hadoop MapReduce で保存データや転送中データを簡単に暗号化することができます。

保存データの暗号化は次のストレージタイプに対処しています。

  • EMRFS 経由で S3 に保存したデータ
  • 各ノードのローカルファイルシステムで保存したデータ
  • HDFS を使用してクラスターに保存したデータ

転送中データの暗号化は次のフレームワークでネイティブなオープンソースの暗号化機能を利用します。

  • Apache Spark
  • Apache Tez
  • Apache Hadoop MapReduce

この新機能は Amazon EMR セキュリティ設定を使用して設定することができます。EMR コンソールEMR CLI、または EMR API 経由で設定を作成できます。
EMR コンソールに一連のセキュリティ設定が追加されました。

新しく作成するには [Create] をクリックします。

名前を入力してから新機能に指定するモードと各アスペクトを入力します。モードやタイプに基づき、コンソールが追加情報の入力をリクエストします。
S3 暗号化:

ローカルディスクの暗号化:

転送中データの暗号化

証明書プロバイダーのタイプを PEM にした場合は、暗号化に使用したい PEM ファイルを含む Zip ファイルの S3 内の保存先を入力してください。カスタムを選択した場合は、JAR ファイルの S3 内の保存先とカスタム証明書プロバイダーのクラス名を入力してください。

希望通りに設定したら [Create] をクリックします。セキュリティ設定がコンソールに表示されます。

この操作を完了後、新しく EMR クラスターを作成する際に設定を特定できるようになります。この機能は Amazon EMR リリース 4.8.0 または 5.0.0 を使用しているクラスターでご利用いただけます。詳しくは「セキュリティ設定を使用した Amazon EMR の暗号化」をご覧ください。

Jeff;

Amazon EMR 5.0.0 – メジャーアプリアップデート、UI改善、デバッグ改善、その他

Amazon EMRチームは新しいリリースをものすごい勢いでリリースし続けています。今年のローンチを振り返ってみましょう:

  • EMR 4.7.0 – Apache Tez, Apache Phoenix, Presto, HBase, Mahout (6月)
  • EMR 4.6.0 – 巨大データへのリアルタイムアクセス用に、HBase (4月)
  • EMR 4.5.0 – Hadoop, Presto, SparkとEMRFS追加 (4月)
  • EMR 4.4.0 – Sqoop, HCatalog, Java 8, 他 (3月)
  • EMR 4.3.0 – Spark, Presto, Ganglia (1月)

今日、チームからEMR 5.0.0が発表されました。こちらはメジャーリリースとなり、16のオープンソースのHadoopエコシステムプロジェクトをサポートしています。SparkとHiveのメジャーバージョンアップ、TezがHiveとPigのデフォルトに、HueとZeppelinのUI改善、そしてデバッグ機能の改良が含まれています。

こちらは過去の幾つかのリリースでEMRがどの様に進化してきたかの図になります。

それではEMR 5.0.0の新しい機能をチェックしてみましょう!

16のオープンソースHadoopエコシステムプロジェクトのサポート

EMR 4.0.0の開発からEMRのビルドとパッケージング処理を管理するために、Apache Bigtopを使い始めました。最新のGA (一般利用可能)なオープンソースのバージョンを出来る限り早くアクセス可能にするというゴールのために、Hadoopエコシステムから新しいパッケージを追加し続けながらもリリースサイクルを加速することができたのはBigtopのおかげです。

そのゴールのもとに、EMR 5.0は16のHadoopエコシステムプロジェクトをサポートしていて、その中にはApache Hadoop, Apache Spark, Presto, Apache Hive, Apache HBase, そしてApache Tezが含まれます。EMRクラスタ作成時に、必要なアプリを選択することができます。

SparkとHiveのメジャーバージョンアップグレード

今回のEMRのリリースより、Hive (TezやHadoop MapReduceのSQL風インタフェース)が1.0から2.1にアップデートされ、同時にJava 8に移行しました。また、Spark (巨大データ処理エンジン)も1.6.2から2.0へアップデートされ、同時にScala 2.11に移行しました。SparkとHiveのアップデートは共にメジャーリリースで、新しい機能、パフォーマンス改善、そしてバグ修正が含まれています。例えば、SparkではStructured Streaming APIの追加、SQLサポートの改良等が含まれています。ただし、新しいバージョンのSparkとHiveは100%の後方互換を持っていません。なので、お使いのコードでの動作を確認しながらEMR 5.0.0への更新を行って下さい。

今回のリリースから、Hive 2.1とPig 0.16ではHadoop MapReduceに代わりTezがデフォルトエンジンになり、パフォーマンスが改善され、クエリのレイテンシが削減されています。このアップデートにより、MapReduceはHadoop MapReduceジョブが直接実行された時のみ使われることになりました。(HiveとPigはTezを使いますし、Sparkは独自のフレームワークを持っています)

UI改善

またEMR 5.0.0では、Apache Zeppelin (対話的データ分析のためのノートブック)を0.5.6から0.6.1に、Hue (Hadoopのデータを分析するためのインタフェース)を3.7.1から3.10にアップデートしました。これらウェブベースのツールの新しいバージョンでは、新しい機能や多数の細かい改善が含まれています。

ZeppelinはSparkとよく一緒に使われ、HueはHive, Pig, HBaseと協調します。新しいバージョンのHueはノートブックの機能が追加され、複数のクエリを1つの同じページから実行することができるようになりました。

HueはOozieのワークフローのデザインもできます:

デバッグ機能の改善

最後に、EMR 5.0.0はデバッグ機能の改善も含まれていて、特定のEMRジョブのステップがなぜ失敗したのかを簡単に調べることができます。コンソールにはスタックトレースの一部とログファイル(Amazon S3に保存)へのリンクが表示され、簡単に調べてトラブルシュートしてエラーを修正することができます。

今日からクラスタが起動できます

EMR 5.0.0は今日から全てのAWSリージョンで起動することができます!EMRコンソールを開き、クラスタの作成をクリックし、リリースメニューからemr-5.0.0を選ぶだけです。

詳細な情報はこちら

この強力な新しいEMRのリリースをもっと詳しく知りたい場合には、8月23日のウェビナー Introducing Amazon EMR Release 5.0: Faster, Easier, Hadoop, Spark, and Prestoへの参加もご検討下さい。

Jeff;

原文: Amazon EMR 5.0.0 – Major App Updates, UI Improvements, Better Debugging, and More (翻訳: SA岩永)

Amazon EMR 4.7.0 – Apache TezとPhoenix, 既存アプリのアップデート

Amazon EMRを使えば素早くコスト効率よく大量のデータを処理することができます。2009年のローンチ以来、数多くの新機能と増え続けるHadoopエコシステムのアプリケーション達のサポートを追加してきました。以下は今年に入ってから追加したもののうちのいくつかになります。

本日またさらに一歩進めて、Apache Tez (データフロー駆動なデータ処理タスクの協調)とApache Phoenix (OLTPや業務分析のための高速なSQL)を新たにサポートし、合わせて既存のいくつかのアプリを更新しました。これらの新規や更新されたアプリケーションを使うためには、Amazon EMRのリリース4.7.0でクラスタを起動する必要があります。

新規 – Apache Tez (0.8.3)

TezはApache Hadoop YARN上で動きます。Tezはデータフローを定義するためのAPIを提供し、それによってデータ処理タスクのDAG (有向非巡回グラフ)を定義することができます。TezはHadoop MapReduceより高速になり得て、HiveとPigの両方と一緒に使うことができます。より詳しくは、EMRリリースガイドをご覧下さい。Tez UIにはDAGの可視化も含まれています:

UIは各DAGの詳細な情報も表示できます。

新規 – Apache Phoenix (4.7.0)

PhoenixはデータストアとしてHBase (Hadoopエコシステムのメンバーの1人)を使います。PhoenixにはJDBCドライバを使って、同じクラスタや他のクラスタ上で実行されているアプリケーションから接続可能です。いずれの方法でも、高速で低レイテンシで完全なACIDトランザクション機能をもったSQLでアクセスすることができます。SQLクエリはHBaseスキャンの手順にコンパイルされ、並列でスキャンし、各々の結果を集約することで結果セットを生成します。より詳しくはPhoenix Quick Start GuideApache Phoenix Overviewのプレゼンテーションをご覧下さい。

アプリケーションの更新

また、以下のアプリケーションを更新しています:

  • HBase 1.2.1 – HBaseは低レイテンシで大量のデータにランダムアクセスできます。新しいバージョンはいくつかのバグ修正を含みます。
  • Mahout 0.12.0 – Mahoutはスケール可能な機械学習やデータマイニングを提供します。新しいバージョンには大量の数学や統計の機能が含まれています。
  • Presto 0.147 – Prestoは大量のデータセットのために設計された分散SQLクエリエンジンです。新しいバージョンは機能追加とバグ修正が含まれます。

Amazon Redshift JDBCドライバ

RedshiftのJDBCドライバを使うことで、EMRクラスタ上のアプリケーションからRedshiftクラスタにアクセスしデータを更新することができます。2つのバージョンのドライバがクラスタにインストールされています。

  • JDBC 4.0 互換 – /usr/share/aws/redshift/jdbc/RedshiftJDBC4.jar.
  • JDBC 4.1 互換 – /usr/share/aws/redshift/jdbc/RedshiftJDBC41.jar.

新しいアプリケーションを使い始めるには、単純にあたらしいEMRクラスタを起動し、その際にリリース4.7.0を選択し必要とするアプリケーションを選択するだけです。

Jeff;

原文: https://aws.amazon.com/blogs/aws/amazon-emr-4-7-0-apache-tez-phoenix-updates-to-existing-apps/ (翻訳: SA岩永)