¿Cómo aprendes big data?

Creo que la mejor manera de aprender algo es hacerlo realmente. Afortunadamente para nosotros, hay una gran cantidad de tecnologías de big data y herramientas analíticas que son de código abierto o que le permiten aprender de forma gratuita a través de una licencia de prueba / desarrollo. Así que aquí está lo que yo haría.

Por el bien de proporcionar una respuesta un tanto simple, asumiré que la herramienta de big data que desea usar es la pila de Hadoop. Y por el simple hecho de no proporcionar una respuesta demasiado simple, que no está buscando una solución industrial ya construida o un proveedor SaaS. En términos generales, las bases de datos NoSQL no se usan realmente para el análisis (pero pueden ser una fuente).

1) Piense en un problema de big data que quiera resolver.

Tradicionalmente, los grandes datos han sido descritos por los “3Vs”: Volumen, Variedad, Velocidad. ¿Cuál es un problema de análisis real que se resuelve mejor utilizando herramientas de big data? ¿Qué tipo de métricas quieres capturar? Los casos de uso más comunes hoy en día implican raspar grandes volúmenes de datos de registro. Esto se debe a que los datos de registro tienden a ser muy desestructurados, pueden provenir de múltiples fuentes, y especialmente para los sitios web populares, pueden ser enormes (terabytes + por día). Por lo tanto, tener un marco para realizar tareas informáticas distribuidas es esencial para resolver este problema.

2) Descarga y configura tu solución de big data.

Lo más fácil es usar una máquina virtual precompilada que casi cualquier proveedor de Hadoop pone a disposición de forma gratuita [1], y luego ejecutarlo localmente. También puede utilizar un servicio como Amazon Web Services también. En general, la gente usará el marco de reducción de mapas y Hive para procesar grandes volúmenes de datos. Ya que solo estás buscando aprender, no necesitarás terabytes, o incluso gigabytes de datos para jugar, por lo que obtener acceso a un clúster de 100 nodos no será una prioridad. Aunque ciertamente hay desafíos que superar y comprender una vez que comienzas a entrar en entornos de múltiples nodos.

3) Resuelve tu problema de big data
Una vez que haya configurado su entorno, ¡comience a programar! Hay una gran cantidad de documentación y tutoriales para hacer referencia y aprender de [2]. Y realmente, simplemente escriba preguntas en Google y obtendrá un montón de recursos. Lea las herramientas y entienda cómo la tecnología se puede aplicar para resolver su caso de uso. Piense en los tipos de métricas que desea capturar dentro de sus datos. Piense en qué tipo de programas de reducción de mapas necesitará escribir para capturar los datos que desea analizar. Piense en cómo puede aprovechar algo como Hive o Pig para hacer un montón de crujidos de números pesados. Algo que probablemente no sea evidente en un entorno de un solo nodo, pero es un problema del mundo real en cualquier entorno distribuido, es entender la inclinación de los datos y cómo afecta el rendimiento [3].

4) Análisis y visualización: el lado atractivo de Big Data y BI
Ahora que ha resuelto su problema de big data y tiene sus datos en un formato manejable, es hora de deslumbrar a su jefe con algunos informes dulces. La mayoría de las arquitecturas empresariales que aprovechan Hadoop todavía tendrán una base de datos SQL para almacenar e informar datos de Hadoop (rápidamente se dará cuenta de que map-reduce tiene un tiempo de respuesta muy largo, incluso en conjuntos de datos pequeños). Cargar datos fuera de Hadoop y en una base de datos SQL es una buena práctica para el mundo real, pero para aprender el lado de big data, no es necesario. Hay varias herramientas de informes (gratuitas) por ahí que se conectarán a Hadoop / Hive directamente y funcionarán bien para fines de aprendizaje [4]. Si quieres ser el chico cool en el bloque (y el empleo de las grandes empresas es muy bueno), me gustaría comprar Tableau (producto) [5]. También podrías prestarte a aprender algunas técnicas de modelado predictivo y de aprendizaje automático con algunas de las herramientas que están disponibles [6], ¡y quizás comenzar a llamarte científico de datos!

[1]
Soporte Cloudera
Caja de arena de Hortonworks
Descargar (MapR)

[2]
¡Bienvenido a Apache ™ Hadoop®!
¡Bienvenido a Hive!
Tutorial de Hadoop
Tutorial de Hadoop – YDN
http://pig.apache.org/docs/r0.7….

[3]
http://www-db.in.tum.de/research…

[4]
Productos Pentaho
Jaspersoft :: Jaspersoft Business Intelligence Software
http://www.splunk.com/

[5]
Tableau Software

[6]
El Proyecto R de Informática Estadística
http://www.sas.com/
Aprendizaje automático escalable y minería de datos

Big Data es un campo en crecimiento y es probable que tengas mucho que aprender si quieres aprender más. Intentaré proporcionar el camino que tomé:

1. Comience por aprender un lenguaje de programación:

Si desea abordar Big data, debe saber Python / Java. Si no sabes, ambos comienzan con Python. Simplemente comience con lo básico: bucles, listas, diccionarios, iteración a través de una lista y un diccionario, etc. Recomendaría tomar este curso en edX: Introducción a la informática y programación mediante Python
En el resto de este post asumiré que aceptaste mi sugerencia y estás usando Python.

