IT 삽질기

Hadoop3 변경점 본문

BigData/Hadoop

Hadoop3 변경점

화이팅빌런 2021. 4. 12. 23:40

Hadoop3에서 변경된 내용 중 몇몇 중요한 사항들에 대해 알아보도록 하자

Java8

기존의 Hadoop2는 Java 7버전을 지원했는데 Hadoop3를 사용하기 위해서는 Java8를 설치해야 한다

erasure coding

가장 큰 변경점 중 하나인 erasure coding은 기존의 Hadoop2에서 문제가 되었던 스토리지 관련 문제를 해결한다

Hadoop2 에서는 기본적으로 데이터를 저장하기 위해 3배의 용량이 필요했다

예를 들어, 1TB의 데이터를 저장하기 위해서는 3TB의 용량이 필요했던 것이다 이는 HDFS에서 데이터 유실이 일어나지 않게 해주는 역할을 함과 동시에 데이터를 많이 저장할 수 없는 단점으로 작용했다

물론 설정을 통해 Replication 수를 줄여 용량을 확보하는 방법이 있지만 이는 안정성을 떨어뜨려 default 값인 3배수를 유지한다

이런 단점을 해결하기 위해 개발된 것이 erasure coding이고 1.4배의 용량으로 안정성을 확보한다

네트워크 CPU에 오버헤드가 발생할 수 있지만, 용량적인 측면에서는 많은 이득을 볼 수 있다

erasure coding에 대한 자세한 내용은 추후 다시 포스팅 할 예정이다

2개 이상의 NameNode 지원

Hadoop2에서는 active - standby 형식으로 NN을 지원했다면 Hadoop3에서는 standby NN을 여러 개 사용할 수 있다

이로 인해 standby NN을 여러 개 놓고 좀 더 안정적인 클러스터를 운영할 수 있다

데이터 노드 balancer

단일 DataNode에서 여러 개의 디스크를 관리하며 정상적인 상태에서는 디스크가 고르게 채워지지만, 데이터 교체가 일어나는 경우에는 디스크간 밸런싱 문제가 발생

이러한 상황이 기존 HDFS balancer에서는 동작하지 않지만 hadoop3 에서는 해당 기능을 제공

Port 변경

기존에는 Hadoop 서비스의 기본 포트가 Linux의 임시 포트 범위(32768 - 61000)에 있어 다른 서비스와 충돌하는 경우가 발생했는데 이를 방지하기 위해 Hadoop 일부 서비스의 port가 변경

Namenode : 50070 -> 9070 / 50470 -> 9470

DataNode : 50010 -> 9010 / 50020 -> 9020 / 50075 -> 9075 / 50475 -> 9475

Secondary NameNode : 50090 -> 9090 / 50091 -> 9091

issues.apache.org/jira/browse/HDFS-9427

 

이 외에도 아래와 같은 추가 기능을 제공

Yarn TimeLine Service v2

TimeLine Service v2는 확장성과 안정성을 개선하고 flow와 aggregation을 도입

hadoop.apache.org/docs/r3.0.0/hadoop-yarn/hadoop-yarn-site/TimelineServiceV2.html

Shell script 재작성

Shell script에 존재했던 버그가 수정되고 새로운 기능이 포함

hadoop.apache.org/docs/r3.0.0/hadoop-project-dist/hadoop-common/UnixShellGuide.html

 

hadoop3의 새로운 변경점은 아래의 링크에 모두 정리되어 있으며, 해당 포스트의 내용도 hadoop의 내용을 옮겨왔습니다

hadoop.apache.org/docs/r3.0.0/

Comments