es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Secuencias de escape no se están poblado la ruta de HDFS y el prefijo del archivo.

En mi flujo de Flume, quiero tener una ruta de HDFS personalizada pero no se está poblado ningún dato en los interceptores.

Datos de ejemplo:
188 17 2016-06-01 00:31:10 6200.041736 0

Configuración

agent2.sources.source2.interceptors = i2 i3 i4
agent2.sources.source2.interceptors.i2.type = regex_extractor
agent2.sources.source2.interceptors.i3.type = regex_extractor
agent2.sources.source2.interceptors.i4.type = regex_extractor
# regex para obtener el año
agent2.sources.source2.interceptors.i2.regex = (?<=\t)[0-9]{4}(?=-)
agent2.sources.source2.interceptors.i2.serializers = y
agent2.sources.source2.interceptors.i2.serializers.y.name = year
# regex para obtener el mes
agent2.sources.source2.interceptors.i3.regex = (?<=-)[0-9]{2}(?=-)
agent2.sources.source2.interceptors.i3.serializers = m
agent2.sources.source2.interceptors.i3.serializers.m.name = month
# regex para obtener el día
agent2.sources.source2.interceptors.i4.regex = (?<=-)[0-9]{2}(?=\t)
agent2.sources.source2.interceptors.i4.serializers = d
agent2.sources.source2.interceptors.i4.serializers.d.name = day
# Definir el sink HDFS 2 – año y mes
agent2.sinks.sink-hdfs2.type = hdfs
agent2.sinks.sink-hdfs2.hdfs.path = /group-project/consumption/%{year}/%{month}
agent2.sinks.sink-hdfs2.hdfs.filePrefix = %{year}-%{month}
agent2.sinks.sink-hdfs2.hdfs.fileSuffix = .txt
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema podría estar relacionado con la expresión regular utilizada en los interceptores. Los patrones de regex parecen ser correctos, pero es posible que no estén coincidiendo con el formato de datos de los eventos entrantes.

    Además, puede ser necesario especificar los detalles de la fuente y el canal en el archivo de configuración para asegurarse de que los eventos se transmitan correctamente a los interceptores y posteriormente al destino HDFS.

    Para solucionar el problema, se pueden tomar los siguientes pasos:

    1. Verificar el formato de datos de los eventos entrantes para asegurarse de que los patrones de regex utilizados en los interceptores coincidan con el formato de datos.
    2. Verificar si los detalles de la fuente y el canal están correctamente definidos en el archivo de configuración.
    3. Habilitar el registro y verificar los registros para ver si hay algún error o advertencia relacionada con los interceptores o el destino HDFS.
    4. Utilizar un conjunto de datos de prueba diseñado específicamente para que coincida con los patrones de regex utilizados en los interceptores para verificar que los datos se estén popular correctamente en el destino HDFS.

    Una vez que se identifique y se resuelva el problema, la ruta HDFS dinámica personalizada debería crearse correctamente y los datos deberían ser populados correctamente en el destino HDFS.

Comments are closed.