Cómo buscar una cadena particular en archivos HDFS

Depende de:

  • qué tan grandes son los archivos, qué formato no es demasiado relevante
  • si planea agregar más archivos más tarde (sería necesario actualizar el índice, y quizás también una solución escalable para más de 1000 archivos)
  • cuantas veces quieres buscar una cadena en particular
  • qué tan rápido debe ser el sistema bajo una gran concurrencia (múltiples usuarios que buscan al mismo tiempo)
  • ¿Qué tan rápido desea que se devuelvan los resultados (segundos son buenos o se desean milisegundos?

Sugeriría al menos considerar esta nueva opción # 3.

3. Ejecute un trabajo MapReduce o Spark sobre todos los archivos de entrada, el procesamiento es simple (lea una línea y divida en palabras, agrupe por palabra para asegurar valores únicos, luego cree un MapFile como salida con la clave siendo la palabra)

MapFile contiene un índice, permite abrir el “archivo” y la búsqueda por clave es realmente rápida.

Más detalles de Google:

Archivo de mapa: construcción, uso, ejemplos de código

Hadoop I / O: Secuencia, mapa, conjunto, matriz, archivos BloomMap – Blog de ingeniería de Cloudera

Otras soluciones: estructura almacenada en memoria, SolR / ElasticSearch, HBase, etc.

PS Quora no es StackOverflow 🙂