Cet article de blog a été publié sur Hortonworks.com avant la fusion avec Cloudera. Certains liens, ressources ou références peuvent ne plus être exacts.
Les ordinateurs deviennent plus intelligents et nous non.
–Tim Berners Lee, développeur Web
Google, Amazon et Netflix nous ont conditionnés. En tant que consommateurs, nous attendons des applications intelligentes qui prédisent, suggèrent et anticipent chacun de nos gestes. Nous voulons qu'ils passent au crible les millions de possibilités et n'en suggèrent que quelques-unes qui répondent à nos besoins. Nous voulons des applications qui nous emmènent dans un voyage personnalisé à travers un monde de possibilités infinies.
Ces parcours personnalisés nécessitent des systèmes pour stocker et donner un sens à d'énormes volumes de données dans un délai acceptable. C'est le point fort d'Hadoop depuis le premier jour.
La livraison du voyage nécessite également que les applications s'intègrent directement à l'analyse approfondie. Cela reste un défi car la plupart des systèmes opérationnels fonctionnent en dehors de Hadoop, plaçant les données opérationnelles et les analyses dans des silos séparés.
Des technologies comme Apache Hadoop YARN et Apache Slider commencent à briser ces silos. YARN fournit des contrôles d'isolation des ressources Hadoop qui permettent d'analyser en profondeur les données d'application sur place tout en fournissant des réponses dans un délai acceptable. Et Apache Slider facilite le déploiement de systèmes opérationnels de longue durée dans Hadoop.
YARN est le centre architectural de Hadoop qui permet à plusieurs moteurs de traitement de données tels que le SQL interactif, le streaming en temps réel, la science des données et le traitement par lots de gérer les données stockées sur une seule plate-forme, ouvrant une toute nouvelle approche de l'analyse. Cela fournit une intégration transparente des systèmes opérationnels et analytiques et une base sur laquelle l'entreprise peut construire une architecture de données moderne (MDA).
L'état de l'art dans Hadoop
Il est aujourd'hui possible de combiner opérations et analyses dans Hadoop, et en fait, nous voyons beaucoup de nos clients le faire.
Les éléments dont vous avez besoin sont déjà dans Hadoop :
- Apache HBase est la base de données NoSQL pour Hadoop. Elle est idéale pour les mises à jour rapides et l'accès aux données à faible latence.
- Apache Phoenix (lancé par Salesforce) est un habillage SQL pour les données dans HBase. Phoenix étudie déjà l'intégration avec des gestionnaires de transactions comme Tephra (de Cask).
- Apache Hive est le moteur SQL de facto pour Hadoop. Il fournit les analyses SQL les plus approfondies et prend en charge les modèles de requêtes par lots et interactifs. Consultez notre récent article Stinger.Next pour des avancées telles que Hive LLAP.
Nous voyons nos clients utiliser ces composants aujourd'hui pour créer des applications avec des analyses approfondies, par exemple, un modèle très courant que nous voyons comprend :
- Utilisation de HBase comme magasin de données opérationnelles en ligne pour des mises à jour rapides sur des données importantes telles que la partition actuelle pour l'heure, le jour, etc.
- Exécuter des requêtes opérationnelles directement sur HBase à l'aide d'Apache Phoenix.
- Vieillissement des données dans les tables HBase vers Hive à l'aide de modèles ETL standard.
- Exécution d'analyses SQL approfondies à l'aide de Hive
Cela fonctionne mais cela crée un certain nombre de complexités pour les développeurs. Par exemple :
- Quelle interface SQL dois-je utiliser et quand ? Dois-je utiliser Hive qui offre un SQL profond mais un TPS faible ? Ou dois-je utiliser Phoenix avec un TPS élevé et un SQL de base ? Ou dois-je utiliser les deux ?
- Si j'utilise les deux, comment puis-je partager des données entre Hive et HBase ?
- Comment puis-je régler mon cluster afin de pouvoir colocaliser avec succès HBase et Hive tout en respectant mes SLA ?
Ces questions suggèrent qu'une intégration plus poussée est nécessaire pour simplifier la création d'applications avec des analyses approfondies sur Hadoop.
HBase et Hive :mieux ensemble
Quelles opportunités existent pour une intégration plus profonde ? Actuellement, les clients mettent en place des solutions tirant parti de HBase, Phoenix, Hive, etc. pour créer un système en boucle fermée sur mesure. pour les données opérationnelles et l'analyse SQL. Nous pensons qu'il est possible de fournir une intégration prête à l'emploi avec une facilité d'utilisation et des fonctionnalités supplémentaires telles que les transactions, le basculement entre centres de données, etc.
Hive, HBase et Phoenix ont tous une communauté de développeurs très active et sont utilisés en production dans d'innombrables organisations. Ce sont des capacités opérationnelles solides et éprouvées qui peuvent constituer la base et l'avenir du traitement des transactions sur Hadoop.
Ainsi, en utilisant la même approche que l'initiative réussie Stinger, Hortonworks cherche à investir davantage dans ces projets de base et à créer une dynamique au lieu de les abandonner et de recommencer. Nous prévoyons d'investir dans des améliorations qui favorisent une expérience opérationnelle et analytique intégrée via Hive et HBase étroitement intégrés. Cela permet de traiter des cas d'utilisation réels et intéressants d'une manière qui préserve les investissements et génère une valeur réelle pour les clients.
Nous voyons quatre domaines de développement majeurs pour aider à concrétiser la vision des applications intelligentes :
1. Une couche SQL unifiée avec Hive
Les développeurs qui créent des applications SQL ne devraient pas avoir à choisir entre différentes solutions SQL, chacune avec ses propres forces et faiblesses. Nous envisageons une couche SQL unifiée, activée par la prise en charge de Hive pour SQL:2011, qui utilise de manière transparente le moteur approprié en fonction du modèle d'accès à la requête.
Cette combinaison fournit un seul dialecte SQL et un seul connecteur. Les architectes de données et les administrateurs de base de données peuvent déterminer où les données doivent être stockées en fonction des modèles d'utilisation sans surcharger les applications utilisateur avec la nécessité de se connecter à plusieurs systèmes.
2. Améliorer HBase en tant que magasin opérationnel
HBase évolue rapidement en tant que magasin opérationnel et sera en mesure de prendre en charge des charges de travail de plus en plus exigeantes. Au cours de la dernière année, HBase a ajouté une interface SQL, une indexation secondaire et une haute disponibilité. Ces fonctionnalités continueront à évoluer et, en outre, HBase ajoutera des fonctionnalités supplémentaires de niveau entreprise, telles que des transactions multi-tables, entre centres de données, etc.
Des projets comme Omid (Yahoo), Tephra (
3. Catalogue de métadonnées partagé et gestionnaire de transactions
Les données créées dans HBase doivent être automatiquement visibles dans Hive et vice-versa. Cette capacité rend le partage de données entre en ligne et analytique complètement trivial. Un gestionnaire de transactions partagé permet à la nouvelle fonctionnalité ACID de Hive et aux transactions HBase multi-tables de fonctionner ensemble de manière transparente.
4. Prise en charge des charges de travail mixtes compatible YARN
Aujourd'hui, les clients déploient généralement HBase et Hive dans des clusters séparés. Le développement d'un système d'analyse en boucle fermée nécessite une combinaison efficace des charges de travail opérationnelles et analytiques de manière multi-tenant. Avec YARN, nous pouvons créer efficacement un système unique en tirant parti des primitives d'isolation des ressources et de gestion de la charge de travail dans YARN pour prendre en charge différentes formes d'accès aux données. Slider les utilise lorsqu'il déploie HBase dans YARN, tandis que Hive LLAP et Tez sont des applications YARN natives, simplifiant ainsi le processus d'exécution d'un système analytique en boucle fermée selon un SLA prévisible.
Conclusion
Les entreprises utilisent des technologies déjà existantes disponibles dans HDP telles qu'Apache HBase, Apache Hive, Apache Phoenix, etc. pour gérer les mises à jour rapides des données et analyses actuelles sur une vaste gamme d'ensembles de données, tous stockés dans HDFS pour effectuer un système d'analyse en boucle fermée. . Nous espérons tirer parti des mêmes modèles d'intégration pour offrir une expérience transparente aux clients en améliorant Apache HBase et Apache Hive - mieux ensemble, plutôt que de nouvelles technologies nettes que les utilisateurs peuvent comprendre et utiliser.