SlideShare une entreprise Scribd logo
Technique #1: USE TEZ
 TEZ : Moteur d’exécution qui améliore les performances du paradigme
MapReduce
 Repose sur le système de DAG (à l’instar de Spark) : calcule le plan d’exécution le
plus optimal pour minimiser le shuffling des données
 Pour l’utiliser :
set hive.execution.engine=tez;
Technique #2: USE ORC OR PARQUET (1)
Format : ORC
 Compression efficiente : stocke par colonne et compressé, ce qui mène à de plus
petites lectures disques et de meilleures performances.
 Transactions ACID (atomicité, cohérence, isolation, durabilité), soit un ensemble
de propriété garantissant la fiabilité d’une transaction
 Souvent utilisé pour des gains de performance
 A préférer pour des structures de fichiers plats
Format : ORC
Exemple :
CREATE TABLE A_ORC (
playerID int, name string, age int
) STORED AS ORC
tblproperties (“orc.compress" = “SNAPPY”);
Format : PARQUET
 Stocke ses éléments en arborescence tel que Google Dremel le réalise.
 Compressé par défaut en Snappy (contrairement à ORC)
 A préférer du format ORC lorsque les données sont imbriquées (principe de
stockage en arborescence)
 Ne supporte pas les transaction ACID (contrairement à l’ORC)
Format : PARQUET
 Exemple :
CREATE TABLE A_PARQUET (
playerID int, name string, age int
) STORED AS PARQUET
Technique #3: USE VECTORIZATION
 Il s’agit d’une fonctionnalité de Hive qui permet de réduire les usages de CPU
pour les requêtes classiques (filtres, agrégations, jointures)
 Permet de traiter des batchs de lignes plutôt que des ligne par ligne
 Commande :
set hive.vectorized.execution.enabled = true;
set hive.vectorized.execution.reduce.enabled = true;
Technique #4: COST BASED QUERY OPTIMIZATION
 CBO : plan d’exécution moins couteux pour chaque requête SQL. Ce plan
permettra la réduction de l’allocation des ressources (CPU, Memory, I/O…),
 Pour utiliser CBO, définissez les paramètres suivants :
set hive.cbo.enable=true;
set hive.compute.query.using.stats=true;
set hive.stats.fetch.column.stats=true;
set hive.stats.fetch.partition.stats=true;
Technique #5 : PARTITIONNING
 Accélère l’accès aux données avec des champs récurrents avec de faibles
cardinalités
 Exemple :
CREATE TABLE mytable (
name string,
city string,
employee_id int
)
PARTITIONED BY (year STRING, month STRING, day STRING) ;
Technique #6 : BUCKETING
 Bucketing( ou clustering) : fonctionnalité de Hive permettant de séparer les données en
multiple fichiers ou répertoires. Utilisé pour un requêtage plus efficient.
set hive.enforce.bucketing = true
 Exemple :
CREATE TABLE mytable (
employee_id int,
name string,
) CLUSTERED BY (employee_id ) INTO 256 BUCKETS
hdfs getconf -confKey dfs.blocksize
Technique #6 : BUCKETING
 Pour déterminer le nombre de buckets à choisir, il est intéressant de calculer le rapport
entre le nombre de données et la taille des bloc HDFS. Cela permet ainsi d’éviter d’allouer
de la mémoire HDFS aux fichiers qui sont pour la plupart vides.
 On peut déterminer la taille des blocs HDFS via la commande suivante
hdfs getconf -confKey dfs.blocksize
 Ex : pour 2 TB de données, on obtient le nombre de buckets par le calcul suivant:
nb_buckets = 2TB/ taille du bloc HDFS
Technique #7 : OTHERS RECOMMANDATIONS
 D’autres recommandations de paramètres à définir sont également préconisées(2)
pour optimiser les performances de Hive :
 hive.optimize.reducededuplication.min.reducer=4
 hive.optimize.reducededuplication=true
 hive.merge.mapfiles=true
 hive.merge.mapredfiles=false
 hive.merge.smallfiles.avgsize=16000000
 hive.merge.size.per.task=256000000
 hive.merge.sparkfiles=true
 hive.auto.convert.join=true
 hive.auto.convert.join.noconditionaltask=true
 hive.auto.convert.join.noconditionaltask.size=20Mhive.optimize.bucketmapjoin.sortedmerge=false hive.map.aggr.hash.percentmemory=0.5
hive.map.aggr=true
Technique #6 : OTHERS RECOMMANDATIONS
 hive.optimize.bucketmapjoin.sortedmerge=false
 hive.map.aggr.hash.percentmemory=0.5
 hive.map.aggr=true
 hive.stats.autogather=true
 hive.stats.fetch.column.stats=true
 hive.compute.query.using.stats=true
 hive.limit.pushdown.memory.usage=0.4 (MR and Spark)
 hive.optimize.index.filter=true
 hive.auto.convert.join.noconditionaltask=true
REFERENCES
 (1) Hortonworks : https://fr.hortonworks.com/blog/orcfile-in-hdp-2-better-compression-better-performance
 (2) Cloudera-Hive : https://www.cloudera.com/documentation/enterprise/5-9-x/PDF/cloudera-hive.pdf

Contenu connexe

Similaire à Hive Tuning

Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL Serveur
Microsoft Technet France
 
LP_chapitre3_Creation et gestion_BD_2019.pptx
LP_chapitre3_Creation et gestion_BD_2019.pptxLP_chapitre3_Creation et gestion_BD_2019.pptx
LP_chapitre3_Creation et gestion_BD_2019.pptx
FATIMAEZZAHRAEOUBELL
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réelles
Geoffroy Arnoud
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in Paris
Ted Drake
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.ppt
Idriss22
 
DATABASE_DATA_STRUCTURE_DEVOXXFRANCE2024.pdf
DATABASE_DATA_STRUCTURE_DEVOXXFRANCE2024.pdfDATABASE_DATA_STRUCTURE_DEVOXXFRANCE2024.pdf
DATABASE_DATA_STRUCTURE_DEVOXXFRANCE2024.pdf
Héla Ben Khalfallah
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)
Alexis Seigneurin
 
Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g
noble Bajoli
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
marwa baich
 
