2017-11-06 2 views
-1

내 프로세스는 많은 시간 동안 파일을 생성합니다. 로컬 디렉토리에서 HDFS의 일부 위치로 파일을 전송하고 싶습니다. NiFi를 사용하는 대신 Java에서 해당 흐름을 개발할 수 있습니까? . 그렇다면 Java에서 참조 코드를 제공하여 안내하십시오.Kafka를 사용하여 파일을 전송하는 방법

제발 도와주세요!

답변

0

카프카의 메시지 크기에 제한이 있는지 알 수 없지만 생산자/소비자 속성에 ByteArraySerializer을 사용할 수 있습니다. 파일을 바이트로 변환 한 다음 소비자에게 재구성하십시오. 브로커가 받아들이는 메시지의 최대 크기 - : 빠른 검색을 수행

나는이

message.max.bytes (1000000 기본값)을 발견했다. 이 값은 소비자 fetch.message.max.bytes보다 작아야합니다. 그렇지 않으면 브로커가 메시지를 가지고있어 소비자가 응답하지 않을 수 있습니다.

1

당신은 몇 가지를 할 수 : -

1)를 사용하여 아파치 수로 : - https://www.dezyre.com/hadoop-tutorial/flume-tutorial. 이 페이지는 다음과 같이 말합니다 : - "Apache Flume은 파일을 단일 위치에 집계하는 데 사용되는 분산 시스템입니다."이 솔루션은 kafka를 사용하는 것이 파일 용으로 특별히 설계 되었기 때문에 더 좋을 것입니다.

2) 컴퓨터에 ssh에 Java 코드를 작성하고 특정 타임 스탬프 이후에 수정 된 파일을 검색하십시오. 이러한 파일이 입력 스트림을 열고 Java 코드가 실행중인 시스템에 저장하는 경우

3) 또는 자바 코드가 파일이 생성되고있는 컴퓨터에서 실행 될 수 있으며 특정 타임 스탬프 이후에 생성 된 파일을 검색하고 만 사용하려는 경우 새로운 기계

4)로 이동할 수있다 카프카. 최신 파일/행을 찾아서 카프카 주제에 게시하기 위해 자바 코드를 작성할 수 있습니다. Flume은이 모든 것을 상자에서 처리 할 수 ​​있습니다.

관련 문제