Hadoop-Integration mit R

Am Anfang waren große Daten-und R nicht natürlich Freunde. R Programmierung erfordert, dass alle Objekte in den Hauptspeicher einer einzelnen Maschine geladen werden. Die Grenzen dieser Architektur werden schnell realisiert, wenn große Datenmengen ein Teil der Gleichung wird.

Menu

Im Gegensatz dazu verteilte Dateisysteme wie Hadoop fehlen starke statistische Techniken sind aber ideal für komplexe Operationen und Aufgaben Skalierung. Vertikale Skalierung Lösungen - erfordern Investitionen in teure Hardware Supercomputing - oft nicht mit dem Kosten-Nutzen-Rückkehr angeboten durch verteilte, handelsüblicher Hardware-Cluster konkurrieren können.

Entsprechen mussten die im Speicher, single-Maschine Einschränkungen der R Sprache, Daten Wissenschaftler oft Analyse zu beschränken, um nur eine Teilmenge der zur Verfügung stehenden Abtastdaten. Vor der tiefere Integration mit Hadoop, bot R Sprache Programmierer eine Scale-Out-Strategie für die In-Memory-Überwindung von großen Datenmengen auf einzelne Maschinen Herausforderungen.

Dies wurde mit Message-Passing-Systeme und Paging erreicht. Diese Technik der Lage ist, Arbeit über Daten zu erleichtern setzt zu groß aber im Hauptspeicher gleichzeitig ausführen zu speichern, seine Low-Level-Programmierung Ansatz stellt eine steile Lernkurve für diejenigen, die nicht mit parallelen Programmierparadigmen.

Alternative Ansätze suchen R statistischen Funktionen mit Hadoop verteilten Clustern auf zwei Arten zu integrieren: mit SQL-Abfrage Sprachen Schnittstellen und die Integration mit Hadoop Streaming. Mit dem ehemaligen, ist das Ziel, bestehende SQL Data-Warehousing-Plattformen wie Hive und Pig zu nutzen. Diese Schemas vereinfachen Hadoop Auftragsprogrammierung mit SQL-style-Anweisungen, um für die Durchführung von statistischen Arbeiten über Hadoop-Daten High-Level-Programmierung zur Verfügung zu stellen.

Für Programmierer, die MapReduce Jobs in Sprachen zu programmieren (einschließlich R) als Java, eine zweite Möglichkeit ist die Verwendung von Hadoop Streaming-API machen. Benutzer eingereichte MapReduce Jobs durchlaufen Datentransformationen mit Hilfe von UNIX Standard-Streams und Serialisierung und garantiert Java-kompatiblen Eingang zu Hadoop - unabhängig von der Sprache, die ursprünglich vom Programmierer eingegeben.

Entwickler weiterhin verschiedene Strategien zu erforschen, die verteilte Berechnung Fähigkeit von MapReduce und die nahezu unbegrenzte Speicherkapazität von HDFS in einer Weise zu nutzen, die von R. genutzt werden können

Integration von Hadoop mit R ist im Gange, mit Angeboten von IBM (Big R als Teil BigInsights) und Revolution Analytics (Revolution R Enterprise). Bridging-Lösungen, die High-Level-Programmierung und Abfrage von Sprachen mit Hadoop, wie RHive und RHadoop integrieren, sind ebenfalls erhältlich.

Grundsätzlich soll jedes System die tiefen analytischen Fähigkeiten der R Sprache zu viel größere Datenmengen zu liefern.

RHive

Der RHive Rahmen dient als Brücke zwischen der R-Sprache und Hive. RHive liefert die reichen statistische Bibliotheken und Algorithmen von R auf Daten in Hadoop gespeicherten Hive SQL-ähnliche Abfragesprache (HiveQL) mit R-spezifischen Funktionen erstrecken. Durch die RHive Funktionen können Sie HiveQL verwenden R statistische Modelle, um Daten in Ihrem Hadoop Cluster anwenden, die Sie mit Hive katalogisiert haben.

RHadoop

Eine weitere Open-Source-Framework zur Verfügung zu R-Programmierer ist RHadoop, eine Sammlung von Paketen soll helfen, die Verteilung und Analyse von Daten mit Hadoop verwalten. Drei Pakete note - Rmr2, rhdfs und rhbase - bieten die meisten RHadoop Funktionalität:

  • Rmr2: Das Rmr2 Paket unterstützt Übersetzung der R Sprache in Hadoop-konformen MapReduce Jobs (Herstellung effizienter, Low-Level-MapReduce-Code von höherer Ebene R-Code).

  • rhdfs: Das rhdfs Paket bietet eine R Sprache API für die Dateiverwaltung über HDFS speichert. Mit rhdfs können Benutzer von HDFS speichert zu einem R-Datenrahmen (Matrix) gelesen, und in ähnlicher Weise Daten aus diesen R-Matrizen schreiben zurück in HDFS Lagerung.

  • rhbase: rhbase Pakete bieten eine R-Sprache-API als gut, aber ihr Ziel im Leben ist, mit Datenbank-Management für HBase Geschäfte zu beschäftigen, anstatt HDFS-Dateien.

Revolution R

Revolution R (von Revolution Analytics) ist ein kommerzielles Angebot R mit Unterstützung für R-Integration auf Hadoop verteilten Systemen. Revolution R verspricht eine verbesserte Leistung, Funktionalität und Benutzerfreundlichkeit für R auf Hadoop zu liefern. Um tiefe Analysen verwandt R bieten, macht Revolution R Verwendung der Scaler-Bibliothek des Unternehmens - eine Sammlung von Algorithmen statistische Analysen speziell für unternehmensweite große Datensammlungen entwickelt.

Scaler zielt darauf ab, eine schnelle Ausführung von R Programmcode auf Hadoop-Clustern zu liefern, so dass der R Entwickler ausschließlich auf ihre statistische Algorithmen zu konzentrieren und nicht auf MapReduce. Darüber hinaus übernimmt es zahlreiche Analyseaufgaben wie Datenaufbereitung, Visualisierung und statistische Tests.

IBM BigInsights Big R

Big R bietet End-to-End-Integration zwischen R und IBMs Hadoop-Angebot, BigInsights, so dass R Entwickler Hadoop-Daten zu analysieren. Das Ziel ist, R Programmierung Syntax und Codierung Paradigmen zu nutzen und gleichzeitig sicherzustellen, dass die Daten bei einem Aufenthalt in HDFS betrieben. R-Datentypen dienen als Stellvertreter zu diesen Daten speichert, was bedeutet, R Entwickler müssen nicht über Low-Level-MapReduce-Konstrukte oder jede Hadoop spezifische Skriptsprachen (wie Schwein) zu denken.

BigInsights Big R-Technologie unterstützt mehrere Datenquellen - einschließlich Flat Files, HBase und Hive Speicherformate - während parallel und partitionierten Ausführung von R-Code für die Hadoop-Cluster bereitstellt. Es verbirgt sich viele der Komplexitäten in den zugrunde liegenden HDFS und MapReduce-Frameworks, so dass Big R Funktionen umfassende Datenanalysen durchführen - auf beiden strukturierten und unstrukturierten Daten.

Schließlich ermöglicht die Skalierbarkeit von Big R statistischen Motor R Entwickler Verwendung beider vordefinierten statistischen Techniken, sowie Autor neue Algorithmen selbst zu machen.

Menü