Integración Hadoop con r

En un principio, los grandes datos y R no eran amigos naturales. R programación requiere que todos los objetos pueden cargar 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 operaciones complejas y tareas. Vertical escalar soluciones - que requiere inversión en hardware de supercomputación costosa - a menudo no pueden competir con el regreso de costo-valor ofrecido por distribuidos, cúmulos de hardware de los productos básicos.

Para ajustarse a las limitaciones, de una sola máquina en memoria del lenguaje R, los científicos de datos a menudo tenían que restringir el análisis sólo a un subconjunto de los datos de las muestras disponibles. Antes de la integración más profunda con Hadoop, los programadores de lenguaje R ofrecen una estrategia de escalabilidad horizontal para la superación de los retos en la memoria que plantean los grandes conjuntos de datos en las máquinas individuales.

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

Enfoques alternativos buscan integrar las capacidades estadísticas de R con grupos distribuidos de Hadoop de dos maneras: la interfaz con los lenguajes de consulta SQL, y la integración con Hadoop Streaming. Con la primera, el objetivo es aprovechar las plataformas de almacenamiento de datos de SQL existentes, como Colmena y cerdo. Estos esquemas simplifican la programación de trabajo Hadoop usando declaraciones de estilo 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 programar trabajos de MapReduce en idiomas (incluyendo R) distintos de Java, una segunda opción es hacer uso de la API de Streaming de Hadoop. Trabajos de MapReduce Enviado por Usuarios se someten a transformaciones de datos con la ayuda de flujos estándares UNIX y serialización, lo que garantiza la entrada de Java compatible con Hadoop - sin importar el idioma originalmente introducida por el programador.

Desarrolladores continúan explorando diversas estrategias para aprovechar la capacidad de computación distribuida de MapReduce y la capacidad de almacenamiento casi ilimitado de HDFS en formas que pueden ser explotadas 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 (Revolución R Enterprise). Bridging soluciones que integran la programación de alto nivel y consulta de idiomas con Hadoop, como RHive y RHadoop, también están disponibles.

Fundamentalmente, cada sistema tiene como objetivo ofrecer las profundas capacidades de análisis del lenguaje R para conjuntos de datos mucho mayores.

RHive

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

RHadoop

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

  • rmr2: El paquete rmr2 apoya la traducción del lenguaje R en trabajos de MapReduce Hadoop compatibles (producir eficiente, código de MapReduce de bajo nivel de código R de nivel superior).

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

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

Revolución R

Revolución R (por Revolution Analytics) es un R oferta comercial con el apoyo a la integración en los sistemas R Hadoop distribuidos. Revolución R se compromete a entregar un mejor rendimiento, funcionalidad y facilidad de uso para R en Hadoop. Proporcionar análisis profundo parecido 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 R 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 pruebas estadísticas.

IBM BigInsights Grande R

Gran R ofrece la 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. Tipos de datos R sirven como sustitutos a estos almacenes de datos, lo que significa desarrolladores R no necesitan pensar en construcciones MapReduce de bajo nivel o cualquier lenguajes de scripting Hadoop-específicos (como el cerdo).

Tecnología BigInsights Grande R soporta múltiples fuentes de datos - incluyendo archivos planos, HBase y formatos de almacenamiento Hive - 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 integrales - en tanto los datos estructurados y no estructurados.

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