HDFS NFS gateway 사용하기 클라우드/빅데이터/가상화

hadoop을 사용하다보면 상당히 많고 큰 용량의 파일이 등록된다. 파일을 hadoop명령을 통하여 등록할 수 있지만 상당히 느리고 명령을 실행하는게 귀찮은 일이다. 이때 NFS Gateway를 이용하면 cp명령으로 쉽게 파일을 등록할 수 있다.
FUSE(Filesystem in Userspace)를 통한 마운트 방식도있는데 좀 복잡하다.

아래는 환경 구축 절차이다.

1. 기존 서비스 중지
# service nfs stop (yum -y install nfs-utils)
# service rpcbind stop (yum -y install rpcbind)
portmap도 없으면 설치(yum -y install portmap)

2. portmap 서비스 실행
# hdfs start portmap

3. nfsd 실행
# hdfs start nfs3

4. 서비스 확인
# hdfs --help |egrep 'portmap|nfs3'
  portmap              run a portmap service
  nfs3                 run an NFS version 3 gateway

4. rpc정보 확인
# rpcinfo -p localhost
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  41453  status
    100024    1   tcp  34252  status
    100005    1   udp   4242  mountd
    100005    2   udp   4242  mountd
    100005    3   udp   4242  mountd
    100005    1   tcp   4242  mountd
    100005    2   tcp   4242  mountd
    100005    3   tcp   4242  mountd
    100003    3   tcp   2049  nfs

5. 마운트 정보 확인
# showmount -e localhost
Export list for localhost:
/ *

6. hdfs와 마운트할 디렉토리 생성
# mkdir /tmp/hdfs

7. 마운트 권한 설정
HDFS core-site.xml에 아래 사항을 설정하고 서비스를 재시작 한다.
hadoop.proxyuser.root.hosts = *
hadoop.proxyuser.root.groups = *

7. 마운트 실행
# mount -t nfs -o vers=3,proto=tcp,nolock localhost:/ /tmp/hdfs
->hdfs디렉토리 밑에 hadoop 최상위 디렉토리가 마운트된다.

8. 마운트 확인
# mount |grep hdfs
localhost:/ on /tmp/hdfs type nfs (rw,vers=3,proto=tcp,nolock,addr=127.0.0.1)

9. 디렉토리 확인
# cd /tmp/hdfs 
# ls
app-logs  apps  ats  hdfs  hdp  mapred  mr-history  spark-history  system  tmp  user

10. 파일 copy
# su - hdfs
$ cp imageboackup.txt /tmp/hdfs/hdfs/


덧글

  • 2019/02/19 09:01 # 삭제 답글 비공개

    비공개 덧글입니다.
  • 장땡 2019/02/19 21:15 # 답글

    오! 호호 이런 인연이있었네요.ㅎㅎ
  • 2019/08/21 15:30 # 삭제 답글 비공개

    비공개 덧글입니다.
댓글 입력 영역