Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les systèmes de données volumineux basés sur Apache Hadoop tels que HDInsight permettent de traiter des données à l’aide d’un large éventail d’outils et de technologies. Le tableau suivant décrit les principaux avantages et les considérations de chacun de ces mécanismes.
Mécanisme de requête | Avantages | Considérations |
---|---|---|
Apache Hive avec HiveQL |
|
|
Apache Pig avec Pig Latin |
|
|
MapReduce personnalisé |
|
|
Apache HCatalog |
|
|
En général, vous utilisez l’approche la plus simple permettant de fournir les résultats recherchés. Par exemple, vous pouvez obtenir ces résultats en utilisant simplement Hive, mais pour les scénarios plus complexes, vous devrez peut-être utiliser Pig, ou encore écrire vos propres composants map et reduce. Vous pouvez également décider, après avoir essayé Hive ou Pig, que des composants map et reduce personnalisés pourraient offrir de meilleures performances en vous permettant d’affiner et d’optimiser le traitement.
Composants MapReduce personnalisés
Le code MapReduce est composé de deux fonctions distinctes implémentées sous la forme des composants map et reduce. Le composant map est exécuté en parallèle sur plusieurs nœuds de cluster, chacun appliquant le mappage à son propre sous-ensemble de données. Le composant reduce rassemble et réduit la forme finale des résultats en un seul résultat de toutes les fonctions de mappage. Pour plus d’informations sur ces deux composants, consultez Utilisation de MapReduce dans Hadoop sur HDInsight.
Dans la plupart des scénarios de traitement HDInsight, il est plus simple et plus efficace d’utiliser un niveau supérieur d’abstraction tel que Pig ou Hive. Vous pouvez également créer des composants map et reduce personnalisés à utiliser dans des scripts Hive pour un traitement plus sophistiqué.
Les composants MapReduce personnalisés sont généralement écrits en Java. Hadoop fournit une interface de streaming qui permet également d’utiliser des composants développés dans d’autres langages tels que C#, F#, Visual Basic, Python et JavaScript.
- Pour connaître la procédure de développement de programmes Java MapReduce personnalisés, consultez Développement de programmes Java MapReduce pour Hadoop dans HDInsight.
Vous devez envisager de créer vos propres composants map et reduce dans les conditions suivantes :
- Vous devez traiter des données totalement non structurées à l’aide d’une analyse et d’une logique personnalisée pour en tirer des informations structurées.
- Vous souhaitez effectuer des tâches complexes difficiles (voire impossibles) à exprimer en Pig ou Hive sans avoir recours à la création d’une fonction définie par l’utilisateur. Par exemple, vous devrez peut-être utiliser un service de géocodage externe pour convertir des coordonnées de latitude et de longitude ou des adresses IP dans les données sources en noms d’emplacements géographiques.
- Vous souhaitez réutiliser votre code .NET, Python ou JavaScript existant dans les composants MapReduce en utilisant l’interface de streaming Hadoop.
Charger et exécuter votre programme MapReduce personnalisé
Les programmes MapReduce les plus courants sont écrits en Java et compilés dans un fichier jar.
Une fois que vous avez développé, compilé et testé votre programme MapReduce, utilisez la commande
scp
pour charger votre fichier jar dans le nœud principal.scp mycustomprogram.jar sshuser@CLUSTERNAME-ssh.azurehdinsight.net
Remplacez CLUSTERNAME par le nom du cluster. Si vous avez utilisé un mot de passe pour sécuriser le compte SSH, vous êtes invité à entrer ce mot de passe. Si vous avez utilisé un certificat, vous devrez peut-être utiliser le paramètre
-i
pour spécifier le fichier de clé privée.Utilisez la commande ssh pour vous connecter à votre cluster. Modifiez la commande ci-dessous en remplaçant CLUSTERNAME par le nom de votre cluster, puis entrez la commande :
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
À partir de la session SSH, exécutez votre programme MapReduce via YARN.
yarn jar mycustomprogram.jar mynamespace.myclass /example/data/sample.log /example/data/logoutput
Cette commande envoie la tâche MapReduce à YARN. Le fichier d’entrée est
/example/data/sample.log
, et le répertoire de sortie est/example/data/logoutput
. Le fichier d’entrée et tous les fichiers de sortie sont stockés dans le stockage par défaut du cluster.
Étapes suivantes
- Utiliser C# avec streaming MapReduce sur Apache Hadoop dans HDInsight
- Développer des programmes MapReduce Java pour Apache Hadoop sur HDInsight
- Utiliser Azure Toolkit for Eclipse afin de créer des applications Apache Spark pour un cluster HDInsight
- Utiliser des fonctions définies par l’utilisateur (UDF) Python avec Apache Hive et Apache Pig dans HDInsight