저는 아파치 스톰을 처음 접했고 실제로 완전한 토폴로지를 구축하지 않고 볼트 테스트 방법을 찾고있었습니다. 모의 테스트를 피하고 싶었습니다. 대신 OutputCollector 객체에서 출력을 내보내는 볼트 메서드를 호출하려고했습니다. 하지만 OutputCollector 개체에서 데이터를 가져 오는 메서드를 찾고 메서드를 찾지 못했습니다. OutputCollector 객체에서 방출 된 값에 단순히 액세스 할 수있는 방법이 있습니까?폭풍 테스트 볼트
답변
당신이 다음 폭풍의 관점에서만 테스트하는 경우
JUnit을
그것을 할 것입니다. 당신은 분산 컴퓨팅의 관점에서 테스트하려고한다면
mrunit
테스트 도구가 도움이 될 것이다.
mrunit이 아파치 hadoop 테스트 용이라고 생각합니다 .. 맵 작업을 줄이는 것입니다. 어쨌든 나는 junit을 팔로우하고있었습니다. 프레임 워크 ..하지만 OutputCollector 개체에 방출 튜플의 컬렉션에 대해 우려했다 –
이해 [링크] (http://stackoverflow.com/questions/10996963/hadoop-how-does-outputcollector-work-during-mapreduce) OutputCollector에 무엇이 있습니다. 나는 당신이 찾고있는 것이 아니라고 생각합니다 ... – Raghuveer
테스트 볼트 논리에 대한 한 가지 접근법은 토폴로지의 실제 소스를 모방 한 FakeDataGeneratorSpout 을 작성하는 것입니다. Build Test 메인 토폴로지 빌더 테스트 목적으로 FakeDataGeneratorSpout을 사용할 수있는 클래스.
둘째, 간단한 Java 클래스에서 볼트 로직을 유지하고 junit을 작성한 다음 나중에 테스트 된 메소드를 실제 볼트에서 호출 할 수 있습니다.
https://github.com/kartikbha/Storm-Dev-TestingFramework – kartik
여기에서 예제를 볼 수 있습니다 .https : //github.com/kartikbha/log-processing-by-grouping/blob/master/src/com/poc/standard/LogGenerationSpout.java – kartik
https : // github. – kartik