Maîtriser l'utilisation des technologies Hadoop
Initiation à l'écosystème Hadoop
Juvénal Chokogoue
Eyrolles
Avant-propos1
Pourquoi cet ouvrage ?
1
Objectifs de cet ouvrage
2
Objectif 1. Monter en compétences sur les principales technologies de l'écosystème Hadoop2
Objectif 2. Comprendre les concepts qui sous-tendent les technologies de l'écosystème Hadoop3
Objectif 3. Savoir identifier la portée fonctionnelle et stratégique des technologies de l'écosystème Hadoop3
À qui cet ouvrage s'adresse-t-il ?
4
Comment lire cet ouvrage ?
5
Les compléments web
5
Notes de l'auteur7
Remerciements9
Introduction à l'écosystème Hadoop11
Hadoop
12
L'approche conceptuelle d'Hadoop13
Fonctionnement d'Hadoop15
Taxonomie de l'écosystème Hadoop
19
En résumé
23
Présentation des guides d'étude
23
Guide d'étude
24
Principes clés
26
Partie 1
Les modèles de calcul de l'écosystème Hadoop29
Chapitre 1
Les modèles de calcul batch33
Principes du traitement parallèle en batch
34
Le traitement sur disque ou batch processing34
L'exécution parallèle en batch36
Le MapReduce
38
Définition du MapReduce38
Détails de l'exécution du MapReduce dans un cluster Hadoop39
Jointure de deux tables relationnelles41
Mahout et Hama
43
Mahout43
Hama46
En résumé
46
Guide d'étude
47
Principes clés
52
Chapitre 2
Les modèles de calcul interactifs53
Principes du traitement parallèle en in-memory
54
Définition de l'in-memory54
Calcul in-memory parallèle55
Spark : le moteur in-memory distribué d'Hadoop
57
Définition de Spark57
Fonctionnement général de Spark58
Fonctionnement de Spark sur Hadoop61
Tutoriel Spark avec Scala62
Tez : le moteur d'otimisation du MapReduce
65
En résumé
67
Guide d'étude
69
Principes clés
73
Partie 2
Les abstractions des modèles de calcul d'Hadoop75
Chapitre 3
Les langages d'abstraction d'Hadoop79
Généralités sur les langages d'abstraction
80
Hive
81
Infrastructure technique de Hive81
Écriture des requêtes HiveQL83
Pig
87
Fonctionnement de Pig88
Programmation en Pig Latin89
Différence entre Hive et Pig
90
En résumé
91
Guide d'étude
92
Principes clés
96
Chapitre 4
Le SQL sur Hadoop97
Les moteurs SQL MPP
98
Fonctionnement des bases de données parallèles98
Exécution des requêtes SQL dans les bases parallèles102
Les moteurs natifs SQL sur Hadoop
106
Fonctionnement des moteurs natifs SQL sur Hadoop106
Impala : le moteur SQL de Cloudera108
HAWQ : le moteur SQL de Pivotal112
Phoenix : le moteur SQL de Salesforce.com115
En résumé
116
Guide d'étude
117
Principes clés
123
Partie 3
Le stockage de données en Hadoop125
Chapitre 5
Généralités sur le stockage des données129
La donnée
130
Le format de codage des données130
Le format de stockage de données132
Le formats de fichiers non structurés
142
Le type de données142
De la donnée à la base de données
145
Problèmes soulevés par la collecte des données145
Les bases de données148
De la base de données aux SGBD
151
De la base de données au SGBDR151
Du SGBD SQL au SGBD NoSQL154
Panorama des SGBD NoSQL157
En résumé
160
Guide d'étude
161
Principes clés
167
Chapitre 6
HBase169
Concepts de base de HBase
170
Définition de HBase170
La base de données en HBase171
Architecture et fonctionnement de HBase
181
Utilisation de HBase
184
Règles de modélisation d'une table HBase184
Exploitation d'une table HBase186
Mapping d'une base de données relationnelle aux tables HBase189
Phoenix et HBase190
En résumé
191
Guide d'étude
192
Principes clés
195
Chapitre 7
L'indexation de contenu197
Principes de l'indexation de contenu
198
Les bases de l'indexation de contenu199
Techniques de construction du dictionnaire de l'index201
Utilisation de l'index lors des requêtes203
Les approches informatiques de l'indexation de contenu
203
La construction de l'index dans le système informatique204
Les composants d'un système informatique d'indexation de contenu208
Les SGBD NoSQL d'indexation de contenu
209
Définition des moteurs NoSQL d'indexation de contenu210
Fonctionnalités offertes par les moteurs NoSQL d'indexation de contenu213
En résumé
216
Guide d'étude
217
Principes clés
219
Chapitre 8
Apache Lucene221
Développement d'une application de recherche de contenu
222
Architecture d'une application de recherche de contenu222
Étapes de développement d'une application de recherche de contenu224
Le moteur Apache Lucene
229
Définition d'Apache Lucene229
Développement de modules de recherche et d'indexation de contenu avec Lucene231
En résumé
236
Guide d'étude
237
Principes clés
240
Chapitre 9
ElasticSearch243
Spécificités d'ElasticSearch
244
Indexation et recherche de contenu avec ElasticSearch
245
Concepts clés245
Indexation de contenu dans ElasticSearch246
Architecture d'ElasticSearch249
Recherche de contenu dans ElasticSearch252
Exploitation d'ElasticSearch
253
Fondamentaux du REST253
Utilisation d'ElasticSearch260
En résumé
266
Guide d'étude
268
Principes clés
273
Partie 4
La gestion du cluster Hadoop275
Chapitre 10
Yarn279
Limites d'Hadoop
280
Le modèle de calcul du Hadoop280
Le HDFS280
Haute disponibilité du cluster281
La sécurité du cluster281
YARN et les développements en cours sur Hadoop
282
Définition de YARN283
Fonctionnement de YARN284
En résumé
287
Guide d'étude
288
Principes clés
291
Chapitre 11
Apache ZooKeeper293
Problèmes du développement d'applications en environnement distribué
294
Le problème de panne partielle294
Le problème de coordination295
ZooKeeper
295
Principes295
Espace de noms297
Fonctionnement298
Méthodes exposées299
En résumé
300
Guide d'étude
301
Principes clés
303
Partie 5
Le streaming en temps réel dans Hadoop305
Chapitre 12
Apache Storm309
Définition et principes
309
Fonctionnement
311
Les topologies
312
Utilisation de Storm
315
Le SQL316
Flux316
Trident316
En résumé
317
Guide d'étude
318
Principes clés
320
Partie 6
Les outils annexes de l'écosystème Hadoop321
Chapitre 13
Oozie et Sqoop325
La planification des jobs Hadoop : Oozie
326
Définition326
Fonctionnement326
Utilisation328
La planification de l'ingestion des données dans Hadoop : Sqoop
331
Définition331
Fonctionnement331
Utilisation335
En résumé
339
Guide d'étude
340
Principes clés
344
Chapitre 14
Hue et Ambari345
Hue : l'interface graphique d'Hadoop
345
Ambari : l'interface d'administration du cluster
347
En résumé
348
Guide d'étude
349
Principes clés
349
Partie 7
Adoption à grande échelle d'Hadoop351
Chapitre 15
Distributions d'Hadoop355
La distribution Cloudera
356
La distribution Hortonworks
357
La distribution MapR
357
Offres comparées des trois distributions
360
Guide de sélection de sa distribution Hadoop
361
En résumé
365
Guide d'étude
366
Principes clés
368
Chapitre 16
Solutions Hadoop embarquées371
Les stratégies d'intégration logicielles
371
L'interfaçage372
L'intégration372
IBM InfoSphere BigInsights
373
Pivotal Big Data Suite
374
SAS High Performance Analytics
375
En résumé
377
Guide d'étude
378
Principes clés
380
Chapitre 17
Hadoop dans le Cloud381
Le Cloud computing et Hadoop
381
Contexte d'émergence du Cloud computing382
Définition du Cloud computing383
Taxonomie des services Cloud384
Hadoop en Cloud385
Amazon Elastic MapReduce (EMR)
388
Fonctionnalités388
Tarification390
Microsoft Azure HDInsight
392
Fonctionnalités392
Tarification393
Guide d'évaluation d'une offre Hadoop dans le Cloud
396
Critère 1. Variabilité à long terme du fournisseur397
Critère 2. Composants Hadoop disponibles397
Critère 3. Performance397
Critère 4. Propriété des données398
Critère 5. Sécurité des données398
Critère 6. Niveaux de services (SLA)399
Critère 7. Tarification399
En résumé
400
Guide d'étude
401
Principes clés
405
Chapitre 18
Le big data407
Contexte général
407
Big data, comment en est-on arrivé là ?408
Qu'est-ce que le big data ?409
Les facteurs du big data
410
L'évolution culturelle410
Les facteurs économiques411
L'utilisation croissante des smartphones et l'ubiquité d'Internet412
Le Cloud computing et la virtualisation414
L'open source414
En résumé
416
Guide d'étude
417
Principes clés
419
Conclusion générale de l'ouvrage421
Votre avis compte !423
Liens et références utiles424
Liens web
424
Ouvrages de référence
428
Index429