복붙노트

[HADOOP] NiFi에 GetFilesProcessor에서 파일을 읽는 방법

HADOOP

NiFi에 GetFilesProcessor에서 파일을 읽는 방법

다음은 내 흐름이다 :

GetFile > ExecuteSparkInteractive > PutFile

나는 ExecuteSparkInteractive 프로세서 GETFILE 프로세서에서 파일을 읽을 약간의 변환을 적용하고 어떤 위치에 넣어합니다. 다음은 내 흐름이다

나는 스파크 프로세서의 코드 섹션에서 불꽃 스칼라 코드를 작성 :

val sc1=sc.textFile("local_path")
sc1.foreach(println)

흐름에서 일어나는 아무것도 없다. 그래서 내가 어떻게 GETFILE 프로세서를 사용하여 스파크 프로세서에서 파일을 읽을 수 있습니다.

2 부 : 난 그냥 연습 흐름 아래 시도 :

ExecuteScript > PutFile > LogMessage

나는 executescript 프로세서 코드 아래에 언급 한 :

readFile = open("/home/cloudera/Desktop/sample/data","r")
for line in readFile:
    lines = line.strip()
    finalline = re.sub(pattern='((?<=[0-9])[0-9]|(?<=\.)[0-9])',repl='X',string=lines)
readFile = open("/home/cloudera/Desktop/sample/data","w")
readFile.write(finalline)  

코드는 잘 작동하지만 대상 폴더로 포맷 된 데이터를 기록하지 않습니다. 그래서 여기에 잘못된 것입니다 경우. 또한, 나는 로컬 컴퓨터에서 팬더를 설치하고 executescript 프로세서에서 팬더 코드를 실행하지만 nifi는 팬더 모듈을 읽지 않습니다. 왜 그래야만하지 ? 난 최선을 다 했어. 나는 기본 흐름을 얻을 수있는 곳 또한,이에 대한 모든 관련 링크를 찾을 수 없습니다

해결법

  1. ==============================

    1.이 GETFILE는 NiFi 노드에 로컬 파일을 따기 및 처리를 위해 NiFi 흐름으로 그들을 데려 오는 ... 그것이 어떻게 작동하는지 정말 아니다. ExecuteSparkInteractive 원격 불꽃 클러스터에서 불꽃이 일을 개막, 그것은 스파크로 데이터를 전송하지 않습니다. > PutHDFS - -> ExecuteSparkInteractive 그래서 당신은 가능성이 곳 스파크가 액세스 할 수있는 데이터, 어쩌면 GETFILE을 데려 가고 싶다는 것입니다.

    이 GETFILE는 NiFi 노드에 로컬 파일을 따기 및 처리를 위해 NiFi 흐름으로 그들을 데려 오는 ... 그것이 어떻게 작동하는지 정말 아니다. ExecuteSparkInteractive 원격 불꽃 클러스터에서 불꽃이 일을 개막, 그것은 스파크로 데이터를 전송하지 않습니다. > PutHDFS - -> ExecuteSparkInteractive 그래서 당신은 가능성이 곳 스파크가 액세스 할 수있는 데이터, 어쩌면 GETFILE을 데려 가고 싶다는 것입니다.

  2. from https://stackoverflow.com/questions/55606681/how-to-read-files-from-getfilesprocessor-in-nifi by cc-by-sa and MIT license