Red de conocimiento informático - Material del sitio web - Cómo elegir la plataforma big data o haoop adecuada

Cómo elegir la plataforma big data o haoop adecuada

Big data se ha convertido este año en un tema relevante para muchas empresas. Aunque no existe una definición estándar de qué es "big data", Hadoop se ha convertido en el estándar de facto cuando se trata de procesar big data. Hadoop es adoptado por casi todos los principales proveedores de software, como IBM, Oracle, SAP e incluso Microsoft. Sin embargo, cuando decide que quiere utilizar Hadoop para procesar big data, las primeras preguntas que tiene son cómo empezar y qué producto elegir. Tiene varias opciones para instalar versiones de Hadoop e implementar el procesamiento de big data. Este artículo analizará las diferentes opciones y recomendará cuándo cada opción es apropiada.

Múltiples opciones para la plataforma Hadoop

La siguiente figura muestra las diversas opciones para la plataforma Hadoop. Puede instalar solo la distribución de Apache, elegir una de varias distribuciones ofrecidas por diferentes proveedores o decidir utilizar una de las suites de big data. Es importante comprender que cada distribución incluye Apache Hadoop y casi todas las suites de big data incluyen o utilizan uno.

Contenido relacionado con proveedores

Muchas opciones de almacenamiento, casos de uso ideales y características como elasticidad y escalabilidad en AWS. ¿Cuáles son algunas formas de implementar las mejores prácticas de EMR y patrones arquitectónicos comunes para acelerar las cosas? Windows Azure realiza la automatización desde el desarrollo hasta la implementación Microsoft Windows Azure inicia el viaje del aprendizaje automático Construye sistemas a gran escala basados ​​en software de código abierto en la plataforma Azure

Patrocinadores relacionados

Windows Azure The ¡Hay un área especial en línea para comprender completamente la maravillosa presentación de los servicios en la nube!

A continuación, analizaremos más de cerca cada opción, comenzando con Apache Hadoop.

Apache Hadoop

La versión actual del proyecto Apache Hadoop (versión 2.0) contiene los siguientes módulos:

Módulo común de Hadoop: un conjunto de herramientas común que admite otros Módulos Hadoop.

Sistema de archivos distribuido Hadoop (HDFS): un sistema de archivos distribuido que admite acceso de alto rendimiento a los datos de las aplicaciones.

Hadoop YARN: un marco para la programación de trabajos y la gestión de recursos del clúster.

Hadoop MapReduce: un sistema de procesamiento paralelo de big data basado en YARN.

Instalar Apache Hadoop de forma independiente en su sistema local es muy simple (simplemente descomprímalo y configure algunas variables de entorno, y listo). Pero esto sólo es adecuado para empezar y realizar algunos tutoriales básicos.

Si desea instalar Apache Hadoop en uno o más "nodos reales", la situación es mucho más complicada.

Problema 1: Configuración compleja del clúster

Puede utilizar el modelo pseudodistribuido para simular una instalación de varios nodos en un solo nodo. Puede simular instalaciones en varios servidores diferentes en un solo servidor. Incluso en este modo, hay que realizar mucho trabajo de configuración. Si desea configurar un clúster que consta de varios nodos, el proceso sin duda será más complicado. Si eres nuevo como administrador, tendrás que luchar con los permisos de usuario, los derechos de acceso y otros problemas similares.

Pregunta 2: Uso del ecosistema Hadoop

En Apache, todos los proyectos son independientes entre sí. ¡Esto es genial! Pero el ecosistema Hadoop incluye muchos otros proyectos de Apache además de Hadoop:

Pig: una plataforma para analizar grandes conjuntos de datos, que consta de un lenguaje de alto nivel para expresar programas de análisis de datos y los componentes de infraestructura utilizados para evaluarlos. programas.

Hive: un sistema de almacenamiento de datos para Hadoop que proporciona un lenguaje de consulta similar a SQL que se puede utilizar para facilitar la agregación de datos, consultas ad hoc y análisis de big data almacenados en sistemas de archivos compatibles con Hadoop.

Hbase: un repositorio de big data distribuido y escalable que admite acceso aleatorio de lectura/escritura en tiempo real.

