인프런 커뮤니티 질문&답변
적재 단계 중 적재 기능 테스트 Error 질문입니다.
작성
·
259
0
빅디님 안녕하세요. 오랜만에 질문을 올립니다. 실습을 storm까지 진행하다가 뭔가 진행이 잘 안되어 yum repo를 삭제해서 다시 밀고 파일럿 프로젝트를 앞부분부터 진행중입니다. (복습한다는 긍정적인 마음으로 진행하고 있습니다. ^^;;)
오늘 제 질문은요 파일럿 프로젝트 적재 단계에서 발생하는 error입니다.
로그시뮬레이터를 돌리고 로그파일을 flume-ng 디렉터리에 옮겨서 tail -f 명령어로 파일을 보는데 error가 발생합니다.

처음에는 권한 문제일까 해서 해당 flume-ng 디렉터리를 777로 모든권한을 부여했습니다.
두번째로 channel is full, and cannot write data now. 라는 문구를 보고 채널 메모리가 부족한가 했습니다.
그런데 제가 해당 내용이 정확히 뭔지 모르기 때문에 conf를 수정할 수 없었습니다. (어느 부분을 늘려줘야 할지 몰라서요..)
세번째 의심이 가는 부분 역시 권한 부분인데요.
permission denied : user=flume, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x 이 부분이 걸리는데,
이 부분 권한은 어떻게 수정해야 할까요??
처음에는 잘 돼서 쭉쭉 진도가 나갔는데 밀고 다시 설치하니 앞 부분에서 되던게 안되는게 많네요 ㅜㅜ
도움 부탁드리겠습니다.
답변 1
0
안녕하세요! DDK님!
오랜만에 질문 주셔서 저도 반갑습니다.ㅎ
문의 하신 내용의 문제는 말씀하신 것처럼 플럼이 아니라 HDFS의 권한에 있습니다.
flume 계정이 Write 하고자 하는 경로의 권한이 supergroup의 권한이 필요하기 때문인데요..
파일럿 프로젝트에선 이를위해 "권한검사"를 해제 합니다.
강의는 "05. 빅데이터 클러스터 구성 03 - DataNode 추가 및 환경설정" 에서 다루고 있습니다.
CM 홈> HDFS > 구성 에서 "HDFS 권한" 라는 키워드로 검색하고 "HDFS 권한 검사" 체크박스를 해제 하고, "저장 > HDFS 재시작" 하면 됩니다.
실환경에선 이렇게 권한 검사를 전부 해제 해서 사용하지는 않습니다. flume 계정에 supergroup의 권한을 부여 하는 데요..
요건 하둡 파일시스템의 사용자/그룹/권한 관리에 대한 이해가 필요합니다.
간단히 설명을 드리자면, 현재 파일럿에서 사용중인 리눅스(CentOS)의 계정정보(etc/group)에는 하둡 에코에서 사용하는 모든 계정정보(flume, mapred, hdfs, hive, ... 등)가 등록 되어 있습니다. 그리고 하둡관련 명령(or 프로그램)이 실행될 시점에 이 계정정보중 하나를 가지고 실행 됩니다. 즉 하둡 시스템 자체에서는 계정관리를 하지 않고 명령(or 프로그램)을 실행하는 OS(로컬)의 계정중 하나를 이용 하게 됩니다.
그래서 리눅스에 supergroup 그룹을 추가하고 flume 계정에 supergroup의 권한을 부여 하는것으로도 문제를 해결할 수 있습니다.
하둡이 좀 어렵습니다. ^^;;
책한권 이상의 분량이고 운영 할때는 많은 경험과 노하우를 요합니다.
하지만 파일럿 프로젝트를 통해 우선 시작을 해보고, 본인의 분야에 맞게 단계적으로 공부해 가면 됩니다. 그리고 이런 문제를 직면하고 해결하는 과정을 경험해 보는것이 더욱 중요하고요...
- 빅디 올림
PS. 참고로 왜 HDFS의 권한문제로 Flume의 채널에서 Full 에러가 발생 했는지는 고민해 보세요~




