Introduction 1. Objectif du chapitre 9 2. Le Big Data 10 2.1 Introduction 10 2.2 Informatique connectée, objets "intelligents" et données collectées 11 2.3 Les unités de mesure dans le monde Big Data 12 2.4 Big Data : au-delà des volumes, une rupture conceptuelle 13 3. Big Data : l'échec des approches classiques 15 4. Hadoop et Big Data 16 4.1 Introduction 16 4.2 Google File System et MapReduce 17 4.3 Hadoop 17 5. Problèmes "hadoopéables" 18 6. Pour aller plus loin 19 6.1 Niveau de performance des disques durs actuels 19 6.2 Fonctions de type "map" et fonctions de type "reduce" 20 6.3 Les distributions de Hadoop 20 Installer Hadoop sur une station de travail 1. Objectif du chapitre 23 2. Les différents modes de fonctionnement de Hadoop 23 2.1 Le mode local 23 2.2 Le mode pseudo-distribué 24 2.3 Le mode totalement distribué 24 1/8
2.4 Les clusters Hadoop virtualisés 25 3. Installer Hadoop en mode pseudo-distribué 25 3.1 Pré-requis matériels 25 3.2 Pré-requis logiciels 26 3.2.1 Système d'exploitation 26 3.2.2 Machine virtuelle 26 4. Installer Hadoop pas-à-pas sur une station de travail 26 4.1 Installation de VirtualBox 26 4.2 Installation de Hadoop (distribution CDH4) 27 Une vue globale de Hadoop 1. Objectif du chapitre 43 2. Introduction 43 3. Stocker et traiter des volumes de données très importants 45 4. Garantir la redondance des données 46 5. Faire face à la panne d un nœud 47 5.1 Réaffecter les tâches 47 5.2 Garantir la bonne fin des jobs en cours 48 5.3 Le retour à la normale 48 6. Garantir une évolution proportionnelle des performances 48 HDFS 2/8
1. Objectif du chapitre 51 2. Présentation de HDFS 51 3. Principe de fonctionnement 52 3.1 Le NameNode 53 3.2 Le SecondaryNameNode 54 3.3 Le NN comme SPOF 55 3.4 Lecture d'un fichier HDFS par un programme Hadoop 55 3.5 Création d'un fichier HDFS par un programme Hadoop 57 MapReduce 1. Objectif du chapitre 61 2. Présentation de MapReduce 61 3. Principes de fonctionnement de MapReduce 62 4. MapReduce du point de vue du développeur Java 62 4.1 Les entrées-sorties 63 4.2 La phase map (exemple 1) 65 4.3 Entre la phase map et la phase reduce (exemple 1) 66 4.4 La phase reduce (exemple 1) 67 4.5 La phase map (exemple 2) 68 4.6 Entre la phase map et la phase reduce (exemple 2) 69 4.7 La phase reduce (exemple 2) 70 4.8 Quelques remarques générales concernant les mappers et les reducers 70 5. MapReduce du point de vue de l'administrateur Hadoop 71 5.1 Le JobTracker 73 3/8
5.2 Le TaskTracker 76 Les apports de la version 2 de Hadoop 1. Objectif du chapitre 77 2. High Availability 78 3. Federation 79 4. YARN 81 5. Support de Microsoft Windows 84 6. Autres apports de la version 2 de Hadoop 85 7. Conclusion 85 Aspects matériels 1. Objectif du chapitre 87 2. Les nœuds maîtres 88 3. Les nœuds esclaves 89 4. Les aspects réseau 90 5. Déterminer la taille d'un cluster Hadoop et prévoir son évolution 92 4/8
6. Un exemple de cluster Hadoop 94 7. Pour aller plus loin 97 7.1 Règles concernant les nœuds esclaves 97 7.2 Règles concernant les nœuds maîtres 97 7.3 Règles concernant le réseau 98 7.4 Règles concernant le cluster 98 L'écosystème de Hadoop 1. Objectif du chapitre 99 2. Pig, Hive et l'api de streaming 100 2.1 Introduction 100 2.2 Hive 101 2.3 Pig 102 2.4 L'API de streaming 103 3. Outils orientés bases de données 103 3.1 Flume 103 3.2 Squoop 106 3.3 HBase 107 3.4 Impala 109 4. Outils d'exploitation 110 4.1 ZooKeeper 110 4.2 Cloudera Manager 112 4.3 Oozie 114 5. Autres outils 119 5.1 Hue 119 5.2 Mahout 120 5/8
6. Comment intégrer Hadoop dans un système d'information? 121 Développer des programmes Hadoop 1. Objectifs du chapitre 125 2. WordCount 127 2.1 Préparation des données 128 2.2 Importation des données dans HDFS 129 2.3 WordCount en Java 131 2.3.1 Le driver 131 2.3.2 Le mapper 134 2.3.3 Le reducer 136 2.3.4 Compilation et exécution du job 139 2.4 WordCount en Python 147 2.4.1 Le mapper 148 2.4.2 Le reducer 149 2.4.3 Exécution du job 150 2.5 Conclusion 153 3. JoinTables 154 3.1 Introduction 154 3.2 JoinTables en Java 155 3.3 JoinTables en Pig Latin 159 3.4 JoinTables en HiveQL 160 3.5 Conclusion 161 4. Conclusion 161 Mettre en œuvre un cluster Hadoop 6/8
1. Objectif du chapitre 163 2. Cluster dédié ou cluster dans le Cloud? 163 3. Les coûts 168 3.1 Cluster dédié installé dans les locaux de l'organisme 168 3.1.1 Les coûts de formation 168 3.1.2 Les coûts matériels 169 3.1.3 Les coûts logiciels 170 3.1.4 Le coût du support technique 171 3.1.5 Les coûts en énergie 171 3.1.6 Les coûts en personnel 171 3.2 Cluster dédié installé chez un hébergeur 173 3.2.1 Les coûts de formation 173 3.2.2 Les coûts matériels 173 3.2.3 Les coûts logiciels 173 3.2.4 Le coût du support technique 173 3.2.5 Les coûts en personnel 174 3.2.6 Les coûts en énergie 174 3.3 Cluster partagé dans le Cloud 174 3.3.1 Les coûts de formation 174 3.3.2 Les coûts matériels 175 3.3.3 Les coûts logiciels 175 3.3.4 Le coût du support technique 175 3.3.5 Les coûts en énergie 175 3.3.6 Les coûts en personnel 175 3.3.7 Les coûts en services 175 Quand utiliser Hadoop? 1. Objectif du chapitre 177 7/8
2. Exemples de problèmes "hadoopéables" 177 3. Exemples réels d'utilisation de Hadoop 178 3.1 Dans le domaine de la gestion de clientèle 178 3.2 Dans le domaine de la publicité 179 3.3 Dans le domaine de la santé 179 3.4 Dans le domaine de la lutte contre la fraude 183 3.5 Dans le domaine des villes "intelligentes" 184 3.6 Dans le domaine des moteurs de recherche ou de recommandations 185 3.7 Dans le domaine de la maintenance préventive 187 3.8 Autres usages 189 3.8.1 Identification de patterns dans des photographies 189 3.9 Principales sources d'information utilisées dans ce chapitre 190 Conclusion 1. Le futur de Hadoop 193 1.1 Les évolutions matérielles 193 1.2 Les évolutions logicielles 194 1.3 Les évolutions dans l'usage 195 2. Quand Google et Hadoop se fourvoient 196 Index 199 8/8