Sqoop: una herramienta diseñada para la transferencia eficiente de datos por lotes entre Apache Hadoop y repositorios de datos estructurados como bases de datos relacionales.

Flume: un servicio distribuido, confiable y disponible para recopilar, agregar y mover de manera eficiente grandes cantidades de datos de registros.

ZooKeeper: Un servicio centralizado para mantener información de configuración, nombrar y proporcionar servicios distribuidos de sincronización y agrupación.

También hay otros proyectos.

Necesita instalar estos proyectos e integrarlos manualmente en Hadoop.

Debe estar atento a las diferentes versiones y lanzamientos usted mismo. Desafortunadamente, no todas las versiones funcionan perfectamente juntas. Hadoop ofrece una gran cantidad de versiones, ramas, características, etc. diferentes. A diferencia de los números de versión 1.0, 1.1 y 2.0 que conoce de otros proyectos, las versiones de Hadoop están lejos de ser simples. Si desea conocer más detalles sobre el "infierno de la versión Hadoop", lea el artículo "Genealogía del elefante".

Problema 3: Soporte comercial

Apache Hadoop es sólo un proyecto de código abierto. Esto ciertamente tiene muchos beneficios. Puede acceder y cambiar el código fuente. De hecho, algunas empresas utilizan y amplían el código base y añaden nuevas funciones. Hay una gran cantidad de información disponible en muchas discusiones, artículos, blogs y listas de correo.

La verdadera pregunta, sin embargo, es cómo conseguir soporte comercial para proyectos de código abierto como Apache Hadoop. Las empresas a menudo solo brindan soporte para sus propios productos y no para proyectos de código abierto (todos los proyectos de código abierto enfrentan este problema, no solo los proyectos de Hadoop).

Cuándo usar Apache Hadoop

Apache Hadoop es ideal para principiantes porque su instalación independiente se puede completar en aproximadamente 10 minutos en su sistema local. Puede probar el ejemplo de WordCount (que es un ejemplo de "hola mundo" para Hadoop) y explorar algo de código Java de MapReduce.

Si no desea utilizar una distribución de Hadoop "real" (consulte la siguiente sección), entonces Apache Hadoop es la opción correcta para usted. Sin embargo, no tengo ninguna razón para no utilizar una de las distribuciones de Hadoop; también tienen versiones gratuitas no comerciales.

Por lo tanto, para un proyecto Hadoop real, recomiendo encarecidamente utilizar una distribución Hadoop en lugar de Apache Hadoop.

Distribuciones de Hadoop

Las distribuciones de Hadoop abordan los problemas mencionados en la sección anterior. El modelo de negocio de un proveedor de distribución depende enteramente de su propia distribución. Proporcionan embalaje, herramientas y soporte comercial. Estos simplifican enormemente no sólo el desarrollo sino también la operación.

Las distribuciones de Hadoop agrupan los diferentes proyectos incluidos en el ecosistema Hadoop. Esto garantiza que todas las versiones utilizadas funcionen juntas sin problemas. Las distribuciones se lanzan periódicamente y contienen actualizaciones de versión para diferentes proyectos.

Los proveedores de distribución proporcionan herramientas gráficas además del contenedor para implementar, administrar y monitorear clústeres de Hadoop. Este enfoque facilita la configuración, gestión y supervisión de clústeres complejos. Esto ahorrará mucho trabajo.

Como se mencionó en la sección anterior, es difícil obtener soporte comercial para proyectos regulares de Apache Hadoop, y los proveedores brindan soporte comercial para sus propias distribuciones de Hadoop.

Proveedor de distribución de Hadoop

Actualmente, además de Apache Hadoop, la troika HortonWorks, Cloudera y MapR también son comparables en términos de distribuciones. Sin embargo, al mismo tiempo surgieron otras distribuciones de Hadoop. Los ejemplos incluyen Pivotal HD de EMC, InfoSphere BigInsights de IBM y Amazon Elastic MapReduce (EMR), y Amazon incluso ofrece soluciones alojadas y preconfiguradas en su nube.

Si bien muchos otros proveedores de software no desarrollan sus propias distribuciones de Hadoop, tienen una asociación con un proveedor de distribución. Por ejemplo, Microsoft y Hortonworks se han asociado para llevar Apache Hadoop al sistema operativo Windows Server y al servicio en la nube Windows Azure. Otro ejemplo es la oferta de aplicaciones de big data de Oracle al combinar su propio hardware y software con la distribución Hadoop de Cloudera. Los proveedores de software como SAP y Talend admiten varias distribuciones diferentes simultáneamente.

