Red de conocimiento informático - Conocimiento informático - Cómo combinar Hadoop y el lenguaje R para el análisis de big data

Cómo combinar Hadoop y el lenguaje R para el análisis de big data

El lenguaje R y Hadoop nos hacen darnos cuenta del poder de ambas tecnologías en sus respectivos campos. Muchos desarrolladores hacen las siguientes dos preguntas desde una perspectiva informática. Pregunta 1: Hadoop es una familia tan poderosa, ¿por qué combinarlo con el lenguaje R?

Pregunta 2: Mahout también puede realizar minería de datos y aprendizaje automático. ¿Cuál es la diferencia con el lenguaje R? Intentaré responder aquí: Pregunta 1: La familia Hadoop es tan poderosa, ¿por qué necesitamos combinarla con el lenguaje R?

a. El poder de la serie Hadoop radica en el procesamiento de big data, haciendo posibles cosas que originalmente eran imposibles (calcular el volumen de datos de TB, PB).

b. El poder del lenguaje R radica en el análisis estadístico. Antes de Hadoop, cuando procesábamos big data, teníamos que realizar muestreos, pruebas de hipótesis y regresión. Análisis estadístico. Una herramienta para los científicos.

c. De los puntos a y b, podemos ver que hadoop se centra en el análisis de datos completo, mientras que el lenguaje R se centra en el análisis de datos de muestra. ¡Juntar estas dos tecnologías puede complementarse entre sí!

d. Escenario de simulación: analice 1 PB de registros de acceso a sitios web de noticias y prediga cambios de tráfico futuros.

d1: utilice el lenguaje R para analizar una pequeña cantidad de datos para establecer un modelo de regresión de objetivos comerciales. y Definir indicadores d2: Usar Hadoop para extraer datos de indicadores de datos de registro masivos d3: Usar el modelo de lenguaje R para probar y ajustar los datos de los indicadores d4: Usar el algoritmo paso a paso de Hadoop para reescribir el modelo de lenguaje R e implementarlo en línea En este escenario , R y Hadoop Cada uno jugó un papel muy importante. En la mentalidad del desarrollador de computadoras, todo se hace usando Hadoop, y sin modelado de datos y pruebas, "predecir resultados" es definitivamente problemático. En la mentalidad del estadístico, todo debe hacerse con R y los "resultados previstos" deben tener problemas con el método de muestreo. Por lo tanto, la combinación de los dos es la dirección inevitable para el desarrollo de la industria y la dirección inevitable para la intersección de la industria y la academia. También proporciona un espacio de imaginación ilimitado para los talentos interdisciplinarios. Pregunta 2: Mahout también puede realizar minería de datos y aprendizaje automático. ¿Cuál es la diferencia con R?

a.Mahout es un marco de algoritmo de aprendizaje automático y minería de datos basado en Hadoop. El objetivo de Mahout también es resolver problemas de computación de big data.

b Hasta ahora, los algoritmos admitidos por Mahout incluyen: filtrado colaborativo, algoritmo de recomendación, algoritmo de agrupamiento, algoritmo de clasificación, LDA, Bayes ingenuo y bosque aleatorio. La mayoría de los algoritmos anteriores son algoritmos de distancia y, después de hacer un uso completo del marco de computación paralela de MapReduce, estos algoritmos se pueden completar de manera eficiente mediante la descomposición matricial.

En la brecha c.Mahout, existen muchos algoritmos de minería de datos y es difícil lograr la paralelización de MapReduce. Todos los modelos existentes de Mahout son modelos generales que se pueden usar directamente en proyectos, y los resultados del cálculo solo serán ligeramente mejores que los resultados aleatorios. El desarrollo secundario de Mahout requiere una base técnica profunda en JAVA y Hadoop. Lo mejor es tener conocimientos básicos como "Álgebra lineal", "Estadísticas de probabilidad" e "Introducción a los algoritmos". Por tanto, jugar a Mahout no es tarea fácil.

El lenguaje d.R también proporciona a Mahout soporte para aproximadamente la mayoría de los algoritmos (excepto los algoritmos propietarios) y también admite una gran cantidad de algoritmos que Mahout no admite. La tasa de crecimiento de este algoritmo es N veces más rápida. que el mahout. También es fácil de desarrollar, flexible en la configuración de parámetros y muy rápido para conjuntos de datos pequeños.

Aunque Mahout también puede realizar minería de datos y aprendizaje automático, no se superpone con los campos profesionales del lenguaje R. Elegir la tecnología adecuada en el campo correcto no puede garantizar realmente la calidad y cantidad del software.

¿Cómo hacer que Hadoop y R funcionen juntos?

De la sección anterior, podemos ver que Hadoop y R pueden complementarse entre sí, pero el escenario presentado es que Hadoop y R procesan sus propios datos.

Una vez que haya demanda en el mercado, los proveedores naturalmente llenarán el vacío.

1).RHadoop

RHadoop es un producto que combina Hadoop y el lenguaje R. Está desarrollado por RevolutionAnalytics y el código es de código abierto para la comunidad github. RHadoop contiene tres paquetes R (rmr, rhdfs, rhbase), que corresponden respectivamente a la arquitectura del sistema Hadoop, MapReduce, HDFS y HBase.

2).RHiveRHive es un conjunto de herramientas para el acceso directo a Hive a través del lenguaje R, desarrollado por la empresa surcoreana NexR.

3) Reescribir Mahout usando el lenguaje R para implementar Mahout también es una idea integral, y también he hecho algunos intentos.

4).Hadoop llama a R

Lo mencionado anteriormente es cómo llamar a R de Hadoop. Por supuesto, también podemos hacer la operación inversa para abrir el canal de conexión entre JAVA y R. para que Hadoop llame a funciones R. Sin embargo, esta parte del negocio aún no ha producido un producto terminado.

5. Casos prácticos de R y Hadoop

El umbral técnico para la combinación de R y Hadoop es todavía un poco alto. Una persona no solo debe dominar Linux, Java, Hadoop, R y otras tecnologías, sino también tener algunas cualidades básicas en desarrollo de software, algoritmos, estadísticas de probabilidad, álgebra lineal, visualización de datos y otros conocimientos de la industria. La implementación de este entorno en la empresa también requiere la cooperación de múltiples departamentos y talentos, como operación y mantenimiento de Hadoop, investigación y desarrollo de algoritmos de Hadoop, modelado de lenguaje R, MapReduce en lenguaje R, desarrollo de software, pruebas, etc. Así que no hay muchos casos de este tipo.