⚡ HDFS 리밸런싱 작업 수행하기 전
HDFS Balancer를 실행하기 전에 hdfs dfsadmin -report
명령어를 사용하여 클러스터 상태를 확인할 수 있다.
HDFS Balancer를 실행 할 사용자 슈퍼유저 권한 추가 (shell 일때)
<property>
<name>dfs.permissions.superusergroup</name>
<value>xxxx</value>
</property>
HDFS Balancer를 실행 할 사용자 슈퍼유저 권한 추가 (Ambari 일때)
dfs.permissions.superusergroup
를 입력하고, 값(Value)에 해당 그룹 이름을 입력한 후 "Add"를 클릭⚡ HDFS 리밸런싱( shell )
다음으로, 리밸런싱을 시작하기 전에 사용률 임계값과 처리 속도 제한을 결정해야 한다. 이를 위해 다음의 옵션을 사용하여 HDFS Balancer를 실행할 수 있다:
hdfs balancer [-policy <policy>] [-threshold <threshold>] [-bandwidth <bandwidth_per_second>]
<policy>
: 사용할 정책을 선택 (예: datanode
).<threshold>
: 사용률 차이의 허용치를 지정한다. 기본값은 10입니다.<bandwidth_per_second>
: 데이터 노드 간 이동하는 데이터의 최대 대역폭(바이트/초)을 지정한다. 기본값은 10MB/s이다.예를 들어, 사용률 차이를 12로 설정하고 최대 대역폭을 50MB/s로 설정하려면 다음과 같이 실행한다:
hdfs balancer -threshold 12 -bandwidth 52428800
리밸런싱 작업이 시작되면, balancer가 데이터 블록을 이동시켜 데이터 노드 간의 사용률을 균형있게 유지한다. 이 과정은 일정 시간이 소요될 수 있으며, 작업이 완료되면 결과가 출력된다.
작업이 완료된 후, 다시 hdfs dfsadmin -report
명령어를 사용하여 사용률이 균형을 이루었는지 확인
⚡ HDFS 리밸런싱( Ambari )
Services
탭을 클릭한 다음 왼쪽 메뉴에서 HDFS
를 선택Service Actions
드롭다운 메뉴에서 Rebalance HDFS
를 선택Start Balancer
버튼을 클릭하여 리밸런싱 작업을 시작!! 주의 ) 암바리에서 HDFS Balancer를 눌렀을 때 빠르게 "OK"로 되었다면, 이는 HDFS Balancer 실행이 시작되었다는 것을 의미합니다. 이 말은 실제로 데이터가 이동되어 리밸런싱이 완료되었다는 것을 의미하지는 않는다.
HDFS Balancer는 백그라운드에서 실행되며, 클러스터의 데이터 분포를 조정하고 디스크 사용률 차이를 줄이는 작업을 수행한다. 이 프로세스는 클러스터 크기와 데이터 분포에 따라 몇 분에서 몇 시간 이상 걸릴 수 있다. Balancer의 진행 상황을 확인하려면, 해당 작업이 실행 중인 HDFS 노드에서 Hadoop 로그 파일을 확인해야 한다. 로그 파일은 일반적으로
/data0/var/log/hadoop/hdfs
디렉토리에 위치하며, 명령에서-Dhadoop.log.dir
및-Dhadoop.log.file
로 설정한 값에 따라 다르다.
ps aux | grep Balancer
명령어로 현재 백그라운드로 실행중인 작업을 확인 할 수 있다.
⚡ HBase 리밸런싱 작업 수행하기 전
status
명령어를 사용하여 테이블, 리전, 노드 단위로 통계를 수집합니다. 이를 통해 각 노드에서 처리되는 리전의 수, 요청 수, 데이터 크기 등의 정보를 파악hbase.master.loadbalance.bytable
및 hbase.regionserver.region.split.policy
와 같은 설정이 올바른 값으로 설정되어 있는지 확인해야 한다.⚡HBase 리밸런싱 작업( Ambari )
Services
탭을 클릭한 다음 왼쪽 메뉴에서 HBase
를 선택Service Actions
드롭다운 메뉴에서 Balancer
를 선택Start Balancer
버튼을 클릭하여 리밸런싱 작업을 시작⚡HBase 리밸런싱 작업(shell)
hbase shell
balancer