Twitter Storm: 생산 클 러 스 터 에서 토폴로지 실행
사이트 주소: http://xumingming.sinaapp.com/185/twitter-storm-생산 클 러 스 터 에서 toology / 를 실행 합 니 다.
본문 번역 https://github.com/nathanmarz/storm/wiki/Running-topologies-on-a-production-cluster 。
생산 클 러 스 터 에서 토폴로지 를 실행 하 는 것 은 로 컬 모델 과 차이 가 많 지 않다.다음은 절차:
1) 토폴로지 정의 (자바 라면 Topology Builder 로)
2) StormSubmitter 를 사용 하여 토폴로지 를 클 러 스 터 에 제출 합 니 다. StormSubmitter 의 인 자 는 토폴로지 의 이름, 토폴로지 의 설정 대상, 그리고 토폴로지 자체 입 니 다. 예 를 들 어:
돕다.
1
2
3
4
5
Config conf =
new
Config();
conf.setNumWorkers(
20
);
conf.setMaxSpoutPending(
5000
);
StormSubmitter.submitTopology(
"name"
,
conf, topology);
3) 프로그램 코드 와 코드 에 의존 하 는 패 키 지 를 포함 하 는 jar 패 키 지 를 만 듭 니 다. (storm 에 관 한 jar 패 키 지 는 포함 되 지 않 습 니 다. 이 jar 패 키 지 는 작업 노드 에 자동 으로 classpath 에 추 가 됩 니 다) Maven 을 사용 하면 플러그 인: Maven Assembly Plugin 은 포장 해 줄 수 있 습 니 다. 아래 설정 을 pom. xml 에 추가 하면 됩 니 다.
돕다.
01
02
03
04
05
06
07
08
09
10
11
12
13
<
plugin
>
<
artifactId
>maven-assembly-plugin</
artifactId
>
<
configuration
>
<
descriptorRefs
>
<
descriptorRef
>jar-with-dependencies</
descriptorRef
>
</
descriptorRefs
>
<
archive
>
<
manifest
>
<
mainClass
>com.path.to.main.Class</
mainClass
>
</
manifest
>
</
archive
>
</
configuration
>
</
plugin
>
그리고 mvn assembly: assembly 를 실행 하면 포장 할 수 있 습 니 다. 다시 말 하면 storm 과 관련 된 jar 가방 을 포함 하지 않 아 도 classpath 에 자동 으로 추 가 됩 니 다.
4) storm 클 라 이언 트 로 jar 패 키 지 를 제출 합 니 다:
돕다.
1
storm jar allmycode.jar org.me.MyTopology arg1 arg2 arg3
storm jar 는 올 바른 클 러 스 터 와 통신 할 수 있 도록 코드 를 클 러 스 터 에 제출 하고 Storm Submitter 클래스 를 설정 합 니 다. 이 예 에서 jar 패 키 지 를 업로드 한 후 storm jar 명령 은 org. me. MyTopology 의 main 함 수 를 호출 합 니 다. 매개 변 수 는 arg 1, arg 2, arg 3 입 니 다. storm 클 라 이언 트 를 어떻게 배치 하여 storm 클 라 이언 트 와 통신 하 는 지 에 대해 서 는 storm 개발 환경 을 설정 할 수 있 습 니 다.
일반 설정
설정 할 수 있 는 토폴로지 급 설정 이 많 습 니 다. 모든 설정 에 대한 목록 이 있 습 니 다. "TOPOLOGY" 로 시작 하 는 설정 은 토폴로지 급 설정 입 니 다. 전역 단 계 를 덮어 쓸 수 있 는 설정 입 니 다. 다음은 흔히 볼 수 있 는 것 입 니 다.
1)Config.TOPOLOGY_WORKERS: 이 설정 은 몇 개의 작업 프로 세 스 로 이 토폴로지 를 실행 합 니까?예 를 들 어 25 로 설정 하면 클 러 스 터 에는 모두 25 개의 자바 프로 세 스 가 이 토폴로지 의 모든 task 를 수행 합 니 다.이 토폴로지 에 있 는 모든 구성 요 소 를 합 쳐 150 의 병렬 도 를 가지 고 있다 면 프로 세 스 마다 6 개의 스 레 드 (150 / 25 = 6) 가 있 을 것 입 니 다.
2)Config.TOPOLOGY_ACKERS: 이 설정 은 acker 스 레 드 의 수 를 설정 합 니 다.Ackers 는 Storm 의 신뢰성 API 의 일부분 입 니 다. storm 의 신뢰성 API 에 대해 서 는 트 위 터 Storm 이 정 보 를 잃 어 버 리 지 않도록 어떻게 보장 하 는 지 볼 수 있 습 니 다.
3)Config.TOPOLOGY_MAX_SPOUT_PENDING: 이 설정 은 spout task 위 에 처리 되 지 않 은 tuple (ack / failed 없 음) 이 최대 몇 개 있 습 니 다. tuple 대기 열 이 터 지지 않도록 설정 하 는 것 을 추천 합 니 다.
4)Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS: 이 설정 storm 의 tuple 시간 초과 – 이 시간 을 초과 한 tuple 은 처리 에 실패 한 것 으로 여 겨 집 니 다.이 설정 의 기본 설정 은 30 초 입 니 다. 대부분의 토폴로지 에 충분 합 니 다.storm 의 신뢰성 API 에 대해 서 는 트 위 터 Storm 이 정 보 를 잃 어 버 리 지 않도록 어떻게 보장 하 는 지 볼 수 있 습 니 다.
5)Config.TOPOLOGY_SERIALIZATIONS: tuple 에서 사용자 정의 형식 을 사용 하기 위해 서 이 설정 으로 사용자 정의 serializer 를 등록 할 수 있 습 니 다.
토폴로지 종료
토폴로지 를 종료 하려 면 다음 을 실행 하 십시오:
돕다.
1
storm
kill
{stormname}
그 중 {stormname} 은 storm 군집 에 topology 를 제출 할 때 지정 한 이름 입 니 다.
storm 은 바로 topology 를 종료 하지 않 습 니 다.반면 모든 spout 을 종료 하고 새로운 tuple 을 발사 하지 않도록 합 니 다. storm 은 Config. TOPOLOGY 를 기다 리 고 있 습 니 다.MESSAGE_TIMEOUT_SECS 초 후에 야 모든 작업 프로 세 스 를 죽 였 습 니 다.이것 은 우리 가 storm kill 명령 을 수행 할 때 아직 완성 되 지 않 은 tuple 을 모두 완성 할 수 있 는 충분 한 시간 을 줄 것 이다.
실행 중인 토폴로지 업데이트
실행 중인 토폴로지 를 업데이트 하기 위해 서 는 실행 중인 토폴로지 를 죽 이 고 새 것 을 다시 제출 하 는 것 이 유일한 선택 입 니 다.하나의 계획 중의 명령 은 하나의 storm swap 명령 을 실행 할 때 토폴로지 를 업데이트 하고 앞 뒤 두 개의 토폴로지 가 동시에 실행 되 지 않도록 하 는 동시에 교체 로 인 한 '정지' 시간 이 가장 적다.
모니터링 토폴로지
토폴로지 를 감시 하 는 가장 좋 은 방법 은 Storm UI 를 사용 하 는 것 이다.Storm UI 는 task 에서 발생 하 는 오류 와 topology 의 모든 구성 요소 의 스루풋 과 성능 에 대한 통계 정 보 를 제공 합 니 다.동시에 너 는 군집 안의 작업 기계 위의 일 지 를 볼 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.