Amazon EMR リリース 5.20.0 - Amazon EMR

Amazon EMR リリース 5.20.0

5.20.0 アプリケーションバージョン

このリリースでは、次のアプリケーションがサポートされています: FlinkGangliaHBaseHCatalogHadoopHiveHueJupyterHubLivyMXNetMahoutOoziePhoenixPigPrestoSparkSqoopTensorFlowTezZeppelinZooKeeper

以下の表は、Amazon EMR のこのリリースで利用可能なアプリケーションバージョンと、前の 3 つの Amazon EMR リリース (該当する場合) で利用可能なアプリケーションバージョンを示しています。

Amazon EMR の各リリースのアプリケーションバージョンの包括的な履歴については、以下のトピックを参照してください。

アプリケーションバージョン情報
emr-5.20.0 emr-5.19.1 emr-5.19.0 emr-5.18.1
AWS SDK for Java 1.11.4611.11.4331.11.4331.11.393
Python 2.7、3.62.7、3.42.7、3.42.7、3.4
Scala 2.11.122.11.82.11.82.11.8
AmazonCloudWatchAgent - - - -
Delta - - - -
Flink1.6.21.6.11.6.11.6.0
Ganglia3.7.23.7.23.7.23.7.2
HBase1.4.81.4.71.4.71.4.7
HCatalog2.3.42.3.32.3.32.3.3
Hadoop2.8.52.8.52.8.52.8.4
Hive2.3.42.3.32.3.32.3.3
Hudi - - - -
Hue4.3.04.2.04.2.04.2.0
Iceberg - - - -
JupyterEnterpriseGateway - - - -
JupyterHub0.9.40.9.40.9.40.8.1
Livy0.5.00.5.00.5.00.5.0
MXNet1.3.11.3.01.3.01.2.0
Mahout0.13.00.13.00.13.00.13.0
Oozie5.0.05.0.05.0.05.0.0
Phoenix4.14.04.14.04.14.04.14.0
Pig0.17.00.17.00.17.00.17.0
Presto0.2140.2120.2120.210
Spark2.4.02.3.22.3.22.3.2
Sqoop1.4.71.4.71.4.71.4.7
TensorFlow1.12.01.11.01.11.01.9.0
Tez0.9.10.8.40.8.40.8.4
Trino (PrestoSQL) - - - -
Zeppelin0.8.00.8.00.8.00.8.0
ZooKeeper3.4.133.4.133.4.133.4.12

5.20.0 リリースノート

次のリリースノートには、Amazon EMR リリース 5.20.0 に関する情報が含まれています。5.19.0 からの変更が含まれています。

初回リリース日: 2018 年 12 月 18 日

最終更新: 2019 年 1 月 22 日

アップグレード
  • Flink 1.6.2

  • HBase 1.4.8

  • Hive 2.3.4

  • Hue 4.3.0

  • MXNet 1.3.1

  • Presto 0.214

  • Spark 2.4.0

  • TensorFlow 1.12.0

  • Tez 0.9.1

  • AWS SDK for Java 1.11.461

新機能
  • (2019 年 1 月 22 日) Amazon EMR の Kerberos は、外部 KDC からのプリンシパルの認証をサポートするように改善されました。これにより、複数のクラスターが単一の外部 KDC を共有できるため、プリンシパル管理が集中化されます。さらに、外部 KDC は Active Directory ドメインとのクロス領域信頼を得られます。これにより、すべてのクラスターが Active Directory からプリンシパルを認証できます。詳しくは、「Amazon EMR 管理ガイド」の「Kerberos 認証を使用する」を参照してください。