¿Cómo elegir la distribución de Hadoop adecuada?

Este artículo no evaluará distribuciones individuales de Hadoop. Sin embargo, aquí hay una breve descripción de los principales proveedores de distribución. A menudo sólo existen diferencias sutiles entre las distribuciones que los proveedores consideran secretas y lo que diferencia sus productos. La siguiente lista explica las diferencias:

Cloudera: la distribución más madura con más implementaciones. Cloudera desarrolla y contribuye al proyecto Impala, que procesa big data en tiempo real.

Hortonworks: el único proveedor que utiliza Apache Hadoop 100 % de código abierto sin modificaciones de propiedad (no de código abierto). Hortonworks es el primer proveedor que utiliza la función del servicio de metadatos Apache HCatalog. Hortonworks ha desarrollado y se ha comprometido a realizar una serie de mejoras en la columna vertebral central, lo que permite que Apache Hadoop se use en micrositios que incluyen Windows Server y Windows Azure, lo que permite que Apache Hadoop se use en micrositios que incluyen Windows Server y Windows Azure se ejecuta de forma nativa en la plataforma Windows.

MapR: utiliza muchos conceptos diferentes a los de sus competidores, en particular, admite sistemas de archivos nativos Unix en lugar de HDFS (que utilizan componentes de código no abierto) para un mejor rendimiento y facilidad de uso. Puede utilizar comandos nativos de Unix en lugar de comandos de Hadoop. Además de esto, MapR también se diferencia de sus competidores al ofrecer funciones de alta disponibilidad como instantáneas, duplicación o recuperación de fallas de estado. La compañía también lidera el proyecto Apache Drill, una reimplementación del proyecto de código abierto Dremel de Google para ejecutar consultas similares a SQL en datos de Hadoop para proporcionar procesamiento en tiempo real.

Amazon Elastic Map Reduce (EMR): a diferencia de otros proveedores, esta es una solución alojada disponible en Amazon Elastic Compute Cloud (Amazon EC2) y Amazon Simple Strorage Service (Amzon S3) que se ejecuta en una infraestructura a escala web. . Además de la distribución de Amazon, también puedes utilizar MapR en EMR. Los clústeres temporales son el caso de uso principal. Si necesita procesar big data una sola vez o con poca frecuencia, un EMR puede ahorrarle costos significativos. Sin embargo, también tiene desventajas. Solo incluye los proyectos Pig y Hive en el ecosistema Hadoop y excluye muchos otros proyectos de forma predeterminada. Además, EMR está altamente optimizado para manejar datos en S3, que tiene una alta latencia y no puede ubicar los datos en los nodos de computación. Por lo tanto, la E/S de archivos en EMR será más lenta y tendrá una latencia más alta que en su propio clúster Hadoop o en su clúster EC2 privado.

Cada una de las distribuciones anteriores tiene la flexibilidad de usarse sola o junto con diferentes conjuntos de big data. Algunas otras distribuciones que surgieron durante este período eran menos flexibles y lo vinculaban a una pila de software y/o hardware específica. Por ejemplo, Pivotal HD de EMC integra de forma nativa la base de datos analítica de Greenplum para ofrecer consultas SQL en tiempo real y un rendimiento superior además de Hadoop, mientras que la distribución Apache Hadoop de Intel está optimizada para SSD, entre otras versiones de Hadoop. La compañía actualmente no hace esto.

Por lo tanto, si su empresa ya tiene una pila de soluciones configurada específica, asegúrese de confirmar qué distribuciones de Hadoop admite. Por ejemplo, si está utilizando una base de datos Greeplum, Pivotal puede ser una buena opción, mientras que en otros casos una solución más flexible puede ser más apropiada. Por ejemplo, si ya utiliza Talend ESB y desea comenzar su proyecto de big data con TalenD Big Data, puede elegir su distribución de Hadoop preferida, ya que Talend no está vinculado a un proveedor específico de distribución de Hadoop.

