HDFS Balancer - Namespace 페더레이션 되어있을 때

신규로 데이터 노드를 추가하였을 경우, 혹은 디스크 교체로 인해 특정 노드의 데이터가 비게 될 경우 Hadoop에서는 이를 균형 잡히게 만들기 위해 Balancer 기능을 제공한다.

 

네임 스페이스가 페더레이션 되어있을 경우, balancer 수행 시 다중 네임 스페이스들에 모두 밸런싱 작업이 수행되도록 변경이 되었다.

따라서 특정 hdfs 네임스페이스만을 밸런싱 하고 싶을 경우에 해당 네임스페이스 만을 포함하는 core-site.xml, hdfs-site.xml 을 따로 빼고, 해당 config를 물고 들어갈 수 있게끔 실행해준다. hadoop hdfs에 권한이 있는 유저로 실행해주어야 한다.

특정 폴더에 core-site.xml 과 hdfs-site.xml을 복사하여 생성해주고, 위 주요 속성 값들을 단일 네임스페이스 만을 바라보도록 설정해준다.

 

그리고 balancer를 수행해줄 때 --config 옵션을 지정하여 새로 생성한 단일 네임스페이스 용 config를 물고 들어갈 수 있게끔 설정해준다. 다양한 옵션들이 있는데, -threshold 옵션은 노드 간에 용량 % 차이를 얼마로 설정할 것인지에 관련된 속성 값이다. 1이면 1% 차이가 날 때까지 밸런싱 작업을 수행한다. 

 

너무 밸런싱 작업이 더디다고 생각이 들 경우, balancer 작업에 사용되는 대역폭을 증가시킬 수도 있다.

나머지 옵션들은 아래 문서를 참고한다.

 

balance 작업은 데이터가 많을 경우 굉장히 오래 걸릴 수 있다. 이 경우에는 balance 작업을 백그라운드 데몬 형태로 띄워놓으면 좋다.

nohup 명령어를 이용하여 수행해준다.