Apache NiFi를 통해 GUI에서 데이터 흐름 정의
5099 단어 NiFi
안녕하세요.
이 글은 DWANGO Advent Calendar 2015 13일째 되는 글이다.
주목받을 수 있는 기회인 만큼 소개Apache NiFi를 부탁드립니다.
일본에서 처리하는 사람이 적고 일본어 정보도 적으며 거의 모든 것이 영어 정보이기 때문에 이런 상황은 매우 적막하다.
그러니 관심 있는 사람이 보면 늘어날 텐데.그러니까 저랑 사귀세요.
Apache NiFi란 무엇입니까?
한마디로 아파치 니피는 GUI에서 트래픽을 정의할 수 있는 데이터 흐름 구축 도구다.
GUI에서 다음 데이터 흐름1을 정의하여 실행할 수 있습니다.
GUI에서 스트림을 정의해야 하는 이유는 무엇입니까?
기업 내 데이터 흐름의 변화가 최근 갈수록 치열해지면서 신속한 구축이 요구되기 때문이다.
데이터 흐름 자체가 회사의 상업적으로 가치를 창출하는 회사는 일부분의 회사에만 한정된다.
결국 가치는 데이터가 통과된 응용 프로그램에서 나온 것이다.
그 중에서 당연히 시행 오류가 필요하기 때문에 데이터 흐름은 반복적으로 구축, 갱신, 폐기된다.
상기 상황에서 매번 프로그램과 스크립트를 조합하여 데이터 흐름을 구축하려면 시간이 오래 걸리고 오류로 인한 재시도도 많다.
이 때문에 최근 GUI는 데이터 흐름을 구축하기 쉬워 시행착오가 있는 제품이 자주 등장한다.
왜 Apache NiFi가 좋을까요?
위에서 설명한 대로 여러 제품이 GUI에서 데이터 흐름을 정의할 수 있습니다.
그중에서도 제가 니피를 추천하는 이유는 세 가지가 있습니다.
데이터 흐름은 시스템 간에 연결되기 때문에 시스템이 출력하는 데이터 양에 따라 1개 과정에서 대응할 수 없다.
따라서 여러 과정을 모아 규모화할 수 있도록 하는 것이 중요하다고 본다.
위 제품 중 아파치 니파이, 아파치 에이펙스의 dtassemble, CDAP의 하이드라터는 클러스터 규모의 기구를 갖추고 있어 노드-READ가 없는 것이 아쉽다.2
2. 의존 요소가 적어 이 제품을 단독으로 사용할 수 있다
연결 시스템 간에 데이터가 각종 서버에 흘러 구축되는 경우가 비교적 많다.
따라서 의존 요소와 시스템이 적고 가능하면 단독으로 사용하는 것이 좋다.
상기 제품 중 아파치 니피와 노드-RID는 이 요구를 충족시켰다.
Apache Apex의 dtassiemble, CDAP의 Hydrator는 이름과 같은 제품군 중 하나로 자리매김해 다른 제품군과 조합해야 한다.
3. 실장어
마지막으로 상당히 안 좋은 이유가 된 것은 실장어다.
Java, Scara, Groovy, Clojure 등 JVM 언어가 아니면 개인이 문제가 발생했을 때 그에 상응하는 추적을 하기 어려우므로, 아파치 니파이, 아파치 에이펙스의 dtassemble, CDAP의 Hydrator는 우선순위가 높다.
이러한 세 가지 이유로 Apache NiFi를 선택했습니다.
이후 아파치니파이를 개발한 온야라는 2015년 8월 호튼웍스에 인수돼 Hortonworks DataFlow 기반이 된 관계에서 이후 당분간 안정적인 개발을 이어갈 것으로 보인다.
Apache NiFi의 특징
Apache NiFi가 유지하는 기능은 다음과 같습니다.
화려한 기능은 없지만 대규모 데이터 흐름 구축에 필요한 요소는 같다고 생각한다.
어떤 물건인지 설명한 후에 실제로 사용해 보세요.
부팅 방법은 Starting NiFi를 참조하십시오.
부팅 후 호스트에서 액세스http://localhost:8080/nifi/를 시작하면 다음 화면이 표시되며 여기서 데이터 흐름을 정의합니다.
나는 실제 정의의 예를 몇 개 들었다.
트위터에서 HashTag 추출 및 파일 내보내기
Tail Log를 구분자로 구분하여 HTTPRequest 보내기
HTTPReqest를 받아들여 Avro에서 엄숙해진 후 Kafka에 투입
HDFS에서 파일 가져오기, 분할 후 HBase 투입
이런 느낌의 데이터 흐름을 정의할 수 있다.
또 정의된 물건의 성질을 보면 알 수 있지만, 아파치 니파이의 기본 모델은 스트리밍이다.
HDFS에서 파일을 먼저 확보해 투입할 수도 있지만, 확보한 파일을 없애기 위해 HDFS도 아파치 니파이의 데이터 소스로만 사용한다면 일시적인 저장 장소일 뿐이다.
총결산
이런 형태로 아파치 니파이를 사용하면 GUI에서 데이터 흐름을 쉽게 연결할 수 있다.
시스템 간의 데이터 흐름을 구축하는 데 좋은 것이 있는지 확인해 보십시오.
용어의 정의는 매우 미묘하지만, 여기는 서로 다른 시스템 간에 데이터 출력/입력이 발생하는 전체적인 상황이다. ↩
반년 전에 조사했기 때문에 정보가 낡았을 가능성이 있다. ↩
Reference
이 문제에 관하여(Apache NiFi를 통해 GUI에서 데이터 흐름 정의), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kimutansk/items/9253b3fbb5bfc719717e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)