Hadoop para Todos: dentro de Cloudera Search

CDH, la distribución 100% opensource de Cloudera agrupando Apache Hadoop y los proyectos relacionados, ha permitido con éxito el procesamiento Big Data durante muchos años. El uso típico es insertar un gran conjunto de datos en HDFS o en Apache HBase para tener un almacenamiento barrato, flexible, eficaz y con una capacidad de procesamiento escalable. Con el tiempo han nacido varias herramientas que permiten un acceso más fácil, de tal forma que puedes ahora interactura con Hadoop a través de varios métodos de programación y con las capacidades muy establecidas del SQL.

por Eva Andreasson. 24 de Junio 2013 (Artículo original: Hadoop for Everyone: Inside Cloudera Search)

Sin embargo, muchos usuarios con menos interés en la interacción programática han sido excluidos del valor de Big Data que crea Hadoop.  Y los equipos que intentan conseguir mejor capacidad de procesamiento se peleean por tener una forma rápida y eficaz de interacturar con los datos en Hadoop o HBase y explotarlos.

Ayudar a estos usuarios a encontrar la información que necesitan sin necesidad de Java, SQL o lenguajes de scripting nos ha inspirado en integrar la funcionalidad de búsqueda de texto, a través de Cloudera Search (actualmente en beta), con la plataforma de procesamiento de gran alcance que ofrece CDH. La idea de utilizar la búsqueda en la misma plataforma que otras cargas de trabajo es la clave - ya no tiene que mover datos para satisfacer sus necesidades de negocio, ya que los datos y los índices se almacenan en la misma plataforma escalable y económica. Usted no sólo puede también encontrar lo que busca, pero dentro de la misma infraestructura "hace" cosas con sus datos. Cloudera Search aporta simplicidad y eficiencia para grandes conjuntos de datos,  conjuntos que necesitan el personal de misión crítica, así como el usuario medio, para encontrar una aguja en un pajar no estructurado!

Al ser integrado de forma nativa en CDH, Cloudera Search beneficia del mismo modelo de seguridad, el acceso a la misma fuente de datos y almacenamiento barato. Además, se añade a los servicios supervisados y gestionado por Cloudera Manager, proporcionendo así una visibilidad de la producción unificada y una gestión de clusters muy avanzada - una herramienta de valor incalculable para cualquier administrador de clúster.

En el resto de este post, voy a describir algunas de las características más importantes de Cloudera Search.

Basado en Apache Solr-based para tener una integración sencilla y un production maduro

Cloudera decidió adoptar Apache Solr en su la familia de productos CDH y contribuir a su integración en la plataforma CDH de forma innovadora, aportando valor y optimizando la integración para determinados casos de uso. Solr es, desde lejos, el motor de búsqueda de código abierto más maduro y activo disponible. Con la firme creencia de Cloudera en el valor del código abierto,  resultó evidente elegir Solr después de haber introspeccionado de código, estudiado el activismo de la comunidad, y haber visto de plan de trabajo de Solr (sobre todo con el entonces proyecto SolrCloud en versión alpha  - posteriormente puesto en libertad en Solr 4).

Solr proporciona una API extensa y es ampliamente utilizado e integrado, así que fue un objetivo clave en Cloudera Searchpara apoyarse en la APIs estándar de Solr Cualquier aplicación basándose en Solr APIs debe migrar sin problemas, y cualquier integración de terceros basándose en la API de Solr debería funcionar tal cual.

Un almacenamiento de índice robusto y escalable en HDFS

HDFS es la capa de almacenamiento de Cloudera Search. Es dónde se guardan los datos y los índices y ofrece una replicación nativa, por lo que si un nodo se cae, usted será capaz de continuar haciendo búsquedas desde cualquier otro nodo (por no mencionar la ventaja de almacenamr los índices en un infraestructura altamente escalable por un coste reducido).

Indexación en modo batch escalable a través de MapReduce

En Cloudera Search, MapReduce es la solución nativa que permite generar los índices en modo batch. En la fase "map", los datos se extraen y se preparan para la indexación. En cada fase "reduce", los datos está indexados (los programas "reduce" usan los indexadores de Apache Lucene ) y las piezas de índice se fusionan. La indexación y la fusión continúan hasta el punto de que los datos indexados se fusionan con el número correcto de fragmentos ("shard" en inglés) de índice, escritos y guardados en HDFS.

El enfoque MapReduce permite utilizar todos los recursos disponibles asignados para MapReduce, y por lo tanto permite una poderosa carga de trabajo de indexación escalable. También permite la flexibilidad en el sentido de que se puede ejecutar fácilmente una tarea de indexacción sobre un conjunto de datos temporal, o uno que usted necesita temporalmente para realizar búsquedas. Así que no es necesario seguir usando un almacenamiento caro para el índice gracias a Cloudera Search.

Servir inmediata nuevos índices a través GOLIVE

Usted puede optar por aplicar la nueva herramienta de Cloudera GOLIVE y empezar a servir nuevos índices de inmediato al ejecutar los servidores Solr en el clúster - gracias a la integración de la plataforma. ¡No se pierde tiempo de inactividad o tiempo de arranque para el funcionamiento de servidores de búsqueda!

Inserción de índices en tiempo casi real gracias a Flume

La segunda opción para la indexación es a través del software de ETL escalable, Apache Flume. Un sink de Flume desarrollado por Cloudera permite la extracción y mapeo de datos en el lado Flume y escritura inmediata de los índices en los servidores Solr que se ejecutan de forma nativa en HDFS. Flume también ofrece interesantes características de ruteo, filtrado, y anotar los datos, así como los canales de división para que pueda elegir opcionalmente para escribir los datos directamente en HDFS, así como a un servidor Solr que se ejecuta en el clúster. La integración Flume permite que los datos sean indexados en su camino hacia Hadoop.

