2017-03-21 3 views
0

나는 Kafka Spout에서 JSON 데이터를 가져 와서 두 개의 볼트를 처리 한 다음 hdfs- 볼트. Storm 0.9.6과 Kafka 0.8.2.1 및 Hadoop 2.5.0을 사용하여 완벽하게 작동했습니다. 필자가 구현 한 프로덕션 시스템은 Storm 1.0.2, Kakfa 0.10.1.0 및 Hadoop 2.6.0으로 도구를 업데이트합니다. 위의 버전에 대한 패키지 정보를 업데이트 할 때 hdfs 볼트는 스파우트를 통해 데이터를 보내기 전에 "고스트"튜플을 시작합니다. 토폴로지가 종료 될 때까지 UI에 계속해서 문제를 보여줍니다. 또한 실제로 데이터를 처리 할 때 메시지가 hdfs에만 기록되기도합니다. 대부분의 시간은 출력되지 않습니다. 버전의 차이점에 관한 아이디어로 이와 같은 문제가 발생합니까?Storm 1.0.2 데이터가 전송되지 않을 때의 hdfs-bolt acking 튜플

+0

귀중한 입력을 제공하거나 다른 사람들에게 배우기 위해 문제를 더 잘 이해하는 데 도움이됩니다. – vmorusu

답변

0

확실하지 않지만 볼트로 방출되는 진드기 튜플에 직면했을 가능성이 큽니다. 실행 논리에 다음 조건을 추가하여 다음을 처리하십시오.

public void execute(Tuple tuple, BasicOutputCollector oc){  
    if (!TupleUtils.isTick(tuple)) 
    { 
     //Your code 
    } 
} 
+0

응답 해 주셔서 감사합니다. 나는 그것을 나중에 나중에 시험 할 것이다. 이상한 점은 hdfs 볼트 만 있고 다른 볼트는 없다는 것입니다. 또한 많은 수의 튜플을 처리하면 튜플이 완전히 처리되고 레코드가 hdfs에 기록된다는 것을 알았습니다. 약 7-20 레코드로 테스트 파일을 보내지 않습니다. 나는 ui를 업데이트하고 모든 튜플 후에 hdfs에 글을 써야한다. 그 문제에 대한 통찰력? – kwa