変更、機能強化、解決した問題
  • Amazon EMR のデフォルトの Amazon Linux AMI

    • Python3 パッケージが python 3.4 から 3.6 にアップグレードされました。

  • EMRFS S3 向けに最適化されたコミッター

  • [Hive]

  • Spark と Hive での Glue

    • EMR 5.20.0 以降では、メタストアとして AWS Glue Data Catalog が使用されている場合、Spark と Hive に対して並列パーティションプルーニングが自動的に有効になります。この変更により、複数のリクエストを並列に実行してパーティションを取得できるため、クエリ計画時間が大幅に短縮されます。同時に実行できるセグメントの総数は、1~10 の範囲です。デフォルト値は 5 であり、これが推奨される設定です。hive-site 設定分類の aws.glue.partition.num.segments プロパティを指定すると、これを変更できます。スロットリングが発生した場合は、値を 1 に変更して機能をオフにすることができます。詳細については、「AWS Glue セグメント構造」を参照してください。

既知の問題
  • Hue (Amazon EMR リリース 5.24.0 で修正)

    • Amazon EMR で実行される Hue では、Solr はサポートされません。Amazon EMR リリース 5.20.0 以降、誤設定の問題により Solr が有効になり、次のような無害なエラーメッセージが表示されます。

      Solr server could not be contacted properly: HTTPConnectionPool('host=ip-xx-xx-xx-xx.ec2.internal', port=1978): Max retries exceeded with url: /solr/admin/info/system?user.name=hue&doAs=administrator&wt=json (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused',))

      Solr のエラーメッセージが表示されないようにするには、以下の操作を行います。

      1. SSH を使用してプライマリノードのコマンドラインに接続します。

      2. テキストエディタを使用して、hue.ini ファイルを開きます。例:

        sudo vim /etc/hue/conf/hue.ini

      3. 語句 appblacklist を検索して、行を次のように変更します。

        appblacklist = search
      4. 変更を保存して、次の例に示すように Hue を再起動します。

        sudo stop hue; sudo start hue
  • Tez

    • この問題は、Amazon EMR 5.22.0 で修正されています。

      クラスタープライマリノードへの SSH 接続を使用して http://MasterDNS:8080/tez-ui で Tez UI に接続すると、「Adapter operation failed - Timeline server (ATS) is out of reach。Either it is down, or CORS is not enabled」(アダプタの操作に失敗しました - タイムラインサーバー (ATS) に到達できません。停止しているか、または CORS が有効になっていません) というエラーが表示されるか、タスクで予期せずに N/A と表示されます。

      これは、Tez UI がプライマリノードのホスト名ではなく localhost を使用して YARN タイムラインサーバーにリクエストを行ったことが原因で発生します。回避策として、ブートストラップアクションまたはステップとしてスクリプトを実行できます。このスクリプトで、Tez configs.env ファイル内のホスト名を更新します。スクリプトの詳細と場所については、「Bootstrap Instructions」を参照してください。

  • Amazon EMR バージョン 5.19.0、5.20.0、および 5.21.0 では、YARN ノードラベルは HDFS ディレクトリに保存されます。状況によっては、このために、コアノードの起動が遅延し、クラスターのタイムアウトや起動エラーが発生します。Amazon EMR 5.22.0 以降、この問題は解決されています。YARN ノードラベルは各クラスターノードのローカルディスクに保存され、HDFS への依存が回避されています。

  • 複数のプライマリノードと Kerberos 認証を使用するクラスターの既知の問題

    Amazon EMR リリース 5.20.0 以降で複数のプライマリノードと Kerberos 認証を使用してクラスターを実行すると、クラスターをしばらく実行した後で、スケールダウンやステップの送信などのクラスターオペレーションに問題が発生する可能性があります。期間は、定義した Kerberos チケットの有効期間によって異なります。スケールダウンの問題は、自動スケールダウンリクエストと送信した明示的なスケールダウンリクエストの両方に影響します。その他のクラスターオペレーションも影響を受ける可能性があります。

    回避方法:

    • 複数のプライマリノードを持つ EMR クラスターのリードプライマリノードに hadoop ユーザーとして SSH 接続します。

    • 次のコマンドを実行して hadoop ユーザーの Kerberos チケットを更新します。

      kinit -kt <keytab_file> <principal>

      通常、キータブファイルは /etc/hadoop.keytab にあります。プリンシパルの形式は hadoop/<hostname>@<REALM> です。

    注記

    この回避策は、Kerberos チケットが有効になっている期間、効果があります。この期間はデフォルトで 10 時間ですが、Kerberos の設定で構成できます。Kerberos チケットの有効期限が切れたら、上記のコマンドを再実行する必要があります。

5.20.0 コンポーネントバージョン

このリリースで Amazon EMR がインストールするコンポーネントを以下に示します。そのうちいくつかは、ビッグデータアプリケーションパッケージの一部としてインストールされます。その他は Amazon EMR に固有であり、システムプロセスと機能に対してインストールされます。これらは通常、emr または aws で開始されます。通常、最新の Amazon EMR リリースのビッグデータアプリケーションパッケージは、コミュニティにある最新バージョンです。コミュニティリリースは、できるだけ早く Amazon EMR で入手可能になるようにしています。

Amazon EMR の一部のコンポーネントは、コミュニティバージョンとは異なります。これらのコンポーネントには、CommunityVersion-amzn-EmrVersion の形式のバージョンラベルがあります。EmrVersion は 0 から始まります。例えば、バージョン 2.2 の myapp-component というオープンソースコミュニティコンポーネントが、異なる Amazon EMR リリースに組み込むために 3 回変更された場合、そのリリースバージョンは 2.2-amzn-2 として表示されます。

コンポーネント Version 説明
aws-sagemaker-spark-sdk1.2.1Amazon SageMaker Spark SDK
emr-ddb4.7.0Hadoop エコシステムアプリケーション用の Amazon DynamoDB コネクター。
emr-goodies2.5.1Hadoop エコシステムに役立つ追加のライブラリ。
emr-kinesis3.4.0Hadoop エコシステムアプリケーション用の Amazon Kinesis コネクター。
emr-s3-dist-cp2.10.0Amazon S3 に最適化された分散コピーアプリケーション。
emr-s3-select1.2.0EMR S3Select コネクター
emrfs2.29.0Hadoop エコシステムアプリケーション用の Amazon S3 コネクタ。
flink-client1.6.2Apache Flink のコマンドラインクライアント スクリプトとアプリケーション。
ganglia-monitor3.7.2Ganglia モニタリングエージェントとともに埋め込まれた、Hadoop エコシステムアプリケーション用 Ganglia エージェント。
ganglia-metadata-collector3.7.2Ganglia モニタリングエージェントからメトリクスを集計する Ganglia メタデータコレクター。
ganglia-web3.7.1Ganglia メタデータコレクターによって収集されたメトリクスを表示するウェブアプリケーション。
hadoop-client2.8.5-amzn-1'hdfs'、'hadoop'、'yarn' などの Hadoop コマンドラインクライアント。
hadoop-hdfs-datanode2.8.5-amzn-1ブロックを保存する HDFS ノードレベルのサービス。
hadoop-hdfs-library2.8.5-amzn-1HDFS コマンドラインクライアントとライブラリ
hadoop-hdfs-namenode2.8.5-amzn-1ファイル名を追跡し、場所をブロックする HDFS サービス。
hadoop-httpfs-server2.8.5-amzn-1HDFS オペレーションの HTTP エンドポイント。
hadoop-kms-server2.8.5-amzn-1Hadoop の KeyProvider API に基づく暗号キー管理サーバー。
hadoop-mapred2.8.5-amzn-1MapReduce アプリケーションを実行する MapReduce 実行エンジンライブラリ。
hadoop-yarn-nodemanager2.8.5-amzn-1個別のノードでコンテナを管理する YARN サービス。
hadoop-yarn-resourcemanager2.8.5-amzn-1クラスターリソースおよび分散アプリケーションを割り当て、管理する YARN サービス。
hadoop-yarn-timeline-server2.8.5-amzn-1YARN アプリケーションの現在の情報と履歴情報を取得するためのサービス。
hbase-hmaster1.4.8リージョンの調整および管理コマンドの実行を行う HBase クラスター用のサービス。
hbase-region-server1.4.81 つ以上の HBase リージョンに対応するサービス。
hbase-client1.4.8HBase コマンドラインクライアント。
hbase-rest-server1.4.8HBase の RESTful HTTP エンドポイントを提供するサービス。
hbase-thrift-server1.4.8HBase に Thrift エンドポイントを提供するサービス。
hcatalog-client2.3.4-amzn-0hcatalog-server を操作するための 'hcat' コマンドラインクライアント。
hcatalog-server2.3.4-amzn-0分散アプリケーション用のテーブルおよびストレージ管理レイヤーである HCatalog を提供するサービス。
hcatalog-webhcat-server2.3.4-amzn-0HCatalog に REST インターフェイスを提供する HTTP エンドポイント。
hive-client2.3.4-amzn-0Hive コマンドラインクライアント。
hive-hbase2.3.4-amzn-0Hive-hbase クライアント。
hive-metastore-server2.3.4-amzn-0Hadoop オペレーションの SQL 用のメタデータを保存するセマンティックレポジトリである Hive メタストアにアクセスするためのサービス。
hive-server22.3.4-amzn-0Hive クエリをウェブリクエストとして受け入れるサービス。
hue-server4.3.0Hadoop エコシステムアプリケーションを使用してデータを分析するウェブアプリケーション
jupyterhub0.9.4Jupyter Notebook のマルチユーザーサーバー
livy-server0.5.0-incubatingApache Spark を操作するための REST インターフェイス
nginx1.12.1nginx [engine x] は HTTP およびリバースプロキシサーバー
mahout-client0.13.0機械学習用のライブラリ。
mxnet1.3.1フレキシブルかつスケーラブルで、ディープラーニングにおいて効率的なライブラリです。
mysql-server5.5.54+MySQL データベースサーバー。
nvidia-cuda9.2.88Nvidia ドライバーと Cuda ツールキット
oozie-client5.0.0Oozie コマンドラインクライアント。
oozie-server5.0.0Oozie ワークフローリクエストを受け入れるサービス。
opencv3.4.0オープンソースのコンピュータビジョンライブラリ。
phoenix-library4.14.0-HBase-1.4サーバーとクライアントの Phoenix ライブラリ
phoenix-query-server4.14.0-HBase-1.4JDBC のアクセス、プロトコルのバッファ、および Avatica API への JSON 形式のアクセスを提供するし軽量サーバー
presto-coordinator0.214presto-worker 間でクエリを受け入れ、クエリの実行を管理するサービス。
presto-worker0.214いくつかのクエリを実行するサービス。
pig-client0.17.0Pig コマンドラインクライアント。
r3.4.1統計的コンピューティング用 R プロジェクト
spark-client2.4.0Spark コマンドラインクライアント。
spark-history-server2.4.0完了した Spark アプリケーションの有効期間にログに記録されたイベントを表示するウェブ UI。
spark-on-yarn2.4.0YARN のメモリ内実行エンジン。
spark-yarn-slave2.4.0YARN スレーブで必要な Apache Spark ライブラリ。
sqoop-client1.4.7Apache Sqoop コマンドラインクライアント。
tensorflow1.12.0TensorFlow は、高性能数値計算用のオープンソースのソフトウェアライブラリです。
tez-on-yarn0.9.1tez YARN アプリケーションおよびライブラリ。
webserver2.4.25+Apache HTTP サーバー。
zeppelin-server0.8.0インタラクティブなデータ分析を可能にするウェブベースのノートブック。
zookeeper-server3.4.13設定情報を維持し、名前を付け、分散化された同期を提供し、グループサービスを提供する一元化されたサービス。
zookeeper-client3.4.13ZooKeeper コマンドラインクライアント。

5.20.0 設定分類

設定分類を使用すると、アプリケーションをカスタマイズできます。これらは多くの場合、hive-site.xml などのアプリケーションの構成 XML ファイルに対応します。詳細については、「アプリケーションの設定」を参照してください。

emr-5.20.0 の分類
分類 説明

capacity-scheduler

Hadoop の capacity-scheduler.xml ファイルの値を変更します。

container-log4j

Hadoop YARN の container-log4j.properties ファイルの値を変更します。

core-site

Hadoop の core-site.xml ファイルの値を変更します。

emrfs-site

EMRFS の設定を変更します。

flink-conf

flink-conf.yaml の設定を変更します。

flink-log4j

Flink log4j.properties の設定を変更します。

flink-log4j-yarn-session

Flink log4j-yarn-session.properties の設定を変更します。

flink-log4j-cli

Flink log4j-cli.properties の設定を変更します。

hadoop-env

Hadoop のすべてのコンポーネントに対する Hadoop 環境の値を変更します。

hadoop-log4j

Hadoop の log4j.properties ファイルの値を変更します。

hadoop-ssl-server

Hadoop ssl のサーバー設定を変更します。

hadoop-ssl-client

Hadoop ssl のクライアント設定を変更します。

hbase

Apache HBase 用の Amazon EMR-curated 設定。

hbase-env

HBase の環境の値を変更します。

hbase-log4j

HBase の hbase-log4j.properties ファイルの値を変更します。

hbase-metrics

HBase の hadoop-metrics2-hbase.properties ファイルの値を変更します。

hbase-policy

HBase の hbase-policy.xml ファイルの値を変更します。

hbase-site

HBase の hbase-site.xml ファイルの値を変更します。

hdfs-encryption-zones

HDFS 暗号化ゾーンを設定します。

hdfs-site

HDFS の hdfs-site.xml の値を変更します。

hcatalog-env

HCatalog 環境の値を変更します。

hcatalog-server-jndi

HCatalog の jndi.properties の値を変更します。

hcatalog-server-proto-hive-site

HCatalog の proto-hive-site.xml の値を変更します。

hcatalog-webhcat-env

HCatalog WebHCat 環境の値を変更します。

hcatalog-webhcat-log4j2

HCatalog WebHCat の log4j2.properties の値を変更します。

hcatalog-webhcat-site

HCatalog WebHCat の webhcat-site.xml ファイルの値を変更します。

hive-beeline-log4j2

Hive の beeline-log4j2.properties ファイルの値を変更します。

hive-parquet-logging

Hive の parquet-logging.properties ファイルの値を変更します。

hive-env

Hive 環境の値を変更します。

hive-exec-log4j2

Hive の hive-exec-log4j2.properties ファイルの値を変更します。

hive-llap-daemon-log4j2

Hive の llap-daemon-log4j2.properties ファイルの値を変更します。

hive-log4j2

Hive の hive-log4j2.properties ファイルの値を変更します。

hive-site

Hive の hive-site.xml ファイルの値を変更します

hiveserver2-site

Hive Server2 の hiveserver2-site.xml ファイルの値を変更します

hue-ini

Hue の ini ファイルの値を変更します

httpfs-env

HTTPFS 環境の値を変更します。

httpfs-site

Hadoop の httpfs-site.xml ファイルの値を変更します。

hadoop-kms-acls

Hadoop の kms-acls.xml ファイルの値を変更します。

hadoop-kms-env

Hadoop KMS 環境の値を変更します。

hadoop-kms-log4j

Hadoop の kms-log4j.properties ファイルの値を変更します。

hadoop-kms-site

Hadoop の kms-site.xml ファイルの値を変更します。

jupyter-notebook-conf

Jupyter Notebook の jupyter_notebook_config.py ファイルの値を変更します。

jupyter-hub-conf

JupyterHubs の jupyterhub_config.py ファイルの値を変更します。

jupyter-s3-conf

Jupyter Notebook の S3 の永続性を設定します。

jupyter-sparkmagic-conf

Sparkmagic の config.json ファイルの値を変更します。

livy-conf

Livy の livy.conf ファイルの値を変更します。

livy-env

Livy 環境の値を変更します。

livy-log4j

Livy の log4j.properties の設定を変更します。

mapred-env

MapReduce アプリケーションの環境の値を変更します。

mapred-site

MapReduce アプリケーションの mapred-site.xml ファイルの値を変更します。

oozie-env

Oozie の環境の値を変更します。

oozie-log4j

Oozie の oozie-log4j.properties ファイルの値を変更します。

oozie-site

Oozie の oozie-site.xml ファイルの値を変更します。

phoenix-hbase-metrics

Phoenix の hadoop-metrics2-hbase.properties ファイルの値を変更します。

phoenix-hbase-site

Phoenix の hbase-site.xml ファイルの値を変更します。

phoenix-log4j

Phoenix の log4j.properties ファイルの値を変更します。

phoenix-metrics

Phoenix の hadoop-metrics2-phoenix.properties ファイルの値を変更します。

pig-env

Pig 環境の値を変更します。

pig-properties

Pig の pig.properties ファイルの値を変更します。

pig-log4j

Pig の log4j.properties ファイルの値を変更します。

presto-log

Presto の log.properties ファイルの値を変更します。

presto-config

Presto の config.properties ファイルの値を変更します。

presto-password-authenticator

Presto の password-authenticator.properties ファイルの値を変更します。

presto-env

Presto の presto-env.sh ファイルの値を変更します。

presto-node

Presto の node.properties ファイルの値を変更します。

presto-connector-blackhole

Presto の blackhole.properties ファイルの値を変更します。

presto-connector-cassandra

Presto の cassandra.properties ファイルの値を変更します。

presto-connector-hive

Presto の hive.properties ファイルの値を変更します。

presto-connector-jmx

Presto の jmx.properties ファイルの値を変更します。

presto-connector-kafka

Presto の kafka.properties ファイルの値を変更します。

presto-connector-localfile

Presto の localfile.properties ファイルの値を変更します。

presto-connector-memory

Presto の memory.properties ファイルの値を変更します。

presto-connector-mongodb

Presto の mongodb.properties ファイルの値を変更します。

presto-connector-mysql

Presto の musql.properties ファイルの値を変更します。

presto-connector-postgresql

Presto の postgresql.properties ファイルの値を変更します。

presto-connector-raptor

Presto の raptor.properties ファイルの値を変更します。

presto-connector-redis

Presto の redis.properties ファイルの値を変更します。

presto-connector-redshift

Presto の redshift.properties ファイルの値を変更します。

presto-connector-tpch

Presto の tpcj.properties ファイルの値を変更します。

presto-connector-tpcds

Presto の tpcds.properties ファイルの値を変更します。

spark

Apache Spark 用の Amazon EMR-curated 設定。

spark-defaults

Spark の spark-defaults.conf ファイルの値を変更します。

spark-env

Spark 環境の値を変更します。

spark-hive-site

Spark の hive-site.xml ファイルの値を変更します

spark-log4j

Spark の log4j.properties ファイルの値を変更します。

spark-metrics

Spark の metrics.properties ファイルの値を変更します。

sqoop-env

Sqoop の環境の値を変更します。

sqoop-oraoop-site

Sqoop OraOop の oraoop-site.xml ファイルの値を変更します。

sqoop-site

Sqoop の sqoop-site.xml ファイルの値を変更します。

tez-site

Tez の tez-site.xml ファイルの値を変更します。

yarn-env

YARN 環境の値を変更します。

yarn-site

YARN の yarn-site.xml ファイルの値を変更します。

zeppelin-env

Zeppelin 環境の値を変更します。

zookeeper-config

ZooKeeper の zoo.cfg ファイルの値を変更します。

zookeeper-log4j

ZooKeeper の log4j.properties ファイルの値を変更します。