Exemplo: Crie uma HCatalog tabela e grave nela usando o Pig - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplo: Crie uma HCatalog tabela e grave nela usando o Pig

Você pode criar uma HCatalog tabela e usar o Apache Pig para gravar nela HCatStorer usando uma fonte de dados no Amazon S3. HCatalogexige que você desative a gravação direta ou a operação falhará silenciosamente. Defina as configurações mapred.output.direct.NativeS3FileSystem e mapred.output.direct.EmrFileSystem como false usando a classificação mapred-site ou manualmente no shell do Grunt. O exemplo a seguir mostra uma tabela criada usando o HCatCLI, seguida por comandos executados no shell Grunt para preencher a tabela a partir de um arquivo de dados de amostra no Amazon S3.

Para executar este exemplo, conecte-se ao nó principal usando SSH.

Crie um arquivo de HCatalog script,wikicount.q, com o conteúdo a seguir, que cria uma HCatalog tabela chamadawikicount.

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';

Use um HCat CLI comando para executar o script a partir do arquivo.

hcat -f wikicount.q

Em seguida, inicie o shell do Grunt com a opção -useHCatalog, defina as configurações para desativar a gravação direta, carregue os dados de um local do S3 e, em seguida, grave os resultados na tabela wikicount.

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();