Considerazioni sull'utilizzo di Hive su Amazon EMR 4.x - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Considerazioni sull'utilizzo di Hive su Amazon EMR 4.x

In questa sezione vengono descritte le differenze da considerare quando si utilizza Hive versione 1.0.0 sulle versioni del rilascio 4.x di Amazon EMR, rispetto a Hive 2.x sulle versioni del rilascio 5.x di Amazon EMR.

Transazioni ACID non supportate

Hive su versioni del rilascio 4.x di Amazon EMR non supporta transazioni ACID con dati Hive archiviati in Amazon S3 quando si utilizzano versioni del rilascio 4.x. Se tenti di creare una tabella transazionale in Amazon S3, si verifica un'eccezione.

Lettura e scrittura in tabelle in Amazon S3

Hive su versioni del rilascio 4.x di Amazon EMR è in grado di scrivere direttamente in Amazon S3 senza utilizzare i file temporanei. Ciò consente di migliorare le prestazioni, ma, di conseguenza, non è possibile leggere e scrivere nella stessa tabella in Amazon S3 all'interno della stessa istruzione Hive. Una possibile soluzione è creare e utilizzare una tabella temporanea in HDFS.

Nell'esempio seguente viene mostrato come utilizzare più istruzioni Hive per aggiornare una tabella in Amazon S3. Le istruzioni creano una tabella temporanea in HDFS denominata tmp basata su una tabella in Amazon S3 denominata my_s3_table. La tabella in Amazon S3 viene quindi aggiornata con il contenuto della tabella temporanea.

CREATE TEMPORARY TABLE tmp LIKE my_s3_table; INSERT OVERWRITE TABLE tmp SELECT ....; INSERT OVERWRITE TABLE my_s3_table SELECT * FROM tmp;

Log4j e Log4j 2

Hive su versioni del rilascio di Amazon EMR 4.x utilizza Log4j. A partire dalla versione 5.0.0, Log4j 2 è l'impostazione predefinita. Queste versioni possono richiedere configurazioni di registrazione diverse. Per dettagli, consulta Apache Log4j 2.

MapReduce è il motore di esecuzione predefinito

Hive su versioni del rilascio di Amazon EMR 4.x utilizza MapReduce come motore di esecuzione predefinito. A partire da Amazon EMR versione 5.0.0, Tez è l'impostazione predefinita, che offre prestazioni migliorate per la maggior parte dei flussi di lavoro.

Autorizzazione Hive

Hive su versioni del rilascio di Amazon EMR 4.x supporta Autorizzazione Hive per HDFS ma non per EMRFS e Amazon S3. I cluster Amazon EMR vengono eseguiti con l'autorizzazione disabilitata per impostazione predefinita.

Comportamento di unione dei file Hive con Amazon S3

Hive su versioni del rilascio 4.x di Amazon EMR unisce file di piccole dimensioni al termine di un processo di sola mappatura se hive.merge.mapfiles è true. Un'unione viene attivata solo se la dimensione media dell'output del processo è inferiore all'impostazione hive.merge.smallfiles.avgsize. Il comportamento di Amazon EMR Hive è esattamente lo stesso se il percorso di output finale si trova in HDFS. Se il percorso di output si trova in Amazon S3, tuttavia, il parametro hive.merge.smallfiles.avgsize viene ignorato. In tal caso, l'attività di unione viene sempre attivata se hive.merge.mapfiles è impostato su true.