

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
<a name="emr-Hive-4x"></a>

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
<a name="emr-Hive-acid-4x"></a>

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
<a name="emr-Hive-s3table-4x"></a>

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
<a name="emr-Hive-log4j-4x"></a>

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](http://logging.apache.org/log4j/2.x/).

## MapReduce é o mecanismo de execução padrão
<a name="emr-Hive-tez-4x"></a>

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
<a name="emr-Hive-authz-4x"></a>

O Hive nas versões 4.x do Amazon EMR é compatível com a [autorização do Hive](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Authorization) para o HDFS, mas não para o EMRFS e o Amazon S3. Os clusters do Amazon EMR são executados com a autorização desabilitada por padrão.

## Comportamento de mesclagem de arquivos do Hive com o Amazon S3
<a name="emr-Hive-filemerge-4x"></a>

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`.