No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010
JUG Lausanne
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
Blandine Larbret
 
REX Ansible
REX AnsibleREX Ansible
REX Ansible
Noël Bardelot
 
Spark Streaming
Spark StreamingSpark Streaming
Spark Streaming
PALO IT
 
Présentation langage de programmationHive.pdf
Présentation langage de programmationHive.pdfPrésentation langage de programmationHive.pdf
Présentation langage de programmationHive.pdf
khalidmoussaid4
 
Présentation Big Data et REX Hadoop
Présentation Big Data et REX HadoopPrésentation Big Data et REX Hadoop
Présentation Big Data et REX Hadoop
Joseph Glorieux
 
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdfCHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
YounesOuladSayad1
 
Les bases BI sont-elles différentes?
Les bases BI sont-elles différentes?Les bases BI sont-elles différentes?
Les bases BI sont-elles différentes?
Franck Pachot
 
Plate-forme Hitachi NAS : description et fonctionnel
Plate-forme Hitachi NAS : description et fonctionnelPlate-forme Hitachi NAS : description et fonctionnel
Plate-forme Hitachi NAS : description et fonctionnel
Bertrand LE QUELLEC
 
Elasticsearch performance tuning
Elasticsearch performance tuningElasticsearch performance tuning
Elasticsearch performance tuningebiznext
 

Similaire à Hive Tuning (20)

Analyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL ServeurAnalyse et optimisation des performances du moteur SQL Serveur
Analyse et optimisation des performances du moteur SQL Serveur
 
LP_chapitre3_Creation et gestion_BD_2019.pptx
LP_chapitre3_Creation et gestion_BD_2019.pptxLP_chapitre3_Creation et gestion_BD_2019.pptx
LP_chapitre3_Creation et gestion_BD_2019.pptx
 
Déploiement ELK en conditions réelles
Déploiement ELK en conditions réellesDéploiement ELK en conditions réelles
Déploiement ELK en conditions réelles
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in Paris
 
LP_Admin_base_données.ppt
LP_Admin_base_données.pptLP_Admin_base_données.ppt
LP_Admin_base_données.ppt
 
DATABASE_DATA_STRUCTURE_DEVOXXFRANCE2024.pdf
DATABASE_DATA_STRUCTURE_DEVOXXFRANCE2024.pdfDATABASE_DATA_STRUCTURE_DEVOXXFRANCE2024.pdf
DATABASE_DATA_STRUCTURE_DEVOXXFRANCE2024.pdf
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)
 
Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g Administration des base de donnees sous oracle 10g
Administration des base de donnees sous oracle 10g
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
 
No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
 
REX Ansible
REX AnsibleREX Ansible
REX Ansible
 
Spark Streaming
Spark StreamingSpark Streaming
Spark Streaming
 
mix-it 2011
mix-it 2011mix-it 2011
mix-it 2011
 
