Hadoop HDFS NameNode¶
HDFS namenode 지표 정보를 수집합니다.
설치 및 배포¶
NameNode는 Java 언어로 개발되었으므로, jmx-exporter 방식으로 지표 정보를 수집할 수 있습니다.
1. NameNode 설정¶
1.1 jmx-exporter 다운로드¶
다운로드 주소:https://github.com/prometheus/jmx_exporter
1.2 jmx 스크립트 다운로드¶
다운로드 주소:https://github.com/lrwh/jmx-exporter/blob/main/hadoop-hdfs-namenode.yml
1.3 NameNode 시작 인자 조정¶
namenode의 시작 인자에 다음을 추가합니다.
{{JAVA_GC_ARGS}} -javaagent:/opt/jmx/jmx_exporter-1.0.1.jar=localhost:17107:/opt/jmx/hadoop-hdfs-namenode.yml
1.4 NameNode 재시작¶
2. DataKit 수집기 설정¶
2.1 DataKit 설치¶
2.2 수집기 설정¶
jmx-exporter를 통해 metrics URL을 직접 노출할 수 있으므로, prom 수집기로 바로 수집할 수 있습니다.
DataKit 설치 디렉터리의 conf.d/samples로 이동해 prom.conf.sample을 namenode.conf로 복사합니다.
cp prom.conf.sample namenode.conf
namenode.conf 내용을 다음과 같이 조정합니다.
urls = ["http://localhost:17107/metrics"]
source ="hdfs-namenode"
[inputs.prom.tags]
component = "hdfs-namenode"
interval = "10s"
다른 설정은 필요에 따라 조정하세요
, 파라미터 설명:
- urls:
jmx-exporter지표 주소이며, 여기에 해당 구성 요소가 노출한 지표 url을 입력합니다. - source:수집기 별칭이며, 구분되도록 설정하는 것을 권장합니다.
- keep_exist_metric_name: 지표 이름 유지
- interval:수집 간격
- inputs.prom.tags: 추가 tag 설정
3. DataKit 재시작¶
지표¶
Hadoop 지표 집합¶
NameNode 지표는 Hadoop 지표 집합 아래에 있으며, 여기서는 주로 NameNode 관련 지표 설명을 소개합니다.
| Metrics | 설명 | 단위 |
|---|---|---|
namenode_add_block_ops |
블록 추가 작업 횟수 |
count |
namenode_allow_snapshot_ops |
스냅샷 허용 작업 횟수 |
count |
namenode_block_capacity |
블록 용량 |
byte |
namenode_block_deletion_start_time |
블록 삭제 시작 시간 |
count |
namenode_block_ops_batched |
배치 처리된 블록 작업 횟수 |
count |
namenode_block_ops_queued |
대기 중인 블록 작업 횟수 |
count |
namenode_block_pool_used_space |
사용 중인 블록 풀 공간 |
count |
namenode_block_received_and_deleted_ops |
수신 및 삭제된 블록 작업 횟수 |
count |
namenode_blocks |
블록 수 |
count |
namenode_bytes_in_future_ecblock_groups |
미래 EC 블록 그룹의 바이트 수 |
count |
namenode_bytes_in_future_replicated_blocks |
미래 복제 블록의 바이트 수 |
count |
namenode_bytes_with_future_generation_stamps |
미래 세대 스탬프를 가진 바이트 수 |
count |
namenode_cache_capacity |
캐시 용량 |
byte |
namenode_cache_report_avg_time |
캐시 보고 평균 시간 |
count |
namenode_cache_report_num_ops |
캐시 보고 작업 횟수 |
count |
namenode_cache_used |
사용된 캐시 |
count |
namenode_capacity |
용량 |
count |
namenode_capacity_remaining |
남은 용량 |
byte |
namenode_capacity_remaining_gb |
남은 용량(GB) |
GB |
namenode_capacity_total_gb |
총 용량(GB) |
GB |
namenode_capacity_used |
사용된 용량 |
byte |
namenode_capacity_used_gb |
사용된 용량(GB) |
GB |
namenode_capacity_used_non_dfs |
DFS 외 사용 용량 |
GB |
namenode_corrupt_blocks |
손상된 블록 |
count |
namenode_corrupt_ecblock_groups |
손상된 EC 블록 그룹 |
count |
namenode_corrupt_replicated_blocks |
손상된 복제 블록 |
count |
namenode_create_file_ops |
파일 생성 작업 횟수 |
count |
namenode_create_snapshot_ops |
스냅샷 생성 작업 횟수 |
count |
namenode_create_symlink_ops |
심볼릭 링크 생성 작업 횟수 |
count |
namenode_delete_file_ops |
파일 삭제 작업 횟수 |
count |
namenode_delete_snapshot_ops |
스냅샷 삭제 작업 횟수 |
count |
namenode_disallow_snapshot_ops |
스냅샷 비허용 작업 횟수 |
count |
namenode_distinct_version_count |
서로 다른 버전 수 |
count |
namenode_distinct_versions |
서로 다른 버전 |
count |
namenode_dropped_pub_all |
드롭된 pub_all |
count |
namenode_elapsed_time |
경과 시간 |
ms |
namenode_estimated_capacity_lost |
추정 손실 용량 |
byte |
namenode_excess_blocks |
초과 블록 |
count |
namenode_expired_heartbeats |
만료된 하트비트 |
count |
namenode_file_info_ops |
파일 정보 작업 횟수 |
count |
namenode_files |
파일 수 |
count |
namenode_files_appended |
추가된 파일 수 |
count |
namenode_files_deleted |
삭제된 파일 수 |
count |
namenode_files_in_get_listing_ops |
목록 조회 작업의 파일 수 |
count |
namenode_files_renamed |
이름이 변경된 파일 수 |
count |
namenode_files_truncated |
잘린 파일 수 |
count |
namenode_free |
여유 |
count |
namenode_fs_image_load_time |
파일 시스템 이미지 로드 시간 |
ms |
namenode_fs_lock_queue_length |
파일 시스템 잠금 대기열 길이 |
count |
namenode_gc_count |
가비지 컬렉션 횟수 |
count |
namenode_generate_edektime_avg_time |
EDEK 생성 평균 시간 |
ms |
namenode_generate_edektime_num_ops |
EDEK 생성 작업 횟수 |
count |
namenode_get_additional_datanode_ops |
추가 데이터 노드 가져오기 작업 횟수 |
count |
namenode_highest_priority_low_redundancy_ecblocks |
우선순위가 가장 높은 저중복 EC 블록 |
count |
namenode_highest_priority_low_redundancy_replicated_blocks |
우선순위가 가장 높은 저중복 복제 블록 |
count |
namenode_last_checkpoint_time |
마지막 체크포인트 시간 |
ms |
namenode_last_hatransition_time |
마지막 HA 전환 시간 |
ms |
namenode_last_written_transaction_id |
마지막으로 기록된 트랜잭션 ID |
count |
namenode_list_snapshottable_dir_ops |
스냅샷 가능 디렉터리 목록 조회 작업 횟수 |
count |
namenode_lock_queue_length |
잠금 대기열 길이 |
count |
namenode_low_redundancy_ecblock_groups |
저중복 EC 블록 그룹 |
count |
namenode_low_redundancy_replicated_blocks |
저중복 복제 블록 |
count |
namenode_max_objects |
최대 객체 수 |
count |
namenode_millis_since_last_loaded_edits |
마지막 편집 로드 이후 경과 밀리초 |
ms |
namenode_missing_blocks |
누락된 블록 |
count |
namenode_missing_ecblock_groups |
누락된 EC 블록 그룹 |
count |
namenode_missing_repl_one_blocks |
복제본이 하나 부족한 블록 |
count |
namenode_missing_replicated_blocks |
누락된 복제 블록 |
count |
namenode_missing_replication_one_blocks |
복제본이 하나 부족한 복제 블록 |
count |
namenode_nnstarted_time_in_millis |
시작 시간(밀리초) |
ms |
namenode_non_dfs_used_space |
DFS 외 사용 공간 |
count |
namenode_num_active_clients |
활성 클라이언트 수 |
count |
namenode_num_active_sinks |
활성 수신 데이터 노드 수 |
count |
namenode_num_active_sources |
활성 송신 데이터 노드 수 |
count |
namenode_num_all_sinks |
모든 수신 데이터 노드 수 |
count |
namenode_num_all_sources |
모든 송신 데이터 노드 수 |
count |
namenode_num_dead_data_nodes |
죽은 데이터 노드 수 |
count |
namenode_num_decom_dead_data_nodes |
비활성화된 죽은 데이터 노드 수 |
count |
namenode_num_decom_live_data_nodes |
비활성화된 활성 데이터 노드 수 |
count |
namenode_num_decommissioning_data_nodes |
비활성화 중인 데이터 노드 수 |
count |
namenode_num_edit_log_loaded_avg_count |
편집 로그 로드 평균 횟수 |
count |
namenode_num_edit_log_loaded_num_ops |
편집 로그 로드 작업 횟수 |
count |
namenode_num_encryption_zones |
암호화 영역 수 |
count |
namenode_num_entering_maintenance_data_nodes |
유지보수 모드로 진입한 데이터 노드 수 |
count |
namenode_num_files_under_construction |
구성 중인 파일 수 |
count |
namenode_num_in_maintenance_dead_data_nodes |
유지보수 중인 죽은 데이터 노드 수 |
count |
namenode_num_in_maintenance_live_data_nodes |
유지보수 중인 활성 데이터 노드 수 |
count |
namenode_num_live_data_nodes |
활성 데이터 노드 수 |
count |
namenode_num_stale_data_nodes |
오래된 데이터 노드 수 |
count |
namenode_num_stale_storages |
오래된 저장소 수 |
count |
namenode_num_timed_out_pending_reconstructions |
시간 초과 대기 중인 재구성 수 |
count |
namenode_num_times_re_replication_not_scheduled |
복제 재예약되지 않은 횟수 |
count |
namenode_number_of_missing_blocks |
누락된 블록 수 |
count |
namenode_number_of_missing_blocks_with_replication_factor_one |
복제 계수 1인 누락 블록 수 |
count |
namenode_number_of_snapshottable_dirs |
스냅샷 가능한 디렉터리 수 |
count |
namenode_pending_data_node_message_count |
대기 중인 데이터 노드 메시지 수 |
count |
namenode_pending_deletion_blocks |
대기 중인 삭제 블록 수 |
count |
namenode_pending_deletion_ecblocks |
대기 중인 삭제 EC 블록 수 |
count |
namenode_pending_deletion_replicated_blocks |
대기 중인 삭제 복제 블록 수 |
count |
namenode_pending_reconstruction_blocks |
대기 중인 재구성 블록 수 |
count |
namenode_pending_replication_blocks |
대기 중인 복제 블록 수 |
count |
namenode_percent_block_pool_used |
블록 풀 사용 비율 |
percent |
namenode_percent_complete |
완료 비율 |
percent |
namenode_percent_remaining |
남은 비율 |
percent |
namenode_percent_used |
사용 비율 |
percent |
namenode_postponed_misreplicated_blocks |
연기된 잘못 복제된 블록 수 |
count |
namenode_publish_avg_time |
게시 평균 시간 |
ms |
namenode_publish_num_ops |
게시 작업 횟수 |
count |
namenode_put_image_avg_time |
이미지 저장 평균 시간 |
ms |
namenode_put_image_num_ops |
이미지 저장 작업 횟수 |
count |
namenode_rename_snapshot_ops |
스냅샷 이름 변경 작업 횟수 |
count |
namenode_resource_check_time_avg_time |
리소스 점검 평균 시간 |
ms |
namenode_resource_check_time_num_ops |
리소스 점검 작업 횟수 |
count |
namenode_safe_mode |
안전 모드 |
count |
namenode_safe_mode_count |
안전 모드 횟수 |
count |
namenode_safe_mode_elapsed_time |
안전 모드 지속 시간 |
count |
namenode_safe_mode_percent_complete |
안전 모드 완료 비율 |
percent |
namenode_safe_mode_time |
안전 모드 시간 |
ms |
namenode_saving_checkpoint |
체크포인트 저장 중 |
count |
namenode_saving_checkpoint_count |
체크포인트 저장 횟수 |
count |
namenode_saving_checkpoint_elapsed_time |
체크포인트 저장 지속 시간 |
ms |
namenode_saving_checkpoint_percent_complete |
체크포인트 저장 완료 비율 |
count |
namenode_scheduled_replication_blocks |
예약된 복제 블록 수 |
count |
namenode_stale_data_nodes |
오래된 데이터 노드 |
count |
namenode_storage_block_report_avg_time |
저장소 블록 보고 평균 시간 |
ms |
namenode_storage_block_report_num_ops |
저장소 블록 보고 작업 횟수 |
count |
namenode_successful_re_replications |
성공한 재복제 횟수 |
count |
namenode_syncs_avg_time |
동기화 평균 시간 |
ms |
namenode_syncs_num_ops |
동기화 작업 횟수 |
count |
namenode_tag_total_sync_times |
태그 총 동기화 횟수 |
count |
namenode_timeout_re_replications |
시간 초과 재복제 횟수 |
count |
namenode_total_blocks |
총 블록 수 |
count |
namenode_total_ecblock_groups |
총 EC 블록 그룹 수 |
count |
namenode_total_file_ops |
총 파일 작업 횟수 |
count |
namenode_total_load |
총 부하 |
count |
namenode_total_replicated_blocks |
총 복제 블록 수 |
count |
namenode_total_sync_count |
총 동기화 횟수 |
count |
namenode_total_sync_times |
총 동기화 횟수 |
count |
namenode_transactions_avg_time |
트랜잭션 평균 시간 |
ms |
namenode_transactions_batched_in_sync |
동기화 중 배치 처리된 트랜잭션 수 |
count |
namenode_transactions_num_ops |
트랜잭션 작업 횟수 |
count |
namenode_transactions_since_last_checkpoint |
마지막 체크포인트 이후 트랜잭션 수 |
count |
namenode_transactions_since_last_log_roll |
마지막 로그 롤 이후 트랜잭션 수 |
count |
namenode_under_replicated_blocks |
복제본이 부족한 블록 수 |
count |
namenode_used |
사용됨 |
count |
namenode_volume_failures |
볼륨 장애 횟수 |
count |
namenode_warm_up_edektime_avg_time |
EDEK 예열 평균 시간 |
ms |
namenode_warm_up_edektime_num_ops |
EDEK 예열 작업 횟수 |
count |