Integración hadoop con r

En un principio, grandes volúmenes de datos y R no eran amigos naturales. programación R requiere que todos los objetos se cargan en la memoria principal de una sola máquina. Las limitaciones de esta arquitectura se dieron cuenta rápidamente cuando los datos se convierte en una gran parte de la ecuación.

En contraste, los sistemas de archivos distribuidos, tales como Hadoop faltan fuertes técnicas estadísticas, pero son ideales para escalar las operaciones complejas y tareas. Vertical escalar soluciones - que requiere una inversión en hardware de supercomputación costosa - a menudo no pueden competir con el retorno de costo-valor ofrecido por los productos básicos de hardware, clusters distribuidos.

Para ajustarse a las limitaciones, de una sola máquina en memoria de la lengua R, científicos de datos a menudo tenían para restringir el análisis a sólo un subconjunto de los datos de muestra disponibles. Antes de una mayor integración con Hadoop, programadores de lenguaje R ofrecen una estrategia de ampliación a cabo para superar los desafíos en memoria que plantean los grandes conjuntos de datos en las máquinas individuales.

Esto se logró utilizando sistemas de paso de mensajes y paginación. Esta técnica es capaz de facilitar el trabajo sobre los conjuntos de datos demasiado grande como para guardar en la memoria principal simultaneously- sin embargo, su enfoque de programación de bajo nivel presenta una curva de aprendizaje para quienes no están familiarizados con los paradigmas de programación paralela.

Los enfoques alternativos buscan integrar las capacidades estadísticas de R con racimos de Hadoop distribuidos en dos formas: la interfaz con los lenguajes de consulta SQL, y la integración con Hadoop Streaming. En el primer caso, el objetivo es aprovechar las plataformas de almacenamiento de datos SQL existentes, tales como Colmena y cerdo. Estos esquemas facilitan la programación del trabajo Hadoop usando declaraciones de tipo SQL con el fin de ofrecer una programación de alto nivel para la realización de trabajos estadísticos sobre los datos de Hadoop.

Para los programadores que deseen trabajos de MapReduce en idiomas (incluyendo R) programa que no sea Java, una segunda opción es hacer uso de la API de Transmisión de Hadoop. trabajos de MapReduce presentado por el usuario se someten a transformaciones de datos con la ayuda de UNIX arroyos y serialización estándar, garantizando de entrada compatible con Java de Hadoop - independientemente del idioma introducido originalmente por el programador.

Los desarrolladores siguen explorando varias estrategias para aprovechar la capacidad de computación distribuida de MapReduce y la capacidad de almacenamiento casi ilimitado de HDFS de manera que puede ser explotada por R.

Integración de Hadoop con R está en curso, con las ofertas disponibles de IBM (R Grande como parte de BigInsights) y de la revolución de Analytics (R Revolución de la empresa). Bridging soluciones que integran la programación de alto nivel y lenguajes de la consulta con Hadoop, como RHive y RHadoop, también están disponibles.

Fundamentalmente, cada sistema tiene como objetivo ofrecer las capacidades de análisis profundos de la lengua R para conjuntos de datos mucho mayores.

RHive

El marco RHive sirve como un puente entre el lenguaje R y Colmena. RHive entrega los ricos bibliotecas estadísticos y algoritmos de R a los datos almacenados en Hadoop mediante la extensión de la lengua de la colmena SQL-como consulta (HiveQL) con funciones-R específico. A través de las funciones RHive, se puede utilizar para aplicar HiveQL R modelos estadísticos para los datos en el clúster Hadoop que ha catalogado utilizando colmena.

RHadoop

Otro marco de código abierto disponible para los programadores R es RHadoop, una colección de paquetes destinados a ayudar a controlar la distribución y el análisis de los datos con Hadoop. Tres paquetes de nota - rmr2, rhdfs y rhbase - proporcionar la mayor parte de la funcionalidad de RHadoop:

  • rmr2: El paquete rmr2 apoya traducción de la lengua R en trabajos de MapReduce Hadoop compatibles (producción, de bajo nivel de código MapReduce eficiente de código R-nivel más alto).

  • rhdfs: El paquete rhdfs proporciona una API lenguaje R para la gestión de archivos a través de las tiendas de HDFS. Usando rhdfs, los usuarios pueden leer de tiendas HDFS a una trama de datos R (matriz), y de manera similar escribir datos desde estas matrices R de nuevo en almacenamiento HDFS.

  • rhbase: rhbase paquetes proporcionan una API lenguaje R también, pero su objetivo en la vida es hacer frente a la gestión de base de datos para tiendas HBase, en lugar de archivos HDFS.

R revolución

Revolución R (por Revolution Analytics) es una oferta comercial con R apoyo a la integración en los sistemas R Hadoop distribuidos. R revolución promete ofrecer un mejor rendimiento, funcionalidad y facilidad de uso para R en Hadoop. Para proporcionar análisis profundos similar a R, R Revolución hace uso de la biblioteca escalador de la compañía - una colección de algoritmos de análisis estadísticos desarrollados específicamente para las colecciones de datos grande de escala empresarial.

Escalador tiene como objetivo ofrecer una rápida ejecución del código de programa de I sobre clusters Hadoop, permitiendo al desarrollador R para centrarse exclusivamente en sus algoritmos estadísticos y no en MapReduce. Además, se encarga de numerosas tareas de análisis, tales como la preparación de datos, visualización y análisis estadísticos.

IBM BigInsights R Grande

R grande ofrece una integración de extremo a extremo entre R y oferta Hadoop de IBM, BigInsights, permitiendo a los desarrolladores de I para analizar los datos de Hadoop. El objetivo es aprovechar la sintaxis de programación de R y paradigmas de codificación, al tiempo que garantiza que los datos a utilizar, estancias en HDFS. R tipos de datos sirven como sustitutos a estos almacenes de datos, lo que significa que los desarrolladores R no necesitan pensar en construcciones de MapReduce de bajo nivel o cualquier lenguajes de scripting Hadoop-específicos (como el cerdo).

La tecnología BigInsights R Grande es compatible con múltiples fuentes de datos - incluyendo archivos planos, HBase y formatos de almacenamiento de la colmena - mientras que proporciona la ejecución en paralelo y con particiones de código R en el clúster Hadoop. Se esconde muchas de las complejidades en los HDFS subyacentes y los marcos de MapReduce, lo que permite funciones de Big R para realizar análisis de datos completos - tanto en los datos estructurados y no estructurados.

Por último, la escalabilidad del motor estadístico de Big R R permite a los desarrolladores para hacer uso de ambas técnicas estadísticas predefinidas, así como autor New propios algoritmos.

Artículos Relacionados