Présentation langage de programmationHive.pdf
Présentation langage de programmationHive.pdfPrésentation langage de programmationHive.pdf
Présentation langage de programmationHive.pdf
 
Présentation Big Data et REX Hadoop
Présentation Big Data et REX HadoopPrésentation Big Data et REX Hadoop
Présentation Big Data et REX Hadoop
 
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdfCHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
 
Les bases BI sont-elles différentes?
Les bases BI sont-elles différentes?Les bases BI sont-elles différentes?
Les bases BI sont-elles différentes?
 
Plate-forme Hitachi NAS : description et fonctionnel
Plate-forme Hitachi NAS : description et fonctionnelPlate-forme Hitachi NAS : description et fonctionnel
Plate-forme Hitachi NAS : description et fonctionnel
 
Elasticsearch performance tuning
Elasticsearch performance tuningElasticsearch performance tuning
Elasticsearch performance tuning
 

Dernier

Sondage ELABE pour Les Echos et l'Institut Montaigne -Les Français et la guer...
Sondage ELABE pour Les Echos et l'Institut Montaigne -Les Français et la guer...Sondage ELABE pour Les Echos et l'Institut Montaigne -Les Français et la guer...
Sondage ELABE pour Les Echos et l'Institut Montaigne -Les Français et la guer...
contact Elabe
 
L'Observatoire politique ELABE pour Les Echos - Juin 2024
L'Observatoire politique ELABE pour Les Echos - Juin 2024L'Observatoire politique ELABE pour Les Echos - Juin 2024
L'Observatoire politique ELABE pour Les Echos - Juin 2024
contact Elabe
 
Webinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptxWebinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptx
Institut de l'Elevage - Idele
 
Estimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABEEstimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABE
contact Elabe
 
Les Français et les élections législatives
Les Français et les élections législativesLes Français et les élections législatives
Les Français et les élections législatives
contact Elabe
 
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
contact Elabe
 
Les Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vagueLes Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vague
contact Elabe
 
Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024
contact Elabe
 
Etat de l’opinion - Journée CCR CAT « Protégeons l’assurabilité »
Etat de l’opinion - Journée CCR CAT « Protégeons l’assurabilité »Etat de l’opinion - Journée CCR CAT « Protégeons l’assurabilité »
Etat de l’opinion - Journée CCR CAT « Protégeons l’assurabilité »
contact Elabe
 
Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024
contact Elabe
 
Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024
contact Elabe
 
Productivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointementProductivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointement
La Fabrique de l'industrie
 

Dernier (12)

Sondage ELABE pour Les Echos et l'Institut Montaigne -Les Français et la guer...
Sondage ELABE pour Les Echos et l'Institut Montaigne -Les Français et la guer...Sondage ELABE pour Les Echos et l'Institut Montaigne -Les Français et la guer...
Sondage ELABE pour Les Echos et l'Institut Montaigne -Les Français et la guer...
 
L'Observatoire politique ELABE pour Les Echos - Juin 2024
L'Observatoire politique ELABE pour Les Echos - Juin 2024L'Observatoire politique ELABE pour Les Echos - Juin 2024
L'Observatoire politique ELABE pour Les Echos - Juin 2024
 
Webinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptxWebinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptx
 
Estimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABEEstimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABE
 
Les Français et les élections législatives
Les Français et les élections législativesLes Français et les élections législatives
Les Français et les élections législatives
 
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
 
Les Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vagueLes Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vague
 
Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024
 
Etat de l’opinion - Journée CCR CAT « Protégeons l’assurabilité »
Etat de l’opinion - Journée CCR CAT « Protégeons l’assurabilité »Etat de l’opinion - Journée CCR CAT « Protégeons l’assurabilité »
Etat de l’opinion - Journée CCR CAT « Protégeons l’assurabilité »
 
Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024
 
Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024
 
Productivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointementProductivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointement
 

