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á.
Considerações sobre o uso do Hive no Amazon EMR 4.x
Esta seção discute as diferenças que devem ser consideradas ao ser usada a versão 1.0.0 do Hive nas versões 4.x do Amazon EMR em comparação com o Hive 2.x nas versões 5.x do Amazon EMR.
Transações ACID não são compatíveis
O Hive nas versões 4.x do Amazon EMR não é compatível com transações ACID com dados do Hive armazenados no Amazon S3 ao serem usadas versões 4.x. Se você tentar criar uma tabela transacional no Amazon S3, ocorrerá uma exceção.
Leitura e gravação em tabelas no Amazon S3
O Hive nas versões 4.x do Amazon EMR pode gravar diretamente no Amazon S3 sem o uso de arquivos temporários. Isso melhora a performance, mas uma consequência é que você não pode ler e gravar na mesma tabela no Amazon S3 dentro da mesma instrução do Hive. Uma solução é criar e usar uma tabela temporária no HDFS.
O exemplo a seguir mostra como usar várias instruções do Hive para atualizar uma tabela no Amazon S3. As instruções criam uma tabela temporária no HDFS denominada tmp
com base em uma tabela no Amazon S3 denominada my_s3_table
. A tabela no Amazon S3 é atualizada com o conteúdo da tabela temporária.
CREATE TEMPORARY TABLE tmp LIKE my_s3_table;
INSERT OVERWRITE TABLE tmp SELECT ....;
INSERT OVERWRITE TABLE my_s3_table SELECT * FROM tmp;
Log4j vs. Log4j 2
O Hive nas versões 4.x do Amazon EMR usa o Log4j. O padrão é começar com o Log4j 2 versão 5.0.0. Essas versões podem exigir diferentes configurações de registro. Para obter detalhes, consulte Apache Log4j 2
MapReduce é o mecanismo de execução padrão
As versões de lançamento 4.x do Hive no Amazon EMR são MapReduce usadas como mecanismo de execução padrão. Desde a versão 5.0.0 do Amazon EMR, o Tez é o padrão, fornecendo melhor performance para a maioria dos fluxos de trabalho.
Autorização do Hive
O Hive nas versões 4.x do Amazon EMR é compatível com a autorização do Hive
Comportamento de mesclagem de arquivos do Hive com o Amazon S3
O Hive nas versões 4.x do Amazon EMR mescla arquivos pequenos no final de um trabalho somente mapa se hive.merge.mapfiles
é true
. A mesclagem apenas será acionada se o tamanho médio de saída do trabalho for menor do que a configuração de hive.merge.smallfiles.avgsize
. O Hive no Amazon EMR tem exatamente o mesmo comportamento se o caminho de saída final está no HDFS. Porém, se o caminho de saída estiver no Amazon S3, o parâmetro hive.merge.smallfiles.avgsize
será ignorado. Nessa situação, a tarefa de mesclagem sempre será acionada se hive.merge.mapfiles
estiver definido como true
.