Para tomar la decisión correcta, comprende los conceptos de cada distribución y pruébalos. Consulte las herramientas que se ofrecen y analice el coste total del soporte Enterprise plus comercial. Entonces podrás decidir qué distribución es la adecuada para ti.

¿Cuándo utilizar una distribución Hadoop?

Debería utilizar una distribución de Hadoop para la gran mayoría de los casos de uso debido a las ventajas de empaquetado, herramientas y soporte comercial de la distribución. Es muy raro tomar una distribución estándar (planificada, simple) de Apache Hadoop y construir la suya propia sobre ella. Tienes que probar el paquete tú mismo, crear tus propias herramientas y escribir tus propios parches. Algunas otras personas tendrán el mismo problema que tú. Por lo tanto, asegúrese de tener una buena razón para no utilizar una distribución de Hadoop.

Sin embargo, incluso una distribución de Hadoop requiere mucho trabajo. Aún necesita escribir mucho código para sus trabajos de MapReduce e integrar todas las diferentes fuentes de datos en Hadoop. Y aquí es donde sobresalen los conjuntos de big data.

Big Data Suite

Puedes utilizar Big Data Suite sobre Apache Hadoop o una distribución de Hadoop. Los conjuntos de big data suelen admitir varias distribuciones de Hadoop diferentes. Sin embargo, algunos proveedores implementan sus propias soluciones Hadoop.

De cualquier manera, un paquete de big data va más allá de la distribución y agrega varias características para trabajar con big data:

Herramientas: normalmente, un paquete de big data se construye sobre un entorno de desarrollo integrado como Eclipse. Los complementos adicionales facilitan el desarrollo de aplicaciones de big data. Puede crear, construir e implementar servicios de big data en su entorno de desarrollo familiar.

Modelado: Apache Hadoop o una distribución de Hadoop proporciona la infraestructura para un clúster de Hadoop. Sin embargo, aún necesita escribir una gran cantidad de código muy complejo para crear su propio programa MapReduce. Puede escribir este código en Java simple o puede utilizar un lenguaje optimizado como PigLatin o Hive Query Language (HQL) para generar código MapReduce. Big Data Suite proporciona herramientas gráficas para modelar sus servicios de big data. Todo el código requerido se genera automáticamente. Sólo necesita configurar su trabajo (es decir, definir ciertos parámetros). Esto hace que el trabajo con big data sea más fácil y eficiente.

Generación de códigos: Genera todos los códigos. No es necesario escribir, depurar, analizar y optimizar el código MapReduce.

Programación: es necesario programar y monitorear la ejecución de trabajos de big data. No es necesario escribir trabajos cron u otro código para la programación. Puede utilizar fácilmente Big Data Suite para definir y gestionar planes de ejecución.

Integración: Hadoop requiere la integración de datos de todas las diferentes categorías de tecnologías y productos. Además de archivos y bases de datos SQL, también necesita integrar datos de bases de datos NoSQL, redes sociales como Twitter o Facebook, mensajería desde middleware de mensajería o productos B2B como Salesforce o SAP. Big Data Suite proporciona mucha ayuda para la integración al proporcionar una gran cantidad de conectores desde diferentes interfaces a Hadoop y backend. En lugar de escribir el código de conexión a mano, simplemente puede utilizar herramientas gráficas para integrar y mapear todos estos datos. Las capacidades de integración a menudo también tienen características de calidad de datos, como la limpieza de datos para mejorar la calidad de los datos importados.

Proveedores de paquetes de big data

El número de paquetes de big data sigue creciendo. Puede elegir entre varios proveedores propietarios y de código abierto. La mayoría de los grandes proveedores de software (como IBM, Oracle, Microsoft, etc.) han integrado un tipo específico de paquete de big data en su cartera de software. Y la gran mayoría de estos proveedores solo admiten distribuciones específicas de Hadoop, ya sea ellos mismos o en asociación con un proveedor de distribución de Hadoop.

Por otro lado, existen proveedores especializados en el tratamiento de datos. Ofrecen productos para integración de datos, calidad de datos, buses de servicios empresariales, gestión de procesos de negocio y otros componentes de integración. Estos van desde proveedores propietarios como Informatica hasta proveedores de código abierto como Talend o Pentaho. Algunos proveedores admiten no sólo una distribución de Hadoop, sino varias distribuciones simultáneamente. Por ejemplo, al momento de escribir este artículo, Talend funciona con Apache Hadoop, Cloudera, Hortonworks, MapR, Amazon Elastic MapReduce o distribuciones caseras personalizadas específicas como Pivotal HD usando EMC.

