• [NiFi] NiFi Custom Processor 만들기

    시작은 KafkaConsumer를 디버깅하기 위해 만들었지만… 현재는 nifi에서 제공하는 KafkaConsumer와 동작은 같지만, Consumer Config를 좀 더 유연하게 관리할 수 있도록 Custom Processor를 만들어서 사용중이다. 그래서 이 기회에 NiFi Consumer Processor를 빌드하는 방법에 대해 정리하고자 한다. NiFi Custom Processor Requirements Maven Intellij Terminal / Git bash Step for Creating Custom Apache NiFi...


  • Garbage Collection Monitoring

    Garbage Collection Monitoring NiFi 모니터링 하면서, TRACE 레벨의 로그도 남지 않고 계속 Heap 메모리가 증가하는 현상이 있어, GC 모니터링을 진행하였다 메모리 누수의 문제를 의심하고 시작했지만, 사실상 KafkaConsumer 프로세서의 구현의 버그가 있는 듯 하다. 하이튼, 이번에 NiFi 프로세스의 GC 모니터링을 하면서 사용해본 모니터링 툴(?), 방법에 대해 정리하고자 한다. 1. jstat HotSpot...


  • Kafka consumer Offset 체크 bash

    NiFi를 하면서 사용한 ConsumeKafka_1_0 프로세서를, 사용하면서 큰 실수를 했다. 해당 프로세서가 정상작동하겠구나.. 이렇게하면 되겠지.. 하고 제대로 확인하지 않았고, 의도한 설정값기반으로 정상적으로 데이터를 가져오지 않았다. 그래서 Kafka에서 데이터를 땡겨올 때, 꼭 정말 의도한 대로 데이터가 들어오고 있는지를 확인해야겠다.. 그래서 간단하지만 모니터링하기 쉬운 CURRENT-OFFSET의 합을 계속 보여주는 bash를 정리하고자한다. while true ;...


  • [NiFi] NiFi 권장 설정값

    NiFi로 엄청 삽질했다.. 프로세서 구현은 매우 간단하고 고민해야할 사항이 한정적이였는데 실제 클러스터 환경에서 돌려보니, 재시작만 해도 JVM Heap 사용량이 100% 올라가고.. LogLevel도 TRACE로 설정해도 딱히 나오는 것도 없고.. 이 상황에서 유용한 JVM GC 모니터링하는 명령어를 배웠다 ㅎㅎ jstat -gcutil ${PID} -t -h20 1s -t는 타임값이 나오고, h20은 20줄마다 header를 찍어준다...


  • [HP-Spark] DataFrame/DataSet와 Catalyst Optimizer

    데이터 적재/저장 함수들 스파크 SQL의 데이터 적재/저장하는 방식이 스파크 Core와는 다름 특정 타입들의 연산을 저장 계층까지 내려서 수행할 수 있도록, 스파크 SQL은 자체적인 데이터 소스 API를 가지고 있음 https://databricks.com/blog/2015/01/09/spark-sql-data-sources-api-unified-data-access-for-the-spark-platform.html 데이터 소스는 해당 데이터 소스까지 내려가게되는 형태의 연산들을 지정하고 제어하는 것이 가능 ( filter pushDown ) DataFrameWriter ds/df.write() DataFrameReader spark.read() 지원하는...