hadoop fuse mount 삽질
- Posted at 2008/10/27 09:51
- Filed under project/lucene_hadoop
지난번에 포스팅한 Hadoop fuse mount(http://www.jaso.co.kr/100)는 hadoop 자체에서 제공하는 fuse mount 기능을 사용한 것이 아니라 fuse와 java를 연결하는 fuse-j를 이용하고 다시 fuse-j와 hadoop을 연결하는 구조를 사용하였습니다.
hadoop0.18 이후 버전에서는 fuse-hadoop 직접 연결이 가능한 모듈을 제공하고 있습니다. contrib에 있는 fuse-dfs입니다. 설치 관련 정보는 http://wiki.apache.org/hadoop/MountableHDFS 참고
지난주 fuse-dfs 설치 중에 무지 삽질했습니다. 문제의 원인은 JVM, Linux, FUSE의 버전과 32bits, 64bits 문제였습니다.
문제의 핵심은 libhfds의 컴파일이 32bits로 설정되어 있다는 것입니다.
fuse-dfs는 hdfs의 C++ 클라이언트 모듈인 libhdfs를 이용합니다. 이 libdhfs의 Makefile에 보면 -m32 옵션이 설정되어 있습니다.
Linux의 운영체제가 64bits인지라 fuse는 아무런 의심없이 64bits를 설치 했습니다. 몇번의 컴파일 문제로 -m32 옵션을 삭제하고 컴파일에는 성공했습니다.
다음 문제는 fuse module을 올리기 위해 "modprobe fuse"를 했는데 "FATAL: Module fuse not found." 계속 이런 에러만 나타납니다.
여러번의 삽질 결과 문제의 원인은 fuse는 설치할 때 kernel source를 필요로 하는데 kernel source가 현재 운영중인 linux 버전과 맞지 않는 버전이 설치되어 있었습니다. 이부분은 어쩔수 없이 포기하고 source 버전이 맞는 다른 장비에서 다시 설치를 시도 했습니다. 잘 되는군요...
모두 설치를 완료하고 "ls -al /mnt/hdfs" 잘 되더군요...
다시 "cp aaa.dat /mnt/hdfs/." 헉
"cp: cannot create regular file `./aaa.dat': Function not implemented"
cp 기능은 구현되어 있지 않다고 나옵니다.
fuse-dfs의 README를 자세히 읽어 보니 다음과 같은 문구가 있네요.
"rmdir, mv, mkdir, rm are all supported. just not cp, touch, ..." 이런.
0.19의 fuse-dfs에는
"Supports reads, writes, and directory operations (e.g., cp, ls, more..."
다시 0.19로 올려야 겠습니다. 반나절의 삽질을 하고도 아직 설치 못했습니다.
Posted by 김형준
- Response
- No Trackback , 2 Comments
Trackback URL : http://www.jaso.co.kr/trackback/302
Comments List
-
안녕하세요, 저도 0.18.1에 fuse-dfs를 설치하려던 참에 이 글을 보게되었습니다. 올려주신 글을 보지 못했다면 저도 무한 '삽질'할 뻔했네요. 후에 0.19로 올려서 설치하신 내용도 포스팅 부탁드립니다. 감사합니다.
-
고생 끝에 빛을 보는가 했더니... 고생하셨군요. 그나저나, 얼마전에 hadoop 0.18로 올렸는데...






