Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Considérations relatives à l'utilisation de Hive sur Amazon EMR 4.x
Cette section couvre les différences à prendre en compte lors de l'utilisation de la version Hive 1.0.0 sur les versions 4.x d'Amazon EMR, en comparaison avec Hive 2.x sur les versions 5.x d'Amazon EMR.
Les transactions ACID ne sont pas prises en charge.
Hive sur les versions 4.x d'Amazon EMR ne prend pas en charge les transactions ACID avec les données Hive stockées dans Amazon S3 lorsque vous utilisez les versions 4.x. Si vous essayez de créer une table transactionnelle dans Amazon S3, cela entraîne une exception.
Lecture et écriture de tables dans Amazon S3
Hive sur les versions 4.x d'Amazon EMR peut écrire directement dans Amazon S3 sans utiliser de fichiers temporaires. Cela améliore les performances, mais par voie de conséquence, vous ne pouvez pas lire et écrire dans la même table dans Amazon S3 via la même instruction Hive. Une solution de contournement consiste à créer et utiliser une table temporaire dans HDFS.
L'exemple suivant montre comment utiliser plusieurs instructions Hive pour mettre à jour une table dans Amazon S3. Les instructions créent une table temporaire nommée tmp
dans HDFS en se basant sur une table dans Amazon S3 nommée my_s3_table
. La table dans Amazon S3 est alors mise à jour avec le contenu de la table temporaire.
CREATE TEMPORARY TABLE tmp LIKE my_s3_table;
INSERT OVERWRITE TABLE tmp SELECT ....;
INSERT OVERWRITE TABLE my_s3_table SELECT * FROM tmp;
Log4j par rapport à Log4j 2
Hive sur les versions Amazon EMR 4.x utilise Log4j. À partir de la version 5.0.0, Log4j 2 est la configuration par défaut. Ces versions peuvent nécessiter différentes configurations de journalisation. Pour plus de détails, consultez Apache Log4j 2
MapReduce est le moteur d'exécution par défaut
Les versions 4.x de Hive on Amazon EMR sont MapReduce utilisées comme moteur d'exécution par défaut. À partir de la version Amazon EMR 5.0.0, Tez est la valeur par défaut, ce qui offre des performances améliorées pour la plupart des flux de travail.
Autorisation Hive
Hive sur les versions Amazon EMR 4.x prend en charge l'autorisation Hive
Comportement de fusion de fichiers Hive avec Amazon S3
Hive sur les versions 4.x d'Amazon EMR fusionne de petits fichiers à la fin d'une tâche de mappage uniquement si hive.merge.mapfiles
est défini sur true
. Une fusion est déclenchée uniquement si la taille de sortie moyenne de la tâche est inférieure au paramètre hive.merge.smallfiles.avgsize
. Le comportement d'Amazon EMR Hive est identique si le chemin de la sortie finale est sur HDFS. Cependant, si le chemin de sortie se trouve dans Amazon S3, le paramètre hive.merge.smallfiles.avgsize
est ignoré. Dans ce cas, la tâche de fusion est toujours déclenchée si hive.merge.mapfiles
est défini sur true
.