목표 : hdfs의 fsimage 를 xml 형태로 얻기
시행착오 1. fsimage 가 어디에 있지?
구글링 결과 아래 코드를 써서 fsimage 를 얻을 수 있다고 했다
hdfs oiv -i fsimage
oiv : offline image viewer
oiv 는 hdfs 의 fsimage를 fuman-readable 한 상태로 만들어주는 툴이라고 한다.
장비에 hadoop은 실행중이기 때문에 당연히 되겠지..! 했지만
그러나 결과는 "fsimage : no such file or directory"..
그리고 무슨 namenode 를 찾을 수 없다고 했던가
시행착오 2. 그럼 namenode 있는 곳에 가야겠다..! namenode 가 어디에 있지?
hdfs getconf -namenodes
위 명령어를 통해 active/standby 상태의 namenode 목록을 얻을 수 있었다.
그런데 알고보니 namenode 는 현재 접속한 장비가 아닌,
다른 형제장비(..?)에 존재했다
하둡은 원래 이런건가..? 미래의 나는 잘 알았으면 좋겠다
시행착오 3. 그럼 namenode 있는 장비에서 fsimage 를 찾아야겠다!
hdfs oiv -i fsimage -addr {namenode 장비 ip}:5978
oiv 의 옵션들 중, addr 옵션이 있는것을 발견하고,
addr 옵션의 default 는 localhost:5978임을 알게되어,
요 자리에 namenode 장비의 ip를 넣어주면 되지 않을까? 하는 생각을 하게 되었다
그러나 지금 생각해보니, 해당 addr 옵션은 fsimage 를 가져올 주소가 아닌,
oiv 프로세스를 실행시키고, 해당 프로세스에 접근할때 사용할 주소였던 것 같다.
(doc. Users can specify the address to listen by -addr option (default by localhost:5978))
꺅 해결.
알고보니, 문제는 간단했다.
그냥 현재 상태에서 fsimage 를 따면 되는것
hdfs dfsadmin -fetchImage /tmp
위 명령어를 입력하자 /tmp 경로에 fsimage_{날짜?} 가 생성되었다
Reference
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsImageViewer.html
https://sranka.wordpress.com/tag/hdfs-oiv/
'개발log' 카테고리의 다른 글
DEM? DSM? dxf? 데이터에 대해 알아보져 (0) | 2022.01.05 |
---|---|
react 프로젝트 clone 후 작업 (0) | 2021.12.31 |
Yodo1 파트너십 메일 받은 후기 (과연) (0) | 2021.12.17 |
appsmith(앱스미스) 사용기 : 라고 쓰고 영어 울렁증이라고 읽는다 (0) | 2021.04.30 |