Table des matières:
Vidéo: RHadoop - Integrating R with Hadoop | How to Integrate R, Hadoop | R Programming Tutorial | Edureka 2024
Au départ, les big data et R n'étaient pas des amis naturels. La programmation R exige que tous les objets soient chargés dans la mémoire principale d'une seule machine. Les limites de cette architecture sont rapidement réalisées lorsque les grandes données font partie de l'équation.
En revanche, les systèmes de fichiers distribués tels que Hadoop manquent de techniques statistiques solides, mais sont idéaux pour mettre à l'échelle des opérations et des tâches complexes. Les solutions de mise à l'échelle verticale - nécessitant un investissement dans du matériel de calcul intensif coûteux - ne peuvent souvent pas rivaliser avec le rendement de la valeur de coût offert par les clusters matériels distribués et de base.
Pour se conformer aux limitations en mémoire, en une seule machine, du langage R, les chercheurs ont souvent dû limiter l'analyse à un sous-ensemble seulement des données d'échantillon disponibles. Avant une intégration plus poussée avec Hadoop, les programmeurs de langage R ont proposé une stratégie de mise à l'échelle pour surmonter les défis en mémoire posés par de grands ensembles de données sur des machines individuelles.
Ceci a été réalisé en utilisant des systèmes de transmission de messages et de pagination. Cette technique est capable de faciliter le travail sur des ensembles de données trop grands pour stocker dans la mémoire principale simultanément; Cependant, son approche de programmation de bas niveau présente une courbe d'apprentissage abrupte pour ceux qui ne connaissent pas les paradigmes de programmation parallèle.
Les approches alternatives cherchent à intégrer les capacités statistiques de R aux clusters distribués de Hadoop de deux manières: en s'interfaçant avec les langages de requête SQL et en s'intégrant à Hadoop Streaming. Avec le premier, l'objectif est de tirer parti des plates-formes existantes d'entreposage de données SQL telles que Hive et Pig. Ces schémas simplifient la programmation des travaux Hadoop à l'aide d'instructions de style SQL afin de fournir une programmation de haut niveau pour effectuer des tâches statistiques sur des données Hadoop.
Pour les programmeurs souhaitant programmer des jobs MapReduce dans des langages (R inclus) autres que Java, une deuxième option consiste à utiliser l'API Streaming de Hadoop. Les travaux MapReduce soumis par l'utilisateur subissent des transformations de données à l'aide des flux standard UNIX et de la sérialisation, garantissant une entrée compatible Java à Hadoop, quelle que soit la langue initialement entrée par le programmeur.
Les développeurs continuent d'explorer diverses stratégies pour tirer parti de la capacité de calcul distribuée de MapReduce et de la capacité de stockage quasi illimitée de HDFS de manière exploitable par R.
L'intégration de Hadoop avec R est en cours. (Big R dans le cadre de BigInsights) et Revolution Analytics (Revolution R Enterprise). Des solutions de transition qui intègrent la programmation de haut niveau et l'interrogation de langages avec Hadoop, tels que RHive et RHadoop, sont également disponibles.
Fondamentalement, chaque système vise à fournir les capacités analytiques profondes du langage R à des ensembles de données beaucoup plus importants.
RHive
Le framework RHive sert de pont entre le langage R et Hive. RHive fournit les riches bibliothèques statistiques et les algorithmes de R aux données stockées dans Hadoop en étendant le langage de requête de Hive (HiveQL) avec des fonctions spécifiques à R. Grâce aux fonctions RHive, vous pouvez utiliser HiveQL pour appliquer des modèles statistiques R aux données de votre cluster Hadoop que vous avez catalogué à l'aide de Hive.
RHadoop
Un autre framework open source disponible pour les programmeurs R est RHadoop, un ensemble de paquetages destinés à aider à gérer la distribution et l'analyse des données avec Hadoop. Trois paquets de note - rmr2, rhdfs et rhbase - fournissent la plupart des fonctionnalités de RHadoop:
-
rmr2: Le paquet rmr2 supporte la traduction du langage R en travaux MapReduce conformes à Hadoop (produisant un code MapReduce bas niveau) à partir du code R de niveau supérieur).
-
rhdfs: Le paquetage rhdfs fournit une API de langage R pour la gestion des fichiers sur les magasins HDFS. En utilisant rhdfs, les utilisateurs peuvent lire des magasins HDFS vers une trame de données R (matrice), et écrire de la même manière les données de ces matrices R dans le stockage HDFS.
-
rhbase: Les paquets rhbase fournissent aussi une API de langage R, mais leur but dans la vie est de gérer la gestion de bases de données pour les banques HBase, plutôt que les fichiers HDFS.
Revolution R
Revolution R (par Revolution Analytics) est une offre commerciale R prenant en charge l'intégration R sur les systèmes distribués Hadoop. Revolution R promet d'améliorer les performances, les fonctionnalités et la convivialité de R sur Hadoop. Pour fournir une analyse approfondie s'apparentant à R, Revolution R utilise la bibliothèque ScaleR de l'entreprise - une collection d'algorithmes d'analyse statistique développés spécifiquement pour les grandes collections de données à l'échelle de l'entreprise.
ScaleR vise à fournir une exécution rapide du code du programme R sur les clusters Hadoop, permettant au développeur R de se concentrer exclusivement sur ses algorithmes statistiques et non sur MapReduce. En outre, il gère de nombreuses tâches d'analyse, telles que la préparation des données, la visualisation et les tests statistiques.
IBM BigInsights Big R
Big R offre une intégration de bout en bout entre R et l'offre Hadoop d'IBM, BigInsights, permettant aux développeurs R d'analyser les données Hadoop. L'objectif est d'exploiter la syntaxe de programmation de R et les paradigmes de codage, tout en veillant à ce que les données exploitées restent dans HDFS. Les types de données R servent de proxy à ces banques de données, ce qui signifie que les développeurs R n'ont pas besoin de penser à des constructions MapReduce de bas niveau ou à des langages de script spécifiques à Hadoop (comme Pig).
BigInsights La technologie Big R prend en charge plusieurs sources de données, notamment les fichiers plats, HBase et les formats de stockage Hive, tout en fournissant une exécution parallèle et partitionnée du code R dans le cluster Hadoop. Il cache de nombreuses complexités dans les frameworks HDFS et MapReduce sous-jacents, permettant aux fonctions Big R d'effectuer des analyses de données complètes - à la fois sur des données structurées et non structurées.
Enfin, l'évolutivité du moteur statistique de Big R permet aux développeurs R d'utiliser à la fois les techniques statistiques prédéfinies et les nouveaux algorithmes eux-mêmes.