Hive Tuning

  • 1.
  • 2. Technique #1: USE TEZ  TEZ : Moteur d’exécution qui améliore les performances du paradigme MapReduce  Repose sur le système de DAG (à l’instar de Spark) : calcule le plan d’exécution le plus optimal pour minimiser le shuffling des données  Pour l’utiliser : set hive.execution.engine=tez;
  • 3. Technique #2: USE ORC OR PARQUET (1)
  • 4. Format : ORC  Compression efficiente : stocke par colonne et compressé, ce qui mène à de plus petites lectures disques et de meilleures performances.  Transactions ACID (atomicité, cohérence, isolation, durabilité), soit un ensemble de propriété garantissant la fiabilité d’une transaction  Souvent utilisé pour des gains de performance  A préférer pour des structures de fichiers plats
  • 5. Format : ORC Exemple : CREATE TABLE A_ORC ( playerID int, name string, age int ) STORED AS ORC tblproperties (“orc.compress" = “SNAPPY”);
  • 6. Format : PARQUET  Stocke ses éléments en arborescence tel que Google Dremel le réalise.  Compressé par défaut en Snappy (contrairement à ORC)  A préférer du format ORC lorsque les données sont imbriquées (principe de stockage en arborescence)  Ne supporte pas les transaction ACID (contrairement à l’ORC)
  • 7. Format : PARQUET  Exemple : CREATE TABLE A_PARQUET ( playerID int, name string, age int ) STORED AS PARQUET
  • 8. Technique #3: USE VECTORIZATION  Il s’agit d’une fonctionnalité de Hive qui permet de réduire les usages de CPU pour les requêtes classiques (filtres, agrégations, jointures)  Permet de traiter des batchs de lignes plutôt que des ligne par ligne  Commande : set hive.vectorized.execution.enabled = true; set hive.vectorized.execution.reduce.enabled = true;
  • 9. Technique #4: COST BASED QUERY OPTIMIZATION  CBO : plan d’exécution moins couteux pour chaque requête SQL. Ce plan permettra la réduction de l’allocation des ressources (CPU, Memory, I/O…),  Pour utiliser CBO, définissez les paramètres suivants : set hive.cbo.enable=true; set hive.compute.query.using.stats=true; set hive.stats.fetch.column.stats=true; set hive.stats.fetch.partition.stats=true;
  • 10. Technique #5 : PARTITIONNING  Accélère l’accès aux données avec des champs récurrents avec de faibles cardinalités  Exemple : CREATE TABLE mytable ( name string, city string, employee_id int ) PARTITIONED BY (year STRING, month STRING, day STRING) ;
  • 11. Technique #6 : BUCKETING  Bucketing( ou clustering) : fonctionnalité de Hive permettant de séparer les données en multiple fichiers ou répertoires. Utilisé pour un requêtage plus efficient. set hive.enforce.bucketing = true  Exemple : CREATE TABLE mytable ( employee_id int, name string, ) CLUSTERED BY (employee_id ) INTO 256 BUCKETS hdfs getconf -confKey dfs.blocksize
  • 12. Technique #6 : BUCKETING  Pour déterminer le nombre de buckets à choisir, il est intéressant de calculer le rapport entre le nombre de données et la taille des bloc HDFS. Cela permet ainsi d’éviter d’allouer de la mémoire HDFS aux fichiers qui sont pour la plupart vides.  On peut déterminer la taille des blocs HDFS via la commande suivante hdfs getconf -confKey dfs.blocksize  Ex : pour 2 TB de données, on obtient le nombre de buckets par le calcul suivant: nb_buckets = 2TB/ taille du bloc HDFS
  • 13. Technique #7 : OTHERS RECOMMANDATIONS  D’autres recommandations de paramètres à définir sont également préconisées(2) pour optimiser les performances de Hive :  hive.optimize.reducededuplication.min.reducer=4  hive.optimize.reducededuplication=true  hive.merge.mapfiles=true  hive.merge.mapredfiles=false  hive.merge.smallfiles.avgsize=16000000  hive.merge.size.per.task=256000000  hive.merge.sparkfiles=true  hive.auto.convert.join=true  hive.auto.convert.join.noconditionaltask=true  hive.auto.convert.join.noconditionaltask.size=20Mhive.optimize.bucketmapjoin.sortedmerge=false hive.map.aggr.hash.percentmemory=0.5 hive.map.aggr=true
  • 14. Technique #6 : OTHERS RECOMMANDATIONS  hive.optimize.bucketmapjoin.sortedmerge=false  hive.map.aggr.hash.percentmemory=0.5  hive.map.aggr=true  hive.stats.autogather=true  hive.stats.fetch.column.stats=true  hive.compute.query.using.stats=true  hive.limit.pushdown.memory.usage=0.4 (MR and Spark)  hive.optimize.index.filter=true  hive.auto.convert.join.noconditionaltask=true
  • 15. REFERENCES  (1) Hortonworks : https://fr.hortonworks.com/blog/orcfile-in-hdp-2-better-compression-better-performance  (2) Cloudera-Hive : https://www.cloudera.com/documentation/enterprise/5-9-x/PDF/cloudera-hive.pdf