¿Qué software se necesita para construir un sistema de análisis de big data usando Hadoop?
Dirección de alojamiento del código: ApacheSVN
Mesos proporciona aislamiento y uso compartido eficiente de recursos entre aplicaciones y marcos distribuidos, y admite Hadoop, MPI, Hypertable, Spark, etc.
Mesos es un proyecto de código abierto en Apache Incubator. Utiliza ZooKeeper para implementar una replicación tolerante a fallas, usa LinuxContainers para aislar tareas y admite múltiples asignaciones de recursos (memoria y CPU). Proporciona API de Java, Python y C++ para desarrollar nuevas aplicaciones paralelas y una interfaz de usuario basada en web para ver el estado del clúster.
2. Hadoop YARN
Dirección de alojamiento del código: ApacheSVN
YARN, también conocido como MapReduce2.0, propone un contenedor de soluciones de aislamiento de recursos basado en Mesos y YARN. , pero aún no está maduro y solo proporciona aislamiento de memoria para la máquina virtual Java.
En comparación con MapReduce1.x, la arquitectura YARN no ha cambiado mucho en el lado del cliente y aún mantiene la mayor compatibilidad en términos de llamadas a API e interfaces. Sin embargo, en YARN, los desarrolladores utilizan ResourceManager, ApplicationMaster y NodeManager para reemplazar el JobTracker y el TaskTracker principales en el marco original. Entre ellos, ResourceManager es un servicio central que se encarga de programar e iniciar el ApplicationMaster al que pertenece cada trabajo, y también se encarga de monitorear la existencia de ApplicationMaster. NodeManager es responsable de mantener el estado del contenedor y mantener un latido al RM. ApplicationMaster es responsable de todo el trabajo en un ciclo de vida laboral, similar a JobTracker en el marco anterior.
Soluciones en tiempo real en Hadoop
Hemos dicho antes que las empresas de Internet a menudo adoptan varios marcos informáticos basados en requisitos de lógica empresarial, como las empresas dedicadas al negocio de búsqueda: MapReduce para indexación web. , Spark para procesamiento de lenguaje natural, etc.
3. ClouderaImpala
Dirección de alojamiento del código: GitHub
Impala es un motor de consultas de procesamiento masivo paralelo (MPP) de código abierto desarrollado por Cloudera. Los mismos metadatos, sintaxis SQL, controlador ODBC e interfaz de usuario (hue beeswax) que Hive pueden proporcionar consultas SQL rápidas e interactivas directamente en HDFS o HBase. Impala fue desarrollado inspirado en Dremel y la primera versión se lanzó a finales de 2012.
Impala ya no utiliza el procesamiento por lotes lento de Hive+MapReduce, sino que utiliza un motor de consultas distribuidas similar al de una base de datos relacional paralela comercial (compuesta por QueryPlanner, QueryCoordinator y QueryExecEngine), que se puede recuperar directamente desde HDFS. o HBase Consulta datos en la base de datos, con SELECT, JOIN y funciones estadísticas, lo que reduce en gran medida la latencia.
4. Spark
Dirección de alojamiento del código: Apache
Spark es un marco informático de clúster de análisis de datos de código abierto, desarrollado originalmente por AMPLab en la Universidad de California. Berkeley construido sobre HDFS. Spark, al igual que Hadoop, se utiliza para crear aplicaciones de análisis de datos de baja latencia y gran escala. Spark se implementa en lenguaje Scala y Scala sirve como marco de aplicación.
Spark utiliza conjuntos de datos distribuidos basados en memoria para optimizar cargas de trabajo iterativas y consultas interactivas. A diferencia de Hadoop, Spark y Scala están estrechamente integrados y Scala gestiona conjuntos de datos distribuidos como objetos de colección local. Spark admite tareas iterativas en conjuntos de datos distribuidos y, de hecho, puede ejecutarse con Hadoop en el sistema de archivos Hadoop (implementado por YARN, Mesos, etc.).
).
Storm
Dirección de alojamiento del código: GitHub
Storm es un sistema informático distribuido en tiempo real tolerante a fallas desarrollado por BackType y luego capturado por Twitter. Storm es una plataforma de procesamiento de transmisiones, que se utiliza principalmente para cálculos en tiempo real y actualización de bases de datos. Storm también se puede utilizar para "cálculo continuo" para realizar consultas continuas en el flujo de datos y enviar los resultados al usuario en forma de flujo durante el cálculo. También se puede utilizar en "RPC distribuido" para ejecutar operaciones costosas en paralelo.
Otras soluciones en Hadoop
Como se mencionó anteriormente, basándose en las necesidades en tiempo real del negocio, varios laboratorios han inventado herramientas de procesamiento de flujo en tiempo real, como Storm, Impala, Spark y Samza esperan. En esta sección, compartimos soluciones de código abierto basadas en el rendimiento de laboratorio, la compatibilidad y la investigación de tipos de datos, incluidos Shark, Phoenix, Apache Accumulo, Apache Drill, Apache Giraph, Apache Hama, Apache Tez y Apache Ambari.
6. Shark
Dirección de alojamiento del código: GitHub
Shark significa "HiveonSpark". Es un sistema de almacenamiento de datos a gran escala especialmente diseñado para Spark y es compatible con ApacheHive. HiveQL se puede ejecutar hasta 100 veces sin modificar datos o consultas existentes.
Shark admite el lenguaje de consulta de Hive, el metaalmacenamiento, los formatos de serialización y las funciones definidas por el usuario, y se integra perfectamente con las implementaciones de Hive existentes, lo que lo convierte en una alternativa más rápida y poderosa.
Phoenix
Dirección de alojamiento del código: GitHub
Phoenix es una capa intermedia de SQL construida sobre Apache HBase, escrita íntegramente en Java y proporciona un controlador JDBC. incorporado por el cliente. El motor de consultas de Phoenix convertirá la consulta SQL en uno o más HBasescans y programará la ejecución para producir un conjunto de resultados JDBC estándar. Al utilizar la API de HBase, coprocesadores y filtros personalizados directamente, el nivel de rendimiento es de milisegundos para consultas simples y de segundos para millones de filas. Phoenix está completamente alojado en GitHub.
Las características notables de Phoenix incluyen: 1. Controlador JDBC integrado, que implementa la mayoría de las interfaces java.sql, incluida la API de metadatos2. Las columnas se pueden modelar con múltiples claves de fila o unidades de clave/valor; 3. Soporte DDL; 4. Almacén de esquemas versionados; 5. Soporte DML; 5. Proporcionar soporte de transacciones limitado a través del procesamiento por lotes del cliente 6. Seguir estrictamente los estándares ANSISQL;
8. ApacheAccumulo
Dirección de alojamiento del código: ApacheSVN
ApacheAccumulo es una solución de almacenamiento de valores de claves confiable, escalable, de alto rendimiento, ordenada y distribuida basada en celdas. control de acceso y procesamiento del lado del servidor personalizable. Adoptando las ideas de diseño de Google BigTable, está construido sobre la base de Apache Hadoop, Zookeeper y Thrift. Accumulo fue desarrollado originalmente por la NSA y luego donado a la Fundación Apache.
En comparación con Google BigTable, Accumulo mejora principalmente el acceso basado en unidades y el mecanismo de programación del lado del servidor. Esta última modificación permite a Accumulo modificar pares clave-valor en cualquier punto del proceso de procesamiento de datos.
9. ApacheDrill
Dirección de alojamiento del código: GitHub
Esencialmente, ApacheDrill es una implementación de código abierto de GoogleDremel. Es una capa de consulta mpp distribuida que admite SQL. , junto con algunos lenguajes utilizados en los sistemas de almacenamiento de datos NoSQL y Hadoop, ayudarán a los usuarios de Hadoop a consultar conjuntos de datos masivos más rápido. Actualmente, Drill solo puede considerarse un marco que contiene solo la funcionalidad inicial en la visión de Drill.
Drill tiene como objetivo admitir una gama más amplia de fuentes de datos, formatos de datos y lenguajes de consulta.
Puede completar el análisis de correlación escaneando rápidamente (en segundos) petabytes de datos, y será un sistema distribuido diseñado específicamente para el análisis interactivo de grandes conjuntos de datos.
10. ApacheGiraph
Dirección de alojamiento del código: GitHub
ApacheGiraph es un sistema de procesamiento de gráficos iterativo distribuido escalable inspirado en BSP (paralelo síncrono masivo) y Google Lo que establece Pregel. aparte está su arquitectura de código abierto y basada en Hadoop.
La plataforma de procesamiento Giraph es adecuada para ejecutar cálculos lógicos a gran escala, como clasificación de páginas, * * * * intercambio de enlaces, clasificación personalizada, etc. Giraph se centra en la computación de gráficos sociales y Facebook lo utiliza como el núcleo de su herramienta OpenGraph para procesar las conexiones entre billones de usuarios y sus comportamientos en minutos.
11. ApacheHama
Dirección de alojamiento del código: GitHub
ApacheHama es un marco informático BSP (BulkSynchronousParallel) basado en Hadoop, que imita el Pregel de Google. Se utiliza para manejar cálculos científicos a gran escala, especialmente cálculos matriciales y gráficos. La arquitectura del sistema en un entorno de clúster consta de tres módulos: servidor maestro/groom BSP (motor informático), Zookeeper (bloqueo distribuido) y HDFS/HBase (sistema de almacenamiento).
12. ApacheTez
Dirección de alojamiento del código: GitHub
ApacheTez es un marco informático DAG (DirectedAciclicGraph) basado en HadoopYarn. Divide el proceso Map/Reduce en varios subprocesos y puede fusionar múltiples tareas Map/Reduce en una tarea DAG más grande, reduciendo así el almacenamiento de archivos entre Map/Reduce. Al mismo tiempo, combine racionalmente subprocesos para reducir el tiempo de ejecución de las tareas. Desarrollado y respaldado por Hortonworks.
13. Apache Ambari
Dirección de alojamiento del código: ApacheSVN
Apache Ambari es un marco de código abierto que se utiliza para proporcionar, administrar y monitorear clústeres de Apache Hadoop. Proporciona herramientas operativas intuitivas y una sólida API de Hadoop, que puede ocultar operaciones complejas de Hadoop y simplificar enormemente las operaciones del clúster. La primera versión se lanzó en junio de 2012.
ApacheAmbari es ahora un proyecto de nivel superior de Apache. En agosto de 2011, Hortonworks presentó Ambari como un proyecto de Apache Incubator con la visión de hacer que la gestión del clúster Hadoop sea extremadamente simple. He estado en la comunidad de desarrollo durante más de dos años y he crecido significativamente, desde un pequeño equipo hasta colaborador de varias organizaciones de Hortonworks. La base de usuarios de Ambari ha ido creciendo de manera constante y muchas organizaciones confían en Ambari para implementar y administrar clústeres de Hadoop a escala en sus grandes centros de datos.
Los componentes de Hadoop actualmente soportados por Apache Ambari incluyen: HDFS, MapReduce, Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig y Sqoop.