本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon 5.22.0 EMR版
5.22.0 應用程式版本
此版本支援下列應用程式: Flink
下表列出此版本 Amazon 中可用的應用程式版本,EMR以及前三個 Amazon EMR版本 (如適用) 中的應用程式版本。
如需每個 Amazon 版本應用程式版本的全面歷史記錄EMR,請參閱下列主題:
emr-5.22.0 | emr-5.21.2 | emr-5.21.1 | emr-5.21.0 | |
---|---|---|---|---|
AWS SDK 適用於 Java | 1.11.510 | 1.11.479 | 1.11.479 | 1.11.479 |
Python | 2.7、3.6 | 2.7、3.6 | 2.7、3.6 | 2.7、3.6 |
Scala | 2.11.12 | 2.11.12 | 2.11.12 | 2.11.12 |
AmazonCloudWatchAgent | - | - | - | - |
Delta | - | - | - | - |
Flink | 1.7.1 | 1.7.0 | 1.7.0 | 1.7.0 |
Ganglia | 3.7.2 | 3.7.2 | 3.7.2 | 3.7.2 |
HBase | 149 | 1.4.8 | 1.4.8 | 1.4.8 |
HCatalog | 2.3.4 | 2.3.4 | 2.3.4 | 2.3.4 |
Hadoop | 2.8.5 | 2.8.5 | 2.8.5 | 2.8.5 |
Hive | 2.3.4 | 2.3.4 | 2.3.4 | 2.3.4 |
Hudi | - | - | - | - |
Hue | 4.3.0 | 4.3.0 | 4.3.0 | 4.3.0 |
Iceberg | - | - | - | - |
JupyterEnterpriseGateway | - | - | - | - |
JupyterHub | 0.9.4 | 0.9.4 | 0.9.4 | 0.9.4 |
Livy | 0.5.0 | 0.5.0 | 0.5.0 | 0.5.0 |
MXNet | 1.3.1 | 1.3.1 | 1.3.1 | 1.3.1 |
Mahout | 0.13.0 | 0.13.0 | 0.13.0 | 0.13.0 |
Oozie | 5.1.0 | 5.0.0 | 5.0.0 | 5.0.0 |
Phoenix | 4.14.1 | 4.14.0 | 4.14.0 | 4.14.0 |
Pig | 0.17.0 | 0.17.0 | 0.17.0 | 0.17.0 |
Presto | 0.215 | 0.215 | 0.215 | 0.215 |
Spark | 2.4.0 | 2.4.0 | 2.4.0 | 2.4.0 |
Sqoop | 1.4.7 | 1.4.7 | 1.4.7 | 1.4.7 |
TensorFlow | 1.12.0 | 1.12.0 | 1.12.0 | 1.12.0 |
Tez | 0.9.1 | 0.9.1 | 0.9.1 | 0.9.1 |
Trino (Presto SQL) | - | - | - | - |
Zeppelin | 0.8.1 | 0.8.0 | 0.8.0 | 0.8.0 |
ZooKeeper | 3.4.13 | 3.4.13 | 3.4.13 | 3.4.13 |
5.22.0 版本備註
下列版本備註包含 Amazon 5.22.0 EMR版的資訊。變更是相對於 5.21.0 版而言。
重要
從 Amazon 5.22.0 EMR版開始,Amazon 只會EMR使用 AWS Signature 第 4 版來驗證對 Amazon S3 的請求。Amazon 早期EMR版本在某些情況下使用 AWS Signature 第 2 版,除非版本備註指出 Signature 第 4 版僅供使用。如需詳細資訊,請參閱 Amazon Simple Storage Service 開發人員指南 中的驗證請求 (AWS 簽章版本 4) 和驗證請求 (AWS 簽章版本 2)。
初始版本日期:2019 年 3 月 20 日
升級
Flink 1.7.1
HBase 1.4.9
Oozie 5.1.0
Phoenix 4.14.1
Zeppelin 0.8.1
-
連接器和驅動程式:
DynamoDB 連接器 4.8.0
MariaDB 連接器 2.2.6
Amazon Redshift JDBC驅動程式 1.2.20.1043
新功能
已使用EBS僅限 的儲存體修改EC2執行個體類型的預設EBS組態。當您使用 Amazon 5.22.0 版及更新EMR版本建立叢集時,預設的EBS儲存量會根據執行個體的大小而增加。此外,我們在多個磁碟區中分割增加的儲存空間,從而提高IOPS效能。如果您想要使用不同的EBS執行個體儲存組態,您可以在建立EMR叢集或將節點新增至現有叢集時指定它。如需每個執行個體類型預設配置的儲存體數量和磁碟區數量的詳細資訊,請參閱 Amazon EMR管理指南 中的執行個體預設EBS儲存體。
變更、強化功能和已解決的問題
Spark
在 YARN、 上為 Spark 引入了新的組態屬性
spark.yarn.executor.memoryOverheadFactor
。此屬性的值是一個縮放比例,可將記憶體超額使用的值設為執行器記憶體的某個百分比,最小為 384 MB。若使用spark.yarn.executor.memoryOverhead
明確設定記憶體超額使用,此屬性不會發生作用。預設值為0.1875
,表示 18.75%。Amazon 的這項預設值在執行器記憶體額外負荷的YARN容器中EMR留出的空間比 Spark 內部設定的 10% 預設值更多。Amazon 預設 EMR 18.75% 的經驗顯示 TPC-DS 基準中的記憶體相關故障較少。後端 SPARK-26316
可改善效能。
在 Amazon 5.19.0、5.20.0 和 5.21.0 EMR版中,YARN節點標籤會儲存在HDFS目錄中。在某些情況下,這會導致核心節點啟動延遲,然後造成叢集逾時與啟動失敗。從 Amazon EMR 5.22.0 開始,此問題已解決。YARN 節點標籤存放在每個叢集節點的本機磁碟上,避免依賴 HDFS。
已知問題
-
Hue (修正於 Amazon 5.24.0 EMR版)
-
在 Amazon 上執行的 Hue EMR不支援 Solr。從 Amazon 5.20.0 EMR版開始,錯誤組態問題會導致 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 錯誤訊息:
使用 連線至主要節點命令列SSH。
使用文字編輯器開啟
hue.ini
檔案。例如:sudo vim /etc/hue/conf/hue.ini
搜尋
appblacklist
一詞並如下方所示修改該列:appblacklist = search
儲存變更並重新啟動 Hue,如以下範例所示:
sudo stop hue; sudo start hue
-
-
使用多個主節點和 Kerberos 身分驗證的叢集中存在的已知問題
如果您在 Amazon 5.20.0 版及更新EMR版本中執行具有多個主節點的叢集和 Kerberos 身分驗證,則可能會在叢集執行一段時間後遇到叢集操作的問題,例如縮減規模或提交步驟。時段取決於您定義的 Kerberos 票證有效期。規模調減問題會同時影響自動縮減規模和您提交的明確縮減規模請求。其他叢集操作也可能受影響。
解決方法:
-
SSH 作為具有多個主要節點之EMR叢集的主要節點
hadoop
的使用者。 -
執行以下命令,以更新
hadoop
使用者的 Kerberos 票證。kinit -kt <keytab_file> <principal>
一般而言,Keytab 檔案位於
/etc/hadoop.keytab
,而主體則採用hadoop/<hostname>@<REALM>
的形式。
注意
此解決辦法的有效期間和 Kerberos 票證的有效期間相同。此持續時間預設為 10 個小時,但可以透過您的 Kerberos 設定進行變更。若 Kerberos 票證過期,您必須重新執行上述命令。
-
5.22.0 元件版本
Amazon 使用此版本EMR安裝的元件如下所列。其中有一些屬於大數據應用程式套件。其他則對 Amazon 而言是獨一無二的EMR,並針對系統程序和功能進行安裝。這些通常會以 emr
或 aws
開頭。Amazon EMR最新版本中的大數據應用程式套件通常是社群中發現的最新版本。我們會EMR盡快在 Amazon 中提供社群版本。
Amazon 中的某些元件與社群版本EMR不同。這些元件具有版本標籤,格式為
。CommunityVersion
-amzn-EmrVersion
從 0 開始。例如,如果使用 2.2 版命名EmrVersion
myapp-component
的開放原始碼社群元件已修改三次,以包含在不同的 Amazon EMR版本中,則其發行版本會列為 2.2-amzn-2
。
元件 | 版本 | 描述 |
---|---|---|
aws-sagemaker-spark-sdk | 1.2.1 | Amazon SageMaker Spark SDK |
emr-ddb | 4.8.0 | 適用於 Hadoop 生態系統應用程式的 Amazon DynamoDB 連接器。 |
emr-goodies | 2.6.0 | 適用 Hadoop 生態系統的超便利程式庫。 |
emr-kinesis | 3.4.0 | 適用於 Hadoop 生態系統應用程式的 Amazon Kinesis 連接器。 |
emr-s3-dist-cp | 2.11.0 | 針對 Amazon S3 最佳化的分散式複製應用程式。 |
emr-s3-select | 1.2.0 | EMR S3Select 連接器 |
emrfs | 2.31.0 | 適用於 Hadoop 生態系統應用程式的 Amazon S3 連接器。 |
flink-client | 1.7.1 | Apache Flink 命令列用戶端指令碼和應用程式。 |
ganglia-monitor | 3.7.2 | Hadoop 生態系統應用程式內嵌 Ganglia 代理程式以及 Ganglia 監控代理程式。 |
ganglia-metadata-collector | 3.7.2 | Ganglia 監控代理程式的彙總指標 Ganglia 中繼資料收集器。 |
ganglia-web | 3.7.1 | 由 Ganglia 中繼資料收集器收集,以檢視指標的 Web 應用程式。 |
hadoop-client | 2.8.5-amzn-2 | Hadoop 命令列用戶端,例如「hdfs」、「Hadoop」或「yarn」。 |
hadoop-hdfs-datanode | 2.8.5-amzn-2 | HDFS 儲存區塊的節點層級服務。 |
hadoop-hdfs-library | 2.8.5-amzn-2 | HDFS command-line 用戶端和程式庫 |
hadoop-hdfs-namenode | 2.8.5-amzn-2 | HDFS 服務,用於追蹤檔案名稱和區塊位置。 |
hadoop-httpfs-server | 2.8.5-amzn-2 | HTTP HDFS操作的端點。 |
hadoop-kms-server | 2.8.5-amzn-2 | 以 Hadoop 的 為基礎的密碼編譯金鑰管理伺服器 KeyProvider API。 |
hadoop-mapred | 2.8.5-amzn-2 | MapReduce 執行引擎程式庫,用於執行 MapReduce 應用程式。 |
hadoop-yarn-nodemanager | 2.8.5-amzn-2 | YARN 服務,用於管理個別節點上的容器。 |
hadoop-yarn-resourcemanager | 2.8.5-amzn-2 | YARN 服務,用於配置和管理叢集資源和分散式應用程式。 |
hadoop-yarn-timeline-server | 2.8.5-amzn-2 | 擷取YARN應用程式目前和歷史資訊的 服務。 |
hbase-hmaster | 149 | 負責協調區域和執行管理命令的HBase叢集的服務。 |
hbase-region-server | 149 | 服務一或多個HBase區域的服務。 |
hbase-client | 149 | HBase command-line 用戶端。 |
hbase-rest-server | 149 | 為 提供RESTfulHTTP端點的服務HBase。 |
hbase-thrift-server | 149 | 向 提供 Thrift 端點的服務HBase。 |
hcatalog-client | 2.3.4-amzn-1 | 操作 hcatalog-server 的「hcat」命令列用戶端。 |
hcatalog-server | 2.3.4-amzn-1 | 為分散式應用程式提供 HCatalog、資料表和儲存管理層的服務。 |
hcatalog-webhcat-server | 2.3.4-amzn-1 | HTTP 端點為 提供REST介面HCatalog。 |
hive-client | 2.3.4-amzn-1 | Hive 命令列用戶端。 |
hive-hbase | 2.3.4-amzn-1 | Hive-hbase 用戶端。 |
hive-metastore-server | 2.3.4-amzn-1 | 存取 Hive 中繼存放區的服務,這是在 Hadoop 操作SQL上儲存 中繼資料的語意儲存庫。 |
hive-server2 | 2.3.4-amzn-1 | 依 Web 請求接受 Hive 查詢的服務。 |
hue-server | 4.3.0 | 使用 Hadoop 生態系統應用程式分析資料的 Web 應用程式 |
jupyterhub | 0.9.4 | 適用於 Jupyter 筆記本的多使用者伺服器 |
livy-server | 0.5.0-incubating | REST 與 Apache Spark 互動的介面 |
nginx | 1.12.1 | nginx 【引擎 x】 是 HTTP和 反向代理伺服器 |
mahout-client | 0.13.0 | 機器學習程式庫。 |
mxnet | 1.3.1 | 靈活有效率的程式庫,具可擴展性,適用於深度學習。 |
mysql-server | 5.5.54+ | 我的SQL資料庫伺服器。 |
nvidia-cuda | 9.2.88 | Nvidia 驅動程式和 Cuda 工具組 |
oozie-client | 5.1.0 | Oozie 命令列用戶端。 |
oozie-server | 5.1.0 | 接受 Oozie 工作流程要求的服務。 |
opencv | 3.4.0 | 開放原始碼電腦 Vision 程式庫。 |
phoenix-library | 4.14.1-HBase-1.4 | 適用於伺服器和用戶端的 phoenix 程式庫 |
phoenix-query-server | 4.14.1-HBase-1.4 | 輕量型伺服器,提供對 Avatica 的JDBC存取以及通訊協定緩衝區和JSON格式存取 API |
presto-coordinator | 0.215 | 在 presto-workers 之間接受查詢和執行管理查詢的服務。 |
presto-worker | 0.215 | 執行查詢各部分的服務。 |
pig-client | 0.17.0 | Pig 命令列用戶端。 |
r | 3.4.1 | 統計運算 R 專案 |
spark-client | 2.4.0 | Spark 命令列用戶端。 |
spark-history-server | 2.4.0 | 用於檢視完整 Spark 應用程式生命週期記錄事件的 Web 使用者介面。 |
spark-on-yarn | 2.4.0 | 的記憶體內執行引擎YARN。 |
spark-yarn-slave | 2.4.0 | 從屬所需的 Apache Spark YARN 程式庫。 |
sqoop-client | 1.4.7 | Apache Sqoop 命令列用戶端。 |
tensorflow | 1.12.0 | TensorFlow 適用於高效能數值運算的開放原始碼軟體程式庫。 |
tez-on-yarn | 0.9.1 | tez YARN 應用程式和程式庫。 |
webserver | 2.4.25+ | Apache HTTP 伺服器。 |
zeppelin-server | 0.8.1 | 能進行互動式資料分析,以 Web 為基礎的筆記型電腦。 |
zookeeper-server | 3.4.13 | 用於維護組態資訊、命名、提供分散式同步,並提供群組服務的集中化服務。 |
zookeeper-client | 3.4.13 | ZooKeeper 命令列用戶端。 |
5.22.0 組態類別
組態分類可讓您自訂應用程式。這些檔案通常對應於應用程式的組態XML檔案,例如 hive-site.xml
。如需詳細資訊,請參閱設定應用程式。
分類 | 描述 |
---|---|
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 的 Amazon EMR精選設定HBase。 |
hbase-env | 變更 HBase環境中的值。 |
hbase-log4j | 變更 HBase的 hbase-log4j.properties 檔案中的值。 |
hbase-metrics | 變更 HBase的 hadoop-metrics2-hbase.properties 檔案中的值。 |
hbase-policy | 變更 HBasehbase-policy.xml 檔案中的值。 |
hbase-site | 變更 HBasehbase-site.xml 檔案中的值。 |
hdfs-encryption-zones | 設定HDFS加密區域。 |
hdfs-site | 變更 HDFShdfs-site.xml 中的值。 |
hcatalog-env | 變更 HCatalog環境中的值。 |
hcatalog-server-jndi | 變更 jndi.properties HCatalog中的值。 |
hcatalog-server-proto-hive-site | 變更 HCatalog. proto-hive-sitexml 中的值。 |
hcatalog-webhcat-env | 變更 HCatalog W ebHCat環境中的值。 |
hcatalog-webhcat-log4j2 | 在 HCatalog W ebHCat的 log4j2.properties 中變更值。 |
hcatalog-webhcat-site | 在 HCatalog W ebHCat的 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 筆記本中 jupyter_notebook_config.py 檔案的值。 |
jupyter-hub-conf | 變更 JupyterHubsjupyterhub_config.py 檔案中的值。 |
jupyter-s3-conf | 設定 Jupyter 筆記本 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 的 mysql.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 的 tpch.properties 檔案中的值。 |
presto-connector-tpcds | 變更 Presto 的 tpcds.properties 檔案中的值。 |
spark | Apache Spark 的 Amazon EMR精選設定。 |
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 | 變更 ZooKeeperzoo.cfg 檔案中的值。 |
zookeeper-log4j | 變更 ZooKeeper的 log4j.properties 檔案中的值。 |