Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Den AWS Glue-Datenkatalog als Metastore für Hive verwenden
Mit EMR Amazon-Version 5.8.0 oder höher können Sie Hive so konfigurieren, dass der AWS Glue-Datenkatalog als Metastore verwendet wird. Wir empfehlen diese Konfiguration, wenn Sie einen persistenten Metastore oder einen gemeinsamen Metastore für verschiedene Cluster, Services, Anwendungen oder AWS -Konten benötigen.
AWS Glue ist ein vollständig verwalteter Service zum Extrahieren, Transformieren und Laden (ETL), mit dem Sie Ihre Daten einfach und kostengünstig kategorisieren, bereinigen, anreichern und zuverlässig zwischen verschiedenen Datenspeichern verschieben können. Der AWS Glue Data Catalog bietet ein einheitliches Metadaten-Repository für eine Vielzahl von Datenquellen und Datenformaten, das sich sowohl in Amazon EMR als auch in AmazonRDS, Amazon Redshift, Redshift Spectrum, Athena und jede mit dem Apache Hive Metastore kompatible Anwendung integrieren lässt. AWS Glue-Crawler können automatisch Schemas aus Quelldaten in Amazon S3 ableiten und die zugehörigen Metadaten im Datenkatalog speichern. Weitere Informationen zum Datenkatalog finden Sie unter Füllen des AWS Glue-Datenkatalogs im AWS Glue-Entwicklerhandbuch.
Für AWS Glue fallen separate Gebühren an. Es gibt eine monatliche Gebühr für das Speichern und Zugreifen auf die Metadaten im Datenkatalog, einen Stundensatz, der pro Minute für AWS ETL Glue-Jobs und Crawler-Laufzeit abgerechnet wird, und einen Stundensatz, der pro Minute für jeden bereitgestellten Entwicklungsendpunkt abgerechnet wird. Der Datenkatalog ermöglicht Ihnen die gebührenfreie Speicherung von bis zu einer Million Objekten. Wenn Sie mehr als eine Million Objekte speichern, wird Ihnen USD 1 USD für jeweils 100.000 Objekte über eine Million berechnet. Im Data Catalog ist ein Objekt eine Tabelle, eine Partition oder eine Datenbank. Weitere Informationen finden Sie unter Glue-Preise
Wichtig
Wenn Sie vor dem 14. August 2017 Tabellen mit Amazon Athena oder Amazon Redshift Spectrum erstellt haben, werden Datenbanken und Tabellen in einem von Athena verwalteten Katalog gespeichert, der vom Glue-Datenkatalog getrennt ist. AWS Um Amazon EMR in diese Tabellen zu integrieren, müssen Sie ein Upgrade auf den AWS Glue Data Catalog durchführen. Weitere Informationen finden Sie unter Upgrade auf den AWS Glue-Datenkatalog im Amazon Athena Athena-Benutzerhandbuch.
AWS Glue Data Catalog als Metastore angeben
Sie können den AWS Glue-Datenkatalog als Metastore angeben, indem Sie Amazon AWS Management Console EMRAPI, AWS CLI, oder verwenden. Wenn Sie das CLI oder verwendenAPI, verwenden Sie die Konfigurationsklassifizierung für Hive, um den Datenkatalog anzugeben. Darüber hinaus können Sie mit Amazon EMR 5.16.0 und höher die Konfigurationsklassifizierung verwenden, um einen Datenkatalog in einem anderen zu spezifizieren. AWS-KontoWenn Sie die Konsole verwenden, können Sie den Data Catalog mit den erweiterten Optionen oder den Schnelloptionen angeben.
IAMBerechtigungen
Das EC2 Instanzprofil für einen Cluster muss über IAM Berechtigungen für AWS Glue-Aktionen verfügen. Wenn Sie die Verschlüsselung für AWS Glue Data Catalog-Objekte aktivieren, muss die Rolle außerdem berechtigt sein, die für die Verschlüsselung AWS KMS key verwendeten Daten zu verschlüsseln, zu entschlüsseln und zu generieren.
Berechtigungen für AWS Glue-Aktionen
Wenn Sie das EC2 Standard-Instance-Profil für Amazon verwendenEMR, ist keine Aktion erforderlich. Die AmazonElasticMapReduceforEC2Role
verwaltete Richtlinie, die an die angehängt ist, EMR_EC2_DefaultRole
ermöglicht alle erforderlichen AWS Glue-Aktionen. Wenn Sie jedoch ein benutzerdefiniertes EC2 Instanzprofil und Berechtigungen angeben, müssen Sie die entsprechenden AWS Glue-Aktionen konfigurieren. Verwenden Sie hierzu die verwaltete Richtlinie AmazonElasticMapReduceforEC2Role
als Ausgangspunkt. Weitere Informationen finden Sie unter Servicerolle für EC2 Cluster-Instances (EC2Instance-Profil) im Amazon EMR Management Guide.
Berechtigungen zum Verschlüsseln und Entschlüsseln von AWS Glue Data Catalog
Ihr Instance-Profil benötigt die Erlaubnis, Daten mithilfe Ihres Schlüssels zu verschlüsseln und zu entschlüsseln. Sie müssen diese Berechtigungen nicht konfigurieren, wenn die beiden folgenden Aussagen zutreffen:
-
Sie aktivieren die Verschlüsselung für AWS Glue-Datenkatalogobjekte mithilfe verwalteter Schlüssel für AWS Glue.
-
Sie verwenden einen Cluster, der sich im selben Verzeichnis befindet AWS-Konto wie der AWS Glue-Datenkatalog.
Andernfalls müssen Sie der Berechtigungsrichtlinie, die Ihrem EC2 Instanzprofil beigefügt ist, die folgende Erklärung hinzufügen.
[ { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:
region
:acct-id
:key/12345678-1234-1234-1234-123456789012
" } ] } ]
Weitere Informationen zur Verschlüsselung von AWS Glue Data Catalog finden Sie unter Verschlüsselung Ihres Datenkatalogs im AWS Glue Developer Guide.
Ressourcenbasierte Berechtigungen
Wenn Sie AWS Glue in Verbindung mit Hive, Spark oder Presto in Amazon EMR verwenden, unterstützt AWS Glue ressourcenbasierte Richtlinien zur Steuerung des Zugriffs auf Datenkatalogressourcen. Zu diesen Ressourcen gehören Datenbanken, Tabellen, Verbindungen und benutzerdefinierte Funktionen. Weitere Informationen finden Sie unter Verwenden von ressourcenbasierten Richtlinien für AWS Glue im AWS -Glue-Entwicklerhandbuch.
Wenn Sie ressourcenbasierte Richtlinien verwenden, um den Zugriff auf AWS Glue von Amazon aus zu beschränkenEMR, muss der Principal, den Sie in der Berechtigungsrichtlinie angeben, die Rolle sein, die dem EC2 Instance-Profil ARN zugeordnet ist, das bei der Erstellung eines Clusters angegeben wird. Beispielsweise können Sie für eine ressourcenbasierte Richtlinie, die an einen Katalog angehängt ist, die Rolle ARN für die Standard-Servicerolle für Cluster-Instances angeben. EC2 EMR_EC2_DefaultRole
als derPrincipal
, wobei das im folgenden Beispiel gezeigte Format verwendet wird:
arn:aws:iam::
acct-id
:role/EMR_EC2_DefaultRole
Das Tool acct-id
kann sich von der AWS Glue-Konto-ID unterscheiden. Dies ermöglicht den Zugriff von EMR Clustern in verschiedenen Konten aus. Sie können mehrere Principals angeben, von denen jeder aus einem anderen Konto stammt.
Überlegungen zur Verwendung von AWS Glue Data Catalog
Beachten Sie die folgenden Punkte, wenn Sie den AWS Glue-Datenkatalog als Metastore mit Hive verwenden:
-
Das Hinzufügen von JARs Hilfsmitteln mithilfe der Hive-Shell wird nicht unterstützt. Um das Problem zu umgehen, verwenden Sie die
hive-site
Konfigurationsklassifizierung, um diehive.aux.jars.path
Eigenschaft festzulegen, wodurch dem Hive-Klassenpfad JARs ein Hilfsprogramm hinzugefügt wird. -
Hive-Transaktionen
werden nicht unterstützt. Das Umbenennen von Tabellen in AWS Glue wird nicht unterstützt.
Wenn Sie eine Hive-Tabelle erstellen, ohne eine
LOCATION
anzugeben, werden die Tabellendaten an dem in der Eigenschafthive.metastore.warehouse.dir
angegebenen Ort gespeichert. Standardmäßig ist dies ein Speicherort inHDFS. Wenn ein anderer Cluster auf die Tabelle zugreifen muss, schlägt er fehl, sofern er nicht über ausreichende Berechtigungen für den Cluster verfügt, der die Tabelle erstellt hat. Da der HDFS Speicher vorübergehend ist, gehen außerdem die Tabellendaten verloren, wenn der Cluster beendet wird, und die Tabelle muss neu erstellt werden. Wir empfehlen, dass SieLOCATION
in Amazon S3 a angeben, wenn Sie eine Hive-Tabelle mit AWS Glue erstellen. Alternativ können Sie diehive-site
-Konfigurationsklassifizierung verwenden, um einen Speicherort in Amazon S3 fürhive.metastore.warehouse.dir
anzugeben, der für alle Hive-Tabellen gilt. Wenn eine Tabelle an einem HDFS Standort erstellt wurde und der Cluster, der sie erstellt hat, noch läuft, können Sie den Tabellenstandort von AWS Glue aus auf Amazon S3 aktualisieren. Weitere Informationen finden Sie unter Arbeiten mit Tabellen auf der AWS Glue-Konsole im AWS Glue-Entwicklerhandbuch.Partitionswerte, die Anführungszeichen und Apostrophe enthalten, werden nicht unterstützt, zum Beispiel
PARTITION (owner="Doe's").
Spaltenstatistiken
werden für emr-5.31.0 und höher unterstützt. Die Verwendung der Hive-Autorisierung
wird nicht unterstützt. Als Alternative sollten Sie die Verwendung ressourcenbasierter Richtlinien für AWS Glue in Betracht ziehen. Weitere Informationen finden Sie unter Verwenden von ressourcenbasierten Richtlinien für den Amazon EMR Access to AWS Glue-Datenkatalog. Hive-Einschränkungen
werden nicht unterstützt. Die kostenbasierte Optimierung in Hive
wird nicht unterstützt. Die Einstellung
hive.metastore.partition.inherit.table.properties
wird nicht unterstützt.Die Verwendung der folgenden Metastore-Konstanten wird nicht unterstützt:
BUCKET_COUNT, BUCKET_FIELD_NAME, DDL_TIME, FIELD_TO_DIMENSION, FILE_INPUT_FORMAT, FILE_OUTPUT_FORMAT, HIVE_FILTER_FIELD_LAST_ACCESS, HIVE_FILTER_FIELD_OWNER, HIVE_FILTER_FIELD_PARAMS, IS_ARCHIVED, META_TABLE_COLUMNS, META_TABLE_COLUMN_TYPES, META_TABLE_DB, META_TABLE_LOCATION, META_TABLE_NAME, META_TABLE_PARTITION_COLUMNS, META_TABLE_SERDE, META_TABLE_STORAGE, ORIGINAL_LOCATION
.Wenn Sie einen Prädikatausdruck verwenden, müssen sich explizite Werte auf der rechten Seite des Vergleichsoperators befinden. Andernfalls schlagen Abfragen möglicherweise fehl.
Richtig:
SELECT * FROM mytable WHERE time > 11
Falsch:
SELECT * FROM mytable WHERE 11 > time
Die EMR Amazon-Versionen 5.32.0 und 6.3.0 und höher unterstützen die Verwendung benutzerdefinierter Funktionen (UDFs) in Prädikatausdrücken. Wenn Sie frühere Versionen verwenden, schlagen Ihre Abfragen möglicherweise fehl, weil Hive versucht, die Abfrageausführung zu optimieren.
Temporäre Tabellen
werden nicht unterstützt. Wir empfehlen, Tabellen mit Anwendungen über Amazon zu erstellen, EMR anstatt sie direkt mit AWS Glue zu erstellen. Das Erstellen einer Tabelle mit AWS Glue kann dazu führen, dass erforderliche Felder fehlen und Abfrageausnahmen auftreten.
In Version EMR 5.20.0 oder höher wird die parallel Partitionsbereinigung automatisch für Spark und Hive aktiviert, wenn AWS Glue Data Catalog als Metastore verwendet wird. Diese Änderung reduziert die Zeit für die Abfrageplanung erheblich, da mehrere Anfragen parallel ausgeführt werden, um Partitionen abzurufen. Die Gesamtzahl der Segmente, die gleichzeitig ausgeführt werden können, liegt zwischen 1 und 10. Der Standardwert ist 5, was eine empfohlene Einstellung ist. Sie können dies ändern, indem Sie die Eigenschaft
aws.glue.partition.num.segments
in derhive-site
-Konfigurationsklassifizierung angeben. Wenn eine Drosselung auftritt, können Sie das Feature ausschalten, indem Sie den Wert auf 1 ändern. Weitere Informationen finden Sie unter AWS -Glue-Segmentstruktur.