La diferencia entre nutch y elasticsearch
La arquitectura del rastreador web se basa en Nutch Hadoop y es una arquitectura típica de procesamiento por lotes distribuido fuera de línea. Tiene un rendimiento y un rendimiento de rastreo excelentes y proporciona una gran cantidad de opciones de personalización de configuración. Dado que el rastreador web solo es responsable de rastrear los recursos de la red, se necesita un motor de búsqueda distribuido para indexar y buscar los recursos de red capturados por el rastreador web en tiempo real.
La arquitectura del motor de búsqueda se basa en ElasticSearch. Es una arquitectura de consulta interactiva en tiempo real distribuida en línea típica sin un único punto de falla, alta escalabilidad y alta disponibilidad. La indexación y la búsqueda de grandes cantidades de información se pueden completar casi en tiempo real, lo que permite una búsqueda rápida en tiempo real de miles de millones de archivos y petabytes de datos, al tiempo que proporciona una gama completa de opciones para controlar casi todos los aspectos del motor. . Es compatible con RESTful API y puede usar JSON para llamar a sus diversas funciones a través de HTTP, incluidas la búsqueda, el análisis y el monitoreo. Además, se proporcionan bibliotecas de clases de cliente nativas para varios lenguajes como Java, PHP, Perl, Python y Ruby.
Los rastreadores web extraen los datos capturados de forma estructurada y los envían a los motores de búsqueda para su indexación y análisis de consultas. Dado que el objetivo de diseño de los motores de búsqueda son consultas interactivas complejas casi en tiempo real, los motores de búsqueda no guardan el contenido original de las páginas web indexadas. Por lo tanto, se requiere una base de datos distribuida casi en tiempo real para almacenar el contenido original de las páginas web.
La arquitectura de base de datos distribuida se basa en Hbase Hadoop y es una arquitectura típica de lectura y escritura aleatoria en tiempo real distribuida en línea. Tiene una escalabilidad horizontal extremadamente fuerte, admite miles de millones de filas y millones de columnas, puede escribir datos enviados por rastreadores web en tiempo real y puede cooperar con motores de búsqueda para obtener datos en tiempo real según los resultados de búsqueda.
Los rastreadores web, las bases de datos distribuidas y los motores de búsqueda se ejecutan en clústeres compuestos de hardware comercial común. El clúster adopta una arquitectura distribuida y se puede expandir a decenas de miles de máquinas. Tiene un mecanismo tolerante a fallas. La falla de algunos nodos de la máquina no causará pérdida de datos ni fallas en las tareas informáticas. No solo tiene alta disponibilidad, puede realizar rápidamente una conmutación por error cuando falla un nodo y también es altamente escalable. Simplemente agregando máquinas se puede escalar linealmente horizontalmente y aumentar la capacidad de almacenamiento de datos y la velocidad de computación.
La relación entre los rastreadores web, las bases de datos distribuidas y los motores de búsqueda:
1. Una vez que el rastreador web completa el análisis de la página HTML capturada, agrega los datos analizados a la cola de la zona de búfer. , los otros dos subprocesos son responsables de procesar los datos, un subproceso es responsable de guardar los datos en la base de datos distribuida y el otro subproceso es responsable de enviar los datos al motor de búsqueda para su indexación.
2. El motor de búsqueda procesa las condiciones de búsqueda del usuario y devuelve los resultados de la búsqueda al usuario. Si el usuario ve una instantánea de la página web, el contenido original de la página web se obtiene de la base de datos distribuida.
La arquitectura general se muestra en la siguiente figura:
En términos de implementación física, los clústeres de rastreadores, los clústeres de bases de datos distribuidas y los clústeres de motores de búsqueda se pueden implementar en el mismo clúster de hardware o Implementado por separado, formando 1-3 grupos de hardware.
El clúster del rastreador web tiene un sistema de gestión de configuración del rastreador web dedicado que es responsable de la configuración y gestión del rastreador, como se muestra en la siguiente figura:
El motor de búsqueda utiliza fragmentos y réplicas (réplica) logra alto rendimiento, alta escalabilidad y alta disponibilidad. La tecnología de fragmentación brinda soporte para la indexación y la búsqueda paralelas a gran escala, lo que mejora en gran medida el rendimiento de la indexación y la búsqueda y mejora en gran medida las capacidades de expansión horizontal. La tecnología de copia proporciona redundancia para los datos y las fallas parciales de la máquina no afectan el uso normal del sistema. Garantiza la alta disponibilidad continua del sistema.
La estructura del índice con 2 fragmentos y 3 copias es la siguiente:
Un índice completo se divide en dos partes independientes 0 y 1, cada parte tiene 2 copias, la parte gris a continuación .
En un entorno de producción, a medida que aumenta la escala de datos, solo necesita agregar nodos de máquina de hardware. El motor de búsqueda ajustará automáticamente la cantidad de fragmentos para adaptarse al aumento de hardware. retirado, el motor de búsqueda también ajustará automáticamente la cantidad de fragmentos para adaptarse a la reducción de hardware. Al mismo tiempo, la cantidad de copias se puede cambiar en cualquier momento de acuerdo con los cambios en el nivel de confiabilidad del hardware y la capacidad de almacenamiento. Todo esto es dinámico y no requiere reiniciar el clúster. Esto también es una garantía importante de alta disponibilidad.