Créditos de la imagen: xkcd

2. Aprenda acerca de una plataforma de Big Data:

Una vez que sienta que podría resolver problemas básicos utilizando Python / Java, estará listo para el siguiente paso. Necesita aprender acerca de alguna tecnología de Big Data como Hadoop / Spark. Ahora también puede comenzar con Spark, pero creo que Hadoop sería el mejor lugar para comenzar, ya que puede proporcionarle más antecedentes del Paradigma de Mapreduce y podrá comprender los problemas que resuelve la introducción de Spark.
Para aprender Hadoop, te aconsejaría que visites este curso en Udacity:
https://www.udacity.com/course/intro-to-hadoop-and-mapreduce–ud617

Una vez que haya terminado este curso, habrá adquirido una comprensión bastante básica de los conceptos y habrá instalado una máquina virtual Hadoop en su propia máquina. También habrías resuelto el problema básico de Wordcount.

Lee esta increíble publicación de blog de Michael Noll: Escribiendo un programa de Hadoop MapReduce en Python – Michael G. Noll. Solo lee los códigos básicos de mapreduce. No uses iteradores y generadores todavía. Este ha sido un punto de partida para muchos de los desarrolladores de Hadoop.

Ahora trate de resolver estos dos problemas del curso CS109 Harvard de 2013:

A. Primero, tome el archivo word_list.txt de Page en github.com. Esto contiene una lista de palabras de seis letras. Para mantener las cosas simples, todas las palabras constan solo de letras minúsculas. Escriba un trabajo mapreduce que encuentre todos los anagramas en word_list.txt.

B. Para el siguiente problema, descargue el archivo baseball_friends.csv. Cada fila de este archivo csv contiene lo siguiente:

  • El nombre de una persona
  • El equipo al que esa persona está alentando – ya sea “Cardinals” o “Red Sox”
  • Una lista de los amigos de esa persona, que podría tener una longitud arbitraria.

Por ejemplo: la primera línea nos dice que Aaden es un amigo de los Medias Rojas y que tiene 65 amigos, todos ellos listados aquí. Para este problema, es seguro asumir que todos los nombres son únicos y que la estructura de la amistad es simétrica ( es decir, si Alannah aparece en la lista de amigos de Aaden, entonces Aaden aparecerá en la lista de amigos de Alannah).
Escribe un trabajo de sr que incluya el nombre de cada persona, su equipo favorito, la cantidad de fanáticos de los Red Sox con los que son amigos y la cantidad de fanáticos de los Cardenales con los que son amigos.

Intenta hacer esto tú mismo. No utilice la forma mrjob (pronunciada Sr. Job) que utilizan en la clase CS109. Use la forma correcta de transmisión de Hadoop que se enseña en la clase de Udacity ya que es mucho más personalizable a largo plazo. Si te enfrentas a problemas yo podría guiarte. Ponme al día.

Si ha terminado con esto, puede llamarse a sí mismo como alguien que podría “pensar en Mapreduce” como a la gente le gusta llamarlo. Intente hacer groupby, filtrar y unirse usando Hadoop. Puedes leer algunos buenos trucos de mi blog:
Hadoop Mapreduce Streaming Trucos y técnicas

Y no te olvides de la API de transmisión de Hadoop. Léelo !!!!!

3. Aprende un poco de Bash Scripting:

Mientras tanto, mientras está aprendiendo Hadoop y en el proceso de ensuciarse las manos con la codificación, intente leer sobre shell scripting.
Le permite realizar tareas simples relacionadas con datos en el propio terminal.
Lee estos tutoriales para hacer eso:

Conceptos básicos de Shell que todo científico de datos debería saber: Parte I
Conceptos básicos de Shell que todo científico de datos debería saber: Parte II (AWK)

Uso los comandos de shell porque son rápidos y no necesito escribir un script para cada uno y todo.

4. Aprende Chispa:


Ahora viene la siguiente parte de tu proceso de aprendizaje. Esto debe realizarse después de un
Un poco de experiencia con Hadoop. Spark te proporcionará la velocidad y las herramientas que Hadoop no pudo. Pero necesitas saber Scala / Python para usarlo. Esa es una de las razones por las que sugerí que vayas con Python si no sabes nada de Java / Python.

Ahora Spark se utiliza para la preparación de datos, así como con fines de aprendizaje automático. Le animo a que eche un vistazo a estos dos cursos sobre edX proporcionados por instructores de Berkeley. El segundo curso también te ayudará a comenzar un poco en Aprendizaje automático.

1. Introducción a Big Data con Apache Spark.
2. Aprendizaje automático escalable

He escrito un poco sobre el procesamiento de datos básicos con chispa aquí:
Learning Spark usando Python: conceptos básicos y aplicaciones

Si no sigue los cursos, intente resolver los mismos dos problemas que Hadoop resolvió utilizando Spark. De lo contrario, el conjunto de problemas en los dos cursos es más que suficiente.

Y lo siento por todos los enchufes descarados, pero siento que agregan valor, así que los agregué.

Espero que esto ayude. Ahora ponte a trabajar !!!