2016-07-21 17 views
1

Ich verwende Amazon Elastic Map Reduce 4.7.1, Hadoop 2.7.2, Hive 1.0.0 und Spark 1.6.1.So registrieren Sie S3-Parkettdateien in einem Hive-Metastore mit Spark auf EMR

Anwendungsfall: Ich habe ein Spark-Cluster für die Verarbeitung von Daten verwendet. Diese Daten werden in S3 als Parquet-Dateien gespeichert. Ich möchte, dass Werkzeuge in der Lage sind, die Daten unter Verwendung von Namen abzufragen, die im Hive-Metastore registriert sind (z. B. nach der foo Tabelle anstatt nach der parquet.`s3://bucket/key/prefix/foo/parquet` Art zu suchen, Dinge zu tun). Ich möchte auch, dass diese Daten für die Lebensdauer des Hive-Metastores (eine separate RDS-Instanz) bestehen bleiben, selbst wenn ich den EMR-Cluster abreiße und einen neuen anspreche, der mit demselben Metastore verbunden ist.

Problem: Wenn ich etwas wie sqlContext.saveAsTable("foo") mache, wird das standardmäßig eine verwaltete Tabelle im Hive Metastore erstellen (siehe https://spark.apache.org/docs/latest/sql-programming-guide.html). Diese verwalteten Tabellen kopieren die Daten von S3 nach HDFS im EMR-Cluster, was bedeutet, dass die Metadaten nach dem Zerlegen des EMR-Clusters nutzlos wären.

Antwort

2

Die Lösung bestand darin, die S3-Datei als externe Tabelle zu registrieren.

sqlContext.createExternalTable("foo", "s3://bucket/key/prefix/foo/parquet")

Ich habe nicht herausgefunden, wie eine Datei S3 zu speichern und als eine externe Tabelle registrieren, um alle in einem Schuss, aber createExternalTable hinzufügen nicht zu viel Aufwand.

1

Sie benötigen hierfür keine EMR. Starten Sie einfach Athena, erstellen Sie eine Tabelle, um die Daten im Parkettformat zu lesen. Dies ist eine viel kostengünstigere Option als EMR und auch nachhaltig. Sie können JDBC verwenden, um über Athena in Echtzeit auf diese Daten zuzugreifen.

+0

Leider ist Athena nicht HIPAA-konform –

+0

Der gesamte AWS-Dienst ist nicht HIPAA-konform! . Wenn er EMR und Hive in AWS verwendet, dann kann er auch Athena verwenden, was im Grunde eine Presto-Engine ist, die an Hive-Tischen arbeitet. –

+0

Das ist nicht genau. Sie können https://aws.amazon.com/compliance/hipaa-compliance/ für ihre HIPAA-Dokumentation sehen. –