¿Cómo elegir el paquete de big data adecuado?

Este artículo no evaluará conjuntos de big data individuales. Aquí hay algunas cosas que debe considerar al elegir un paquete de big data. Los siguientes puntos le ayudarán a tomar la decisión correcta para su problema de big data:

Simplicidad: pruebe usted mismo un paquete de big data.

Esto también significa: instalarlo, conectarlo a su instalación de Hadoop, integrar sus diferentes interfaces (archivo, base de datos, B2B, etc.) y finalmente modelar, implementar y ejecutar algunos trabajos de big data. Compruebe usted mismo lo fácil que es utilizar un paquete de big data: no basta con que un consultor de un proveedor le muestre cómo funciona. Haga la prueba de concepto usted mismo.

Amplitud: ¿La suite de big data admite estándares de código abierto ampliamente utilizados, no solo Hadoop y su ecosistema, sino también la integración de datos a través de servicios web SOAP y REST, etc.? ¿Es de código abierto y se puede cambiar o ampliar fácilmente para resolver su problema específico? ¿Existe una gran comunidad con documentación, foros, blogs y reuniones?

Características: ¿Admite todas las funciones que necesitas? ¿Qué distribuciones están disponibles para Hadoop (si ya está usando una)? ¿Todas las partes del ecosistema Hadoop que desea utilizar? ¿Todas las interfaces, tecnologías y productos que desea integrar? Tenga en cuenta que demasiadas funciones pueden añadir complejidad y gastos. Así que compruebe si realmente necesita una solución pesada. ¿Realmente necesitas todas sus características?

Trampas: Ten cuidado con ciertas trampas. Algunas suites de big data utilizan un método de pago basado en datos ("impuesto a los datos"), lo que significa que hay que pagar por cada fila de datos procesados. Dado que estamos hablando de big data, esto puede resultar muy caro. No todas las suites de big data pueden generar código Apache Hadoop nativo, lo que a menudo requiere la instalación de un motor privado en los servidores de cada clúster de Hadoop, perdiendo así independencia del proveedor de software. Considere también lo que realmente desea hacer con su conjunto de big data. Algunas soluciones solo admiten ETL con Hadoop para poblar un almacén de datos, mientras que otras ofrecen capacidades como posprocesamiento, transformación o análisis de big data en un clúster de Hadoop.

Árbol de decisiones: Framework vs. Distribución vs. Suite

Ahora comprendes las diferencias entre las diferentes opciones para Hadoop. Finalmente, concluyamos y analicemos las ocasiones a la hora de elegir el marco Apache Hadoop, la distribución Hadoop o el paquete de big data.

El siguiente "árbol de decisiones" le ayudará a elegir el marco adecuado:

Apache:

¿Aprender y comprender los detalles de bajo nivel?

¿Experto? ¿Elegir y configurar usted mismo?

Distribuido:

¿Fácil de configurar?

¿Principiante (novato)?

¿Herramientas de implementación?

¿Necesitas soporte comercial?

Big Data Suite:

¿Integración de diferentes fuentes de datos?

¿Necesitas soporte comercial?

¿Generación de código?

¿Programación gráfica de trabajos de big data?

¿Habilitar el procesamiento de big data (integración, operaciones, análisis)?

Conclusión

Existen varias opciones para instalar Hadoop. Puedes utilizar el proyecto Apache Hadoop directamente y crear tu propia distribución desde el ecosistema Hadoop. Los proveedores de distribución de Hadoop (como Cloudera, Hortonworks o MapR) agregan herramientas, soporte comercial y otras funciones además de Apache Hadoop para minimizar la cantidad de trabajo requerido por los usuarios. Además de la distribución de Hadoop, puede utilizar Big Data Suite para capacidades adicionales como modelado, generación de código, programación de trabajos de big data, integración de todos los diferentes tipos de fuentes de datos y más. Asegúrese de evaluar las diferentes opciones para tomar la decisión correcta para su proyecto de big data.