<aside> 💡
핵심 키워드
core-site.xml → viewfs의 가상경로 매핑 정보 기록
hdfs-site.xml → 여러 NameNode 연결정보 기록
</aside>
하둡 새 클러스터를 어플리케이션에서 커넥션 맺어서 사용하려고 한다. hdfsUrl이 viewfs 로 시작하는데, 이게 뭘까?
지피티와 이야기해보니 viewfs는 하둡의 여러 HDFS 네임스페이스, 볼륨을 하나의 가상 경로처럼 보이게 해주는, 클라이언트 측 리눅스 마운트 테이블이라고 생각하면 된다. 클라이언트측이라는 의미는 결국 하둡을 사용하는 애플리케이션 수준에서 활용하는 방식이라는 의미.
실제 경로는 아래와 같을 수 있다.
위와 같은 여러 경로를 하나의 경로로 연결할 수 있다. (nameservice의 경로를 가상경로로 매핑해준다. 이때 경로는 아래처럼 hdfs://nameservice/path 일수도, hdfs://host:port/path 일수도 있다. 뭐가 되었든간에 실제 fs의 url임.)
이렇게 하면 이제 하둡을 사용하는 클라이언트 코드 입장에서는 유니크한 하위 경로만 기억하면 되고 어느 파일시스템에 있는지는 알 필요가 없다. 그건 ViewFs의 마운트 설정이 알아서 라우팅 해준다.
이 viewfs는 k8s의 인그레스 룰같은걸로 생각하면 됨. 경로 매핑 규칙일 뿐이다. 설정은 보통 core-site.xml에서 진행함. 이 xml자체가 애플리케이션에 있다. 그래서 클라이언트 측이라고 자꾸 하는 것임.
좀 더 technical term을 사용해서 설명하자면, viewfs는 하둡에서 실제 파일시스템 경로를 하나의 가상 파일 시스템처럼 보이게 하는 클라이언트측의 경로 매핑 계층. 주로 HDFS Federation환경에서 여러 NameNode를 하나처럼 다루기 위해 사용한다.
아예 하둡클러스터가 달라도 통합이 가능할까? → 가능하다. 애초에 그 목적으로 사용함. core-site.xml 에 새 클러스터 정보를 등록하면 된다. 단일 NameNode를 사용중이라면