테스트는 분산 시스템을 개발하는 동안 가장 중요한 부분 중 하나입니다. 다음과 같은 유형의 테스트가 있습니다.
이 페이지에는 Ozone 소스 기반의 일부인 기존 테스트 도구가 포함되어 있습니다.
참고 : 외부 도구 만 사용하기 때문에 여기에 포함되지 않은 더 많은 테스트 (예 : Spark 또는 Hive를 통한 TCP-DS, TCP-H 테스트)가 있습니다.
단위 테스트
거의 모든 자바 프로젝트처럼 우리는 각 프로젝트 내부에 좋은 오래된 단위 테스트를 가지고 있습니다.
통합 테스트 (JUnit)
기존의 단위 테스트는 하나의 단위 만 테스트해야하지만 더 높은 수준의 단위 테스트도 있습니다. 그들은 MiniOzoneCluster단위 테스트 중에 실제 데몬 (scm, om, datanodes)을 시작하는 도우미 메서드를 사용 합니다.
maven / java 관점에서 보면 단순한 단위 테스트 (JUnit 라이브러리가 사용됨)이지만 분리 (및 일부 종속성 문제 해결)를 위해이 모든 테스트를 다음으로 이동했습니다. hadoop-ozone/integration-test
스모크 테스트
Docker-compose 기반 의사 클러스터를 사용하여 다양한 Ozone 구성을 실행합니다. 다른 구성이 시작될 수 있는지 확인하기 위해 https://robotframework.org/ 의 도움으로 수락 테스트를 구현했습니다 .
smoketest는 배포판 ( ./smoketest) 에서 사용할 수 있지만 로봇 파일은 테스트 만 정의합니다. 일반적으로 CLI를 시작하고 출력을 확인합니다.
다른 환경 (docker-compose, kubernetes)에서 테스트를 실행하려면 컨테이너를 시작하고 올바른 컨테이너에서 올바른 테스트를 실행하기위한 정의가 필요합니다.
이러한 테스트 정의는 compose디렉토리 (check ./compose/*/test.sh또는 ./compose/test-all.sh)에 포함되어 있습니다.
예를 들어 배포 패키지를 테스트하는 간단한 방법 :
cd compose/ozone ./test.sh
봉쇄
Blockade 는 네트워크 장애 및 파티션을 테스트하는 도구입니다 (전설적인 Jepsen 테스트 에서 영감을 얻었습니다 ).
차단 테스트는 테스트의 도움으로 구현되며 ./blockade배포 디렉토리 에서 시작할 수 있습니다 .
cd blocakde pip install pytest==2.8.7,blockade python -m pytest -s .
자세한 내용은 blockade 디렉토리의 README를 참조하십시오.
MiniChaosOzoneCluster
이것은 당신의 기계에 혼란 을 가져 오는 방법 입니다. 소스 코드에서 시작할 수 있으며 MiniOzoneCluster (실제 데몬을 시작)가 무작위로 시작되고 종료됩니다.
프레온
Freon은 Ozone 배포판에 포함 된 명령 줄 응용 프로그램입니다. 스트레스 테스트에 사용되는 부하 생성기입니다.
예를 들면 :
ozone freon randomkeys --numOfVolumes=10 --numOfBuckets 10 --numOfKeys 10 --replicationType=RATIS --factor=THREE *************************************************** Status: Success Git Base Revision: 48aae081e5afacbb3240657556b26c29e61830c3 Number of Volumes created: 10 Number of Buckets created: 100 Number of Keys added: 1000 Ratis replication factor: THREE Ratis replication type: RATIS Average Time spent in volume creation: 00:00:00,035 Average Time spent in bucket creation: 00:00:00,319 Average Time spent in key creation: 00:00:03,659 Average Time spent in key write: 00:00:10,894 Total bytes written: 10240000 Total Execution time: 00:00:16,898 ***********************
창세기
Genesis는 마이크로 벤치마킹 도구입니다. 배포판 ( ozone genesis) 에도 포함되어 있지만 실제 클러스터가 필요하지 않습니다. 코드의 다른 부분을 분리 된 방식으로 측정합니다 (예 : 데이터를 로컬 RocksDB 기반 키 값 저장소에 저장하는 코드).
실행 예 :
'기술_Ozone' 카테고리의 다른 글
OzoneFS를 사용하는 Kubernetes의 Spark (0) | 2022.08.10 |
---|---|
Prometheus로 모니터링 (0) | 2022.08.10 |
감사 파서 (0) | 2022.08.10 |
오존 관리자 (0) | 2022.08.10 |
도구 (0) | 2022.08.10 |