Tabla de contenido:
Video: RHadoop - Integrating R with Hadoop | How to Integrate R, Hadoop | R Programming Tutorial | Edureka 2025
Al principio, los datos grandes y R no eran amigos naturales. La programación R requiere que todos los objetos se carguen en la memoria principal de una sola máquina. Las limitaciones de esta arquitectura se realizan rápidamente cuando el big data se convierte en parte de la ecuación.
En contraste, los sistemas de archivos distribuidos como Hadoop carecen de técnicas estadísticas sólidas, pero son ideales para escalar operaciones y tareas complejas. Las soluciones verticales de escala, que requieren inversión en costosos equipos de supercomputación, a menudo no pueden competir con el retorno de costo-valor que ofrecen los clusters distribuidos de hardware básico.
Para ajustarse a las limitaciones en memoria de una máquina del lenguaje R, los científicos de datos a menudo tenían que restringir el análisis a solo un subconjunto de los datos de muestra disponibles. Antes de una integración más profunda con Hadoop, los programadores de lenguaje R ofrecieron una estrategia de escalamiento horizontal para superar los desafíos en memoria que plantean los grandes conjuntos de datos en máquinas individuales.
Esto se logró usando sistemas de transmisión de mensajes y paginación. Esta técnica puede facilitar el trabajo en conjuntos de datos demasiado grandes para almacenarlos en la memoria principal simultáneamente; sin embargo, su enfoque de programación de bajo nivel presenta una curva de aprendizaje empinada para aquellos que no están familiarizados con los paradigmas de programación paralela.
Los enfoques alternativos buscan integrar las capacidades estadísticas de R con los clústeres distribuidos de Hadoop de dos maneras: interfaz con lenguajes de consulta SQL e integración con Hadoop Streaming. Con el primero, el objetivo es aprovechar las plataformas existentes de almacenamiento de datos SQL, como Hive y Pig. Estos esquemas simplifican la programación de trabajos de Hadoop utilizando sentencias de estilo SQL para proporcionar programación de alto nivel para realizar trabajos estadísticos a través de los datos de Hadoop.
Para los programadores que deseen programar trabajos de MapReduce en idiomas (incluyendo R) que no sean Java, una segunda opción es hacer uso de la API de Streaming de Hadoop. Los trabajos MapReduce enviados por el usuario se someten a transformaciones de datos con la asistencia de las transmisiones y serialización estándar de UNIX, lo que garantiza la entrada en Hadoop compatible con Java, independientemente del idioma originalmente ingresado por el programador.
Los desarrolladores continúan explorando diversas estrategias para aprovechar la capacidad de computación distribuida de MapReduce y la capacidad de almacenamiento casi ilimitada de HDFS de manera que R pueda aprovecharla
La integración de Hadoop con R está en curso, con ofertas disponibles de IBM (Big R como parte de BigInsights) y Revolution Analytics (Revolution R Enterprise). Las soluciones de puente que integran la programación de alto nivel y la consulta de idiomas con Hadoop, como RHive y RHadoop, también están disponibles.
Fundamentalmente, cada sistema tiene como objetivo entregar las capacidades analíticas profundas del lenguaje R a conjuntos de datos mucho más grandes.
RHive
El marco de RHive sirve de puente entre el lenguaje R y Hive. RHive entrega las ricas bibliotecas estadísticas y algoritmos de R a los datos almacenados en Hadoop extendiendo el lenguaje de consulta similar a SQL de Hive (HiveQL) con funciones específicas de R. A través de las funciones de RHive, puede usar HiveQL para aplicar modelos estadísticos R a los datos en su clúster de Hadoop que haya catalogado utilizando Hive.
RHadoop
Otro marco de código abierto disponible para los programadores R es RHadoop, una colección de paquetes destinados a ayudar a administrar la distribución y el análisis de datos con Hadoop. Tres paquetes de nota: rmr2, rhdfs y rhbase brindan la mayor parte de la funcionalidad de RHadoop:
-
rmr2: El paquete rmr2 admite la traducción del lenguaje R en trabajos de MapReduce compatibles con Hadoop (produciendo código MapReduce eficiente de bajo nivel) del código R de nivel superior).
-
rhdfs: El paquete rhdfs proporciona una API de lenguaje R para la gestión de archivos en almacenes HDFS. Usando rhdfs, los usuarios pueden leer desde almacenes HDFS a un marco de datos R (matriz), y de manera similar escribir datos de estas matrices R en el almacenamiento HDFS.
-
rhbase: los paquetes rhbase también proporcionan una API de lenguaje R, pero su objetivo en la vida es ocuparse de la administración de la base de datos para las tiendas HBase, en lugar de los archivos HDFS.
Revolution R
Revolution R (de Revolution Analytics) es una oferta de R comercial con soporte para la integración de R en sistemas distribuidos de Hadoop. Revolution R promete ofrecer un mejor rendimiento, funcionalidad y usabilidad para R en Hadoop. Para proporcionar un análisis profundo similar a R, Revolution R utiliza la biblioteca ScaleR de la compañía, una colección de algoritmos de análisis estadístico desarrollados específicamente para colecciones de grandes volúmenes de datos a escala empresarial.
ScaleR tiene como objetivo ofrecer una ejecución rápida del código del programa R en los clústeres de Hadoop, lo que permite al desarrollador de R concentrarse exclusivamente en sus algoritmos estadísticos y no en MapReduce. Además, maneja numerosas tareas de análisis, como preparación de datos, visualización y pruebas estadísticas.
IBM BigInsights Big R
Big R ofrece una integración de extremo a extremo entre R y la oferta Hadoop de IBM, BigInsights, permitiendo a los desarrolladores de R analizar los datos de Hadoop. El objetivo es explotar la sintaxis de programación de R y los paradigmas de codificación, al tiempo que se garantiza que los datos operados permanezcan en HDFS. Los tipos de datos R sirven de proxy a estos almacenes de datos, lo que significa que los desarrolladores R no necesitan pensar en construcciones MapReduce de bajo nivel ni en ningún lenguaje de scripting específico de Hadoop (como Pig).
La tecnología BigInsights Big R admite múltiples fuentes de datos, incluidos archivos planos, HBase y Hive, mientras proporciona una ejecución paralela y particionada del código R en todo el clúster de Hadoop. Oculta muchas de las complejidades de los marcos HDFS y MapReduce subyacentes, lo que permite que las funciones Big R realicen análisis de datos completos, tanto en datos estructurados como no estructurados.
Finalmente, la escalabilidad del motor estadístico de Big R permite a los desarrolladores de R hacer uso de técnicas estadísticas predefinidas, así como también crear algoritmos nuevos.
