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.
Beispiel: Erstellen Sie eine HCatalog Tabelle und schreiben Sie mit Pig in sie
Sie können eine HCatalog Tabelle erstellen und mit Apache Pig über HCat Storer mithilfe einer Datenquelle in Amazon S3 in sie schreiben. HCatalog erfordert, dass Sie Direct Write deaktivieren, andernfalls schlägt der Vorgang unbemerkt fehl. Legen Sie sowohl die Konfiguration mapred.output.direct.NativeS3FileSystem
als auch mapred.output.direct.EmrFileSystem
entweder mit der false
-Klassifizierung oder manuell innerhalb der Grunt-Shell auf mapred-site
fest. Das folgende Beispiel zeigt eine mit der HCat CLI erstellte Tabelle, gefolgt von Befehlen, die in der Grunt-Shell ausgeführt werden, um die Tabelle aus einer Beispieldatendatei in Amazon S3 zu füllen.
Um dieses Beispiel auszuführen, müssen Sie eine Verbindung mit dem Hauptknoten über SSH herstellen.
Erstellen Sie eine HCatalog Skriptdatei mit dem folgenden Inhalt, die eine HCatalog Tabelle mit dem Namen erstellt. wikicount.q
wikicount
CREATE EXTERNAL TABLE IF NOT EXISTS wikicount( col1 string, col2 bigint ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' STORED AS ORC LOCATION 's3://
amzn-s3-demo-bucket
/hcat/wikicount';
Verwenden Sie einen HCat CLI-Befehl, um das Skript aus der Datei auszuführen.
hcat -f wikicount.q
Im nächsten Schritt starten Sie die Grund-Shell mit der Option -useHCatalog
, legen Konfigurationen zum Deaktivieren der Direct Write-Funktion fest, laden Daten von einem S3-Speicherort und schreiben die Ergebnisse in die Wikicount-Tabelle.
pig -useHCatalog
SET mapred.output.direct.NativeS3FileSystem false;
SET mapred.output.direct.EmrFileSystem false;
A = LOAD 's3://support.elasticmapreduce/training/datasets/wikistats_tiny/' USING PigStorage(' ') AS (Site:chararray, page:chararray, views:int, total_bytes:long);
B = GROUP A BY Site;
C = FOREACH B GENERATE group as col1, COUNT(A) as col2;
STORE C INTO 'wikicount' USING org.apache.hive.hcatalog.pig.HCatStorer();