La ETL con Flume escala muy bien en los centros de producción actuales, y la indexación durante el proceso de ETL es tan escalable como el propio Flume - en función de la cantidad de datos que va a empujar a través de sus indexadores que se ejecutan a la vez en el clúster  y el número de los indexadores que se estén ejecutando , por supuesto. Por lo tanto, depende de cada caso de uso, y Cloudera se haría un plazer en ayudarle durante todo el proceso de implementación y diseño de su caso de uso.

Indexación en tiempo real a escala de Registros HBase 

Otra opción para la indexación en tiempo real es a través del SEP y del proceso de índexación contribuido a cloudera Search por parte de nuestro socio, NGDATA. Esconde un servidor de replicación, y grava los eventos de replicación generados por un servidor master Apache HBase. A través de esta integración nativa, puede consumir todas las actualizaciones y eventos sin perturbar la actividad normal de HBase, y por lo tanto sin ningún impacto en el rendimiento. Luego los eventos son configurados opcionalmente, se preparan para la indexación y se envían a los servidores Solr que se ejecutan en HDFS, que escribe los datos indexados como índices en HDFS. Por lo tanto no hay coprocesadores involucrados, y sin embargo, se obtiene una solución muy limpia para hacer índices secundarios sobre sus datos en HBase.

Extracción de datos simpla y reutilisable

Cloudera Morphlines es un framework muy simple de hacer "mini-ETL" de los datos entrantes para prepararlo para varias cargas de trabajo de indexacción (ya sea a través de Flume, MapReduce o HBase). Similares a las tuberías de Unix, consta de una biblioteca de comandos simples que permiten hacer modificaciones definiendo como analizar un evento de datos. Morphlines proporciona capacidades dinámicas para cambiar las características de sus datos para que se pueda hacer búsquedas.

Soporte para formato de fichero extendido

Cloudera Search soporta los mismos formatos de archivo estándar como Solr (o más bien, que Apache Tika soporta). También se ha añadido soporte para  formatos Hadoop de archivo optimizado y formatos de compresión como Avro, Sequence File y Snappy.

CDH para Todos

Cloudera Search también viene con una interfaz de usuario sencilla que se proporciona como aplicación en HueHue también ofrece aplicaciones fáciles de interactuar con otros componentes en el CDH (explorador de archivos, aplicaciones de consulta, flujo de trabajo de programador, etc).

Gestión de la Producción y de Control a través de Cloudera Manager

Ninguna solución sería una solución de producción válida sin las capacidades de gestión y control adecuadas. Cloudera Manager ayuda a instalar, implementar y supervisar los servicios de búsqueda en el clúster. Con el tiempo, habrá muchas oportunidades para proporcionar información más avanzadas en los servicios de búsqueda y actividades. ¡Estén pendientes!

Especificaciones del hardware

No se necesitan configuraciones específicas de hardware, pero dependiendo de las necesidades de sus casos de uso y su necesidad de tiempo real, es posible que desee considerar discos SSD, RAM más grande etc. Dicho esto, Solr funciona tal y como está en el hardware de los productos básicos y ha demostrado un gran rendimiento en clusters CDH existentes en los que se ha desplegado en beta privada.

Seguridad y Acceso

Cloudera Search también ofrece opciones de acceso de los usuarios, cualquiera de los cuales se puede considerar un modelo de acceso a nivel de evento (por documento). Una opción consiste en anotar los eventos a medida que llegan a través de Flume previa introducción de interceptor existente en Flume. Luego, durante la consulta, utilice los filtros fijos para controlar los documentos - en base a lo anotaciones - que se muestran a determindados grupos de usuarios. Otra opción es utilizar el acceso a nivel de índice (o colección).

Estamos en el proceso de integración de la versión beta pública de Cloudera Search con Kerberos y planificamos soportar la autenticación y delegación de tijeb (o una solución similar) para que los usuarios autorizados acceden sólo a las colecciones a las cuales tienen derecho de lectura. En el caso MapReduce, se podría añadir a hacer anotaciones como parte de la extracción de datos y la fase de mapeo, o incluso como un paso MapReduce que envía los datos a través del proceso de indexación por lotes. Convenientemente programado a través de un flujo de trabajo Oozie Apache, tal vez?


Solr estándar - Todo lo que usted ya sabe

Con toda esta bondad, es importante recordar que Cloudera Search es Solr estándar: Todo su conocimiento de Solr será aplicable a cloudera Search, con la ventaja de que tal vez aprenderá más sobre Hadoop lo cual le permitirá realizar otras cargas de trabajo en los mismos datos Básicamente, usted podría comprar un libro de Solr 4 y ponerse al día en Cloudera Search al mismo tiempo. Lo qué Cloudera Search añade son los puntos de integración y una documentación extensa.
Pasos siguientes

Y por supuesto, si usted sabe Cloudera, es evidente que existe mucho más por venir a medida que continuamos nuestro viaje hacia adelante! Estén atentos, sin embargo, mientras tanto, para obtener más información:

    Vea el on-demand webinar
    
Pruebe Cloudera Search
    
Para saber más acerca de cómo se han utilizado otros o planear el uso de Cloudera Buscar

Eva Andreasson es product senior manager de Cloudera, responsable de Hue, Search, y otros proyectos en CDH.