Auf dieser Seite wird erläutert, wie Sie Kerberos Dataproc Metastore-Dienst, der das gRPC-Endpunktprotokoll verwendet. Wenn Ihr Dataproc Metastore-Dienst das Thrift-Endpunktprotokoll verwendet, finden Sie weitere Informationen unter Kerberos für Thrift-Endpunkte konfigurieren
Hinweise
Verstehen Sie die Grundlagen der Kerberos:
In dieser Anleitung verwenden Sie einen Dataproc-Cluster, um die folgenden Kerberos-Assets verwenden:
- Eine Keytab-Datei.
- Eine
krb5.conf
-Datei - Ein Kerberos-Hauptkonto.
Weitere Informationen zur Funktionsweise dieser Kerberos-Assets mit einem Dataproc Metastore-Dienst: Informationen zu Kerberos
Erstellen und hosten Sie Ihr eigenes Kerberos-KDC oder lernen Sie, wie Sie das lokale KDC eines Dataproc-Cluster:
Erstellen Sie einen Cloud Storage-Bucket oder greifen Sie auf einen vorhandenen zu. Ich muss die Datei
krb5.conf
in diesem Bucket speichern.
Erforderliche Rollen
Um die Berechtigung zu erhalten, die Sie zum Erstellen eines mit Kerberos konfigurierten Dataproc Metastores benötigen, bitten Sie Ihren Administrator, Ihnen folgende IAM-Rollen für Ihr Projekt basierend auf dem Prinzip der geringsten Berechtigung:
-
Vollständige Kontrolle über Dataproc Metastore-Ressourcen gewähren (
roles/metastore.editor
) -
Vollständigen Zugriff auf alle Dataproc Metastore-Ressourcen gewähren, einschließlich der Verwaltung von IAM-Richtlinien (
roles/metastore.admin
) -
gRPC Lese- und Schreibzugriff auf Dataproc Metastore-Metadaten gewähren (
roles/metastore.metadataEditor
)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierte Rolle enthält die
Berechtigung metastore.services.create
, die
erforderlich, um einen mit Kerberos konfigurierten Dataproc Metastore zu erstellen .
Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Weitere Informationen zu bestimmten Dataproc Metastore-Rollen und -Berechtigungen finden Sie unter Zugriff mit IAM verwalten.Weitere Informationen finden Sie unter Dataproc Metastore-IAM und -Zugriffssteuerung.
Kerberos für Dataproc Metastore konfigurieren
In der folgenden Anleitung erfahren Sie, wie Sie Kerberos Dataproc Metastore-Dienst, der den gRPC-Endpunkt verwendet.
Zuerst erstellen Sie einen Dataproc Metastore, der das gRPC- Endpunkt. Anschließend erstellen Sie einen Dataproc-Cluster, der mit Kerberos und eine Verbindung zu ihr herstellen.
Dataproc Metastore-Dienst mit dem gRPC-Endpunkt erstellen
Führen Sie den folgenden Befehl aus, um einen Dataproc Metastore zu erstellen, der den gRPC-Endpunkt verwendet.
den folgenden gcloud metastore services create
-Befehl:
gcloud
gcloud metastore services create SERVICE \
--instance-size=medium \
--endpoint-protocol=grpc
Ersetzen Sie:
SERVICE
: Der Name Ihres Dataproc Metastore-Dienst
Dataproc-Cluster erstellen und Verbindung zum Dienst herstellen
Führen Sie folgenden Befehl aus, um eine mit Kerberos konfigurierte Dataproc zu erstellen.
gcloud dataproc clusters create
-Befehl.
In diesem Befehl wird mit der Option --enable-kerberos
das Kerberos-Protokoll erstellt.
Keytab-Datei, krb5.conf
-Datei und Hauptkonto. Diese Werte werden alle mit
Standardnamen und -einstellungen, die vom Dataproc-Cluster festgelegt werden.
gcloud
gcloud dataproc clusters create CLUSTER_NAME \
--project PROJECT_ID \
--region REGION \
--image-version 2.0-debian10 \
--dataproc-metastore DATAPROC_METASTORE_NAME \
--enable-kerberos \
--scopes 'https://www.googleapis.com/auth/cloud-platform'
Ersetzen Sie:
CLUSTER_NAME
ist der Name Ihres Dataproc-Clusters.PROJECT_ID
: Ihre Google Cloud-Projekt-ID.REGION
: die Google Cloud-Region, die Sie erstellen möchten Dataproc-Cluster aufgenommen.DATAPROC_METASTORE_NAME
: der Name des den Dataproc Metastore-Dienst, den Sie an den Cluster anhängen, im folgenden Format:projects/<my_project>/locations/<location>/services/<service_id>
.
Dataproc vor dem Senden von Jobs konfigurieren
So führen Sie Ihre Dataproc-Jobs aus:
müssen Sie den Nutzer hive
zur allowed.system.users
-Property im
Hadoop-Datei container-executor.cfg
So können Nutzende Abfragen ausführen,
um auf Daten zuzugreifen,
wie select * from
.
In der folgenden Anleitung erfahren Sie, wie Sie eine SSH-Verbindung zu Ihrem primären Dataproc herstellen.
der mit Ihrem Dataproc Metastore-Dienst verknüpft ist, und
Aktualisieren Sie die Datei container-executor.cfg
.
- Rufen Sie in der Google Cloud Console die VM Instanzen.
Klicken Sie in der Liste der VM-Instanzen auf SSH in der Zeile des Primärer Dataproc-Knoten (
your-cluster-name-m
)In Ihrem Stammverzeichnis des Knotens wird ein Browserfenster geöffnet.
Öffnen Sie in der SSH-Sitzung die Hadoop-Datei
container-executor.cfg
.sudo vim /etc/hadoop/conf/container-executor.cfg
Fügen Sie auf jedem Dataproc-Knoten die folgende Zeile hinzu.
allowed.system.users=hive
Kerberos-Ticket sichern
In der folgenden Anleitung erfahren Sie, wie Sie ein Kerberos-Ticket generieren.
Generieren Sie in der Dataproc-Cluster-SSH-Sitzung einen Kerberos und stellen Sie eine Verbindung zu Ihrem Dataproc Metastore-Dienst her.
Dieser Befehl verwendet den Standard-Keytab-Namen, der von Ihrem Dataproc-Cluster
sudo klist -kte /etc/security/keytab/hive.service.keytab sudo kinit -kt /etc/security/keytab/hive.service.keytab hive/_HOST@${realm} sudo klist # gets the ticket information.
Der Wert
_HOST
wird abgerufen, wenn der Keytab-Datei wird mit dem Befehlklist -kte
aufgelistet. Es enthält die den Hostnamen des primären Knotens.
Optional: Neues Hauptkonto hinzufügen
Führen Sie den folgenden Befehl aus, um ein neues Hauptkonto hinzuzufügen.
sudo kadmin.local -q "addprinc -randkey PRINCIPAL" sudo kadmin.local -q "ktadd -k /etc/security/keytab/hive.service.keytab PRINCIPAL"
Hol dir das Kerberos-Ticket.
sudo klist -kte /etc/security/keytab/hive.service.keytab sudo kinit -kt /etc/security/keytab/hive.service.keytab PRINCIPAL sudo klist sudo hive