¿Pueden las personas normales usar Hadoop? ¿La curva de aprendizaje es demasiado alta, o pueden los sobresalientes y no programadores (o aquellos que solo tienen un conocimiento superficial) usar Hadoop? Si es así, ¿cuáles serían algunos casos de uso comunes?

Bueno, por supuesto que pueden . Creo que la pregunta que hace es más parecida a, si uso Hadoop en nuestros analistas actuales de Excel / SQL, ¿estarán emocionados o frustrados?

La respuesta es probablemente frustrada.

Hay un par de razones para esto:

  • Excel es muy poderoso. El hecho de que los programadores no conozcan Excel significa que generalmente no se dan cuenta de esto.
  • Casi no hay superposición entre las cosas en las que Hadoop es bueno (escaneos lineales de grandes conjuntos de datos) y Excel es bueno en (visualización, modelado rápido y sucio de conjuntos de datos <64k entradas).
  • SQL en Hadoop (Hive) es mucho menos maduro que SQL en (digamos) Oracle o cualquier herramienta comercial madura. Esto significa errores graves, funciones faltantes, etc.
  • Ellos ya conocen las otras herramientas y, en mi experiencia, los programadores son las únicas personas lo suficientemente tontas como para entusiasmarse al aprender nuevas herramientas para hacer las mismas cosas que ya hacen. Para todos los demás eso es una tarea.
  • La integración con las herramientas de BI existentes es débil, principalmente exagerada en este momento.
  • La latencia es alta. Espere latencias de 1 minuto para consultas de Hive / Pig en un clúster descargado. Esto es excelente si sus datos son enormes y las consultas promedio antes de Hadoop tomaron horas, pero terrible si todo solía tomar 30 segundos, ya que ahora solo puede hacer la mitad de las consultas por día.

Nuestra experiencia con Hadoop en LinkedIn fue la siguiente:

  • Los primeros usuarios fueron ingenieros que trabajaban en problemas de datos, probablemente porque tenían la paciencia y el acceso a los recursos de hardware para configurarlo.
  • Esto fue seguido inmediatamente por los tipos de piratas informáticos entre los científicos y analistas de datos.
  • Esto fue seguido por el resto de los ingenieros.
  • Finalmente, esto fue seguido por analistas no piratas informáticos y ocasionalmente por el primer ministro. La adopción es incompleta entre estos grupos.

Aquí hay algunos casos en los que creo que Hadoop entusiasmará a la gente:

  • Por razones de escala / aislamiento, ha segmentado sus datos en múltiples bases de datos, cada una con datos incompletos. Como resultado, cualquier procesamiento o análisis que atraviese estos silos es muy difícil. Hadoop soluciona esto escalando a bajo costo, permitiéndole unificar sus sistemas.
  • Pasas una cantidad significativa de tiempo tratando de lidiar con problemas de escala: descartando datos, ideando estrategias de procesamiento más inteligentes, ajustando sql, etc.
  • Tiene un equipo de almacenamiento de datos dogmático y que no responde que tiene una obsesión poco saludable con el modelado de datos hasta el punto que inhibe el uso de los datos. Hadoop corrige esto sacudiendo lo que será efectivo (desnormalización y compresión en lugar de esquemas de estrellas); Esto hace que la gente piense.
  • Además de los informes normales, tiene un procesamiento no trivial que se hace (o debe hacerse) en código y esto se ejecuta como parte del ETL o en algún proceso ad hoc aparte de sus sistemas analíticos. Unificar este procesamiento con otras cosas puede ser una victoria.
  • Usted realiza cualquier análisis de datos completamente automático más allá de los informes, es decir, cualquier cosa en la que la salida se envía directamente a la empresa (es decir, por correo electrónico, relevancia de búsqueda, etc.).
  • Tienes muchos buenos programadores sentados que no van a pasar su tiempo en algo como PL / SQL. Es más probable que usen Hadoop.
  • El costo, la escala o la complejidad de ETL es una inhibición para obtener acceso a los datos. Creo que este es un gran problema en los entornos tradicionales a menos que tengan fuentes de datos muy estáticas. El problema es que ETL generalmente es algo separado del almacén de datos que carece de una historia de escala real. Con Hadoop, es posible mover todo el procesamiento al clúster de Hadoop, lo que hace que la escala sea trivial (esto a veces se llama ELT en lugar de ETL para indicar que la carga ocurre antes de la transformación). Sin embargo, esto solo alegrará indirectamente a sus analistas, solo si obtener acceso a los datos es actualmente un problema, y ​​la configuración de Hadoop y las cargas de datos se realizan correctamente para que haya más datos disponibles allí.

Para simplificar todo esto: Hadoop le permite unificar muchos tipos de procesamiento analítico desde programas de procesamiento de datos distribuidos de núcleo duro a SQL y secuencias de comandos en un solo sistema. Le permite poner todos sus datos en ese sistema sin ajustes continuos o una estructura de costos insana. Es exitoso en entornos que están dispuestos a intercambiar personas caras por costosos hw / sw en la creación de una solución. Todavía es muy inmaduro, así que espere golpes en el camino.

Sí, la normalidad es relativa … * sonrisa *

Hive es una respuesta obvia para los amigos de SQL. Pig, Cascading, etc. son algunas de las otras opciones para las personas que no quieren entrar en el paradigma de MapReduce.

Hadoop también está evolucionando para admitir marcos y paradigmas de ejecución alternativos para MapReduce que deberían impulsar la innovación y las elecciones. Las opciones deben incluir compensaciones frente a la confiabilidad de las aplicaciones, la tolerancia a fallas, la latencia, etc., realmente depende de dónde la comunidad se interese por opciones como MPI, procesamiento de flujo, etc.

Otra forma de ver esto es: en el mundo actual de datos grandes (cada día), ¿puede permitirse el lujo de no usar Hadoop? Hay una gran cantidad de casos de uso en los que Hadoop es simplemente la única opción. En mi anterior co. Teníamos un informe de 90 días que admitimos que era complejo y que llevó más de 15 días en una base de datos comercial popular: Hadoop volvería con una respuesta en 6 horas, en 2009, y desde entonces ha avanzado mucho. Esto abre un mundo completamente nuevo para el análisis de datos y conocimientos, un mundo que no querrá perderse.

Realmente depende de lo que esperas de él. Algunos problemas reales como los siguientes no son nuevos tipos de aplicaciones, solo los casos de uso habituales con una tonelada de datos. HDFS y Hive son soluciones perfectas, para cada una, respectivamente, del ecosistema Hadoop.

  • Hay demasiados datos importantes para almacenar en un RAID (> 2TB). Necesita redundancia, tamaño ilimitado y acceso relativamente fácil, como un sistema de archivos normal. Espera escalar horizontalmente simplemente agregando más discos
  • Tiene una tonelada de datos estructurados, más de lo que un nodo DB puede manejar razonablemente (> 80 GB), en el que desea ejecutar informes SQL sin conexión (agregados, etc.)

Hadoop tiene el beneficio adicional de que, en el primer caso, ejecutar programas contra todos los datos en su sistema de archivos es mucho más rápido que (conceptualmente) my_program

Estoy de acuerdo con Jay Kreps sobre un abismo entre el potencial de Hadoop y la realización del potencial, porque todos los jugadores de Hadoop (MapReduce, Hive, HBase) hacen algunas compensaciones difíciles (no hay manera de evitarlos) en los fundamentos del mundo RDBMS. Latencia comercial de MapReduce y Hive (qué tan rápido obtiene una respuesta) para la escalabilidad. Capacidad de intercambios de HBase (tipos muy limitados de búsquedas) para latencia. Finalmente, todavía no hay muchas herramientas de nivel superior como Excel para Hadoop. Tendrá que usar muchas cosas alfa / beta que probablemente no encajen en su cadena de herramientas existente (aunque muchas cadenas de herramientas, como BI, están comenzando a agregar soporte).

La ventaja de Hadoop, en pocas palabras, es la escalabilidad. Si tiene un sistema trabajando en Hadoop (lo que generalmente significa que ha factorizado una latencia más lenta en la ecuación), nunca más tendrá que preocuparse por la escalabilidad. Debería ser tan simple como simplemente agregar nodos para acomodar más potencia de procesamiento o almacenamiento.

Dicho esto, creo que es posible que desee echar un vistazo a Datameer, un front-end similar a Excel para Hadoop ( http://www.datameer.com ). Están tratando de facilitar el cruce del abismo.