L'intégration de Hadoop avec r

Au début, les grandes données et R ne sont pas amis naturels. R programmation nécessite que tous les objets sont chargés dans la mémoire principale d'une seule machine. Les limites de cette architecture sont vite rendu compte quand Big Data devient une partie de l'équation.

Sommaire

En revanche, les systèmes de fichiers distribués tels que Hadoop sont absents des techniques statistiques solides, mais sont idéales pour mise à l'échelle des opérations et des tâches complexes. Vertical mise à l'échelle des solutions - qui nécessite des investissements dans le matériel de superinformatique coûteuse - ne peuvent souvent pas rivaliser avec le rapport coût-valeur rendement offert par distribués, des grappes de matériel de marchandise.

Pour se conformer aux limitations, de la langue de R seule machine en mémoire, de données scientifiques avaient souvent pour restreindre l'analyse à un sous-ensemble des données de l'échantillon disponible. Avant l'intégration plus profonde avec Hadoop, programmeurs en langage R offraient une stratégie de scale-out pour surmonter les défis en mémoire posés par de grands ensembles de données sur les machines simples.

Ceci a été réalisé en utilisant des systèmes et paging message-passing. Cette technique est en mesure de faciliter le travail sur des ensembles de données trop grand pour stocker dans la mémoire principale simultaneously- de Toutefois, son approche de programmation de bas niveau présente une courbe d'apprentissage abrupte pour ceux peu familiers avec les paradigmes de programmation parallèle.

Des approches alternatives cherchent à intégrer les capacités statistiques de R avec les groupes distribués Hadoop de deux façons: l'interfaçage avec des langues de requête SQL, et l'intégration avec Hadoop streaming. Avec l'ancien, l'objectif est de tirer parti des plates-formes d'entreposage de données SQL existantes telles que Hive et Pig. Ces schémas simplifier la programmation d'emploi en utilisant Hadoop déclarations SQL de style afin d'offrir une programmation de haut niveau pour mener des travaux statistiques sur les données Hadoop.

Pour les programmeurs qui souhaitent programmer emplois MapReduce en langues (y compris R) autres que Java, une deuxième option est de faire usage de l'API Streaming Hadoop. Soumis par les utilisateurs emplois MapReduce subissent des transformations de données avec l'aide de flux standard UNIX et sérialisation, garantissant entrée compatible Java pour Hadoop - indépendamment de la langue à l'origine entré par le programmeur.




Développeurs continuent d'explorer diverses stratégies pour tirer parti de la capacité de calcul distribué de MapReduce et la capacité de stockage presque illimitée de HDFS d'une manière qui pourrait être exploitée par R.

Intégration de Hadoop avec R est en cours, avec des offres disponibles auprès d'IBM (Big R dans le cadre de BigInsights) et Analytics Revolution (Révolution R __gVirt_NP_NN_NNPS<__ Enterprise). Combler des solutions qui intègrent programmation de haut niveau et l'interrogation de langues avec Hadoop, comme RHive et RHadoop, sont également disponibles.

Fondamentalement, chaque système a pour but de fournir les capacités analytiques profondes de la langue de R à beaucoup plus grands ensembles de données.

RHive

Le cadre RHive sert de pont entre le langage R et Hive. RHive délivre les bibliothèques statistiques riches et des algorithmes de R aux données stockées dans Hadoop en étendant SQL comme langage de requête Hive (HiveQL) avec des fonctions spécifiques-R. Grâce aux fonctions RHive, vous pouvez utiliser HiveQL d'appliquer R modèles statistiques à des données dans votre cluster Hadoop que vous avez catalogué en utilisant la ruche.

RHadoop

Un autre framework open source disponible pour les programmeurs R est RHadoop, une collection de paquets destinés à les aider à gérer la distribution et l'analyse des données avec Hadoop. Trois paquets de la note - rmr2, rhdfs et rhbase - fournir la plupart des fonctionnalités de RHadoop:

  • rmr2: Le paquet de rmr2 soutient la traduction de la langue de R en emplois Hadoop MapReduce conformes (production efficace, code MapReduce bas niveau à partir du code R de niveau supérieur).

  • rhdfs: Le paquet rhdfs fournit une API de langage R pour la gestion de fichiers sur les magasins HDFS. Utilisation rhdfs, les utilisateurs peuvent lire des magasins HDFS à une trame de données R (matrice), et de même écrire des données à partir de ces matrices R retour en stockage HDFS.

  • rhbase: rhbase paquets fournissent une API de langage R ainsi, mais leur but dans la vie est de faire face à la gestion de base de données pour les magasins Hbase, plutôt que des fichiers HDFS.

Révolution R

Révolution R (par Revolution Analytics) est un R offre commerciale avec l'appui de l'intégration de R sur les systèmes distribués Hadoop. Révolution R promet de livrer une meilleure performance, la fonctionnalité et la convivialité R sur Hadoop. Pour fournir des analyses profondes semblable à R, R Révolution rend l'utilisation de la bibliothèque de Scaler de l'entreprise - une collection d'algorithmes d'analyse statistique développées spécifiquement pour les collections Big Data échelle de l'entreprise.

Scaler vise à offrir une exécution rapide du code de programme de R sur des clusters Hadoop, permettant au développeur de R se concentrer exclusivement sur leurs algorithmes statistiques et non sur MapReduce. En outre, il gère de nombreuses tâches d'analyse, tels 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 Hadoop l'offre d'IBM, BigInsights, permettant aux développeurs de R pour analyser les données Hadoop. L'objectif est d'exploiter la syntaxe de programmation de R et paradigmes de codage, tout en assurant que les données opérés séjours dans HDFS. Types de données R servent de procurations à ces magasins de données, ce qui signifie que les développeurs R ne doivent pas penser à des constructions de MapReduce bas niveau ou des langages de script Hadoop-spécifiques (comme cochon).

La technologie BigInsights Big R prend en charge plusieurs sources de données - y compris les fichiers plats, HBase, et les formats de stockage de la ruche - tout en assurant l'exécution en parallèle et partitionné de code R sur le cluster Hadoop. Il cache beaucoup des complexités sous-jacentes dans les HDFS et MapReduce cadres, permettant fonctions Big R pour effectuer des analyses de données globales - sur des données structurées et non structurées.

Enfin, l'évolutivité de moteur statistique de Big R permet aux développeurs R de faire usage de deux techniques statistiques prédéfinis, ainsi que l'auteur de nouveaux algorithmes eux-mêmes.


» » » » L'intégration de Hadoop avec r