Amazon Web Services ブログ

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 StreamsやApache Kafka、Elasticsearch、Twitter 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.3、Zeppelin 0.6.2、HBase 1.2.3についての、より詳細な情報については、Amazon EMRのドキュメントをぜひご確認下さい。(原文) Amazon EMRでApache Flinkを利用する Apache Flinkは、お客様の間でリアルタイムビッグデータアプリケーションを構築するために使われている、並列データ処理エンジンです。Flinkによって、例えばAmazon Kinesis StreamsやApache 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 \ […]

Read More

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

AWS をご利用のお客様は (Apache Hadoop と Apache 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 […]

Read More

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 […]

Read More

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

Amazon EMRを使えば素早くコスト効率よく大量のデータを処理することができます。2009年のローンチ以来、数多くの新機能と増え続けるHadoopエコシステムのアプリケーション達のサポートを追加してきました。以下は今年に入ってから追加したもののうちのいくつかになります。 4月 – Apache HBase 1.2のサポート(EMR4.6) 3月 – Sqoop、HCatalog、Java 8、他のサポート (EMR 4.4) 2月 – EBSボリューム、M4インスタンス、C4インスタンスのサポート 1月 – Apache Sparkのサポートと他のアプリケーションの更新 本日またさらに一歩進めて、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 GuideやApache Phoenix Overviewのプレゼンテーションをご覧下さい。 アプリケーションの更新 また、以下のアプリケーションを更新しています: HBase 1.2.1 – […]

Read More