메뉴 건너뛰기

Bigdata, Semantic IoT, Hadoop, NoSQL

Bigdata, Hadoop ecosystem, Semantic IoT등의 프로젝트를 진행중에 습득한 내용을 정리하는 곳입니다.
필요한 분을 위해서 공개하고 있습니다. 문의사항은 gooper@gooper.com로 메일을 보내주세요.


*참조1 : https://www.facebook.com/notes/yongbok-kim/apache-hadoop-nfs-exports-point-%EC%A7%80%EC%A0%95%ED%95%98%EA%B8%B0/817707064964961/


*참조2: https://developer.ibm.com/hadoop/2015/09/30/mounting-hdfs-onto-local-file-system-in-iop-4-1/


0. 필요한 패키지를 설치한다

yum install nfs-utils nfs-utils-lib


0-1. 로컬 디렉토리에 마운트할 HDFS상의 경로를 생성한다

hadoop fs -mkdir /user/gooper/jena
hadoop fs -chown gooper:superuser /user/gooper/jena


0-2. HDFS상의 경로와 연결할 로컬 디렉토리를 생성한다.(필요시, 이미 존재하는 경우 생성할 필요없음 )

 mkdir /svc/apps/sda/bin/fuseki/mydb
* 기존 디렉토리를 사용하는 경우 디렉토리에 존재하는 내용이 모두 삭제되므로 주의 할것

1. hadoop설정값을 수정/추가한다.(hdfs-site.xml 혹은 core-site.xml)


<!-- NFS v3 -->
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>
 
    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>
   <property>
     <name>hadoop.proxyuser.nfsserver.hosts</name>
     <value>*</value>
   </property>

   <property>
     <name>hadoop.proxyuser.nfsserver.groups</name>
     <value>*</value>
   </property>

    <property>
        <name>nfs.exports.allowed.hosts</name>
        <value>* rw</value>
    </property>
 
    <property>
        <name>nfs.export.point</name>
        <value>/user/gooper/jena</value>
    </property>
    <property>
        <name>nfs.dump.dir</name>
        <value>/tmp/.hdfs-nfs</value>
    </property>

위의 옵션을 간략하게 정리하면 아래와 같다.
- hadoop.proxyuser.[userid].groups
NFS를 마운트를 허용할 사용자
 
- hadoop.proxyuser.[userid].hosts
이 옵션에 값을 *로 설정하면 모든 호스트들에게 NFS Gateway 허용
 
- nfs.exports.allowed.hosts
NFS Client가 Mount시 허용할 Host와 권한을 지정할때 사용한다.
이 옵션 값에 IP 대역을 지정 하고자 할때에는 <value>172.17.0.0/24 rw;192.168.0.0/24 rw</value> 와 같이 설정하면 된다.
(구분은 ,가 아닌 ; 로 하면 된다.)
 
- nfs.export.point
NFS의 exports point를 직접 지정할 수 있는 부분이다. 이 값은 HDFS안에 실제로 존재 하는 디렉토리로 설정해야 한다. 

2. 1번의 변경사항을 반영한다.

sbin/stop-dfs.sh 
sbin/start-dfs.sh


3. 기존에 동작하고 있는 Postmap, NFS서비스를 중지한다.

service nfs stop 
service rpcbind stop


4. hdfs의 portmap과 nfs3을 실행시킨다 (실행종료시킬때는 데몬을 찾아 kill로 죽인다)

bin/hdfs portmap &
bin/hdfs nfs3 &


5. 확인1 (콘솔에서 rpcinfo -p sda1을 실행시킨다)

   program vers proto   port  service
    100005    3   udp   4242  mountd
    100005    1   tcp   4242  mountd
    100000    2   udp    111  portmapper
    100000    2   tcp    111  portmapper
    100005    3   tcp   4242  mountd
    100005    2   tcp   4242  mountd
    100003    3   tcp   2049  nfs
    100005    2   udp   4242  mountd
    100005    1   udp   4242  mountd


6. 확인2 (콘솔에서 
showmount -e sda1를 실행시킨다)

Export list for sda1:
/user/gooper/jena *


7. 로컬 디렉토리와 HDFS상의 경로를 마운트 시킨다.

mount -t nfs -o vers=3,proto=tcp,nolock,noacl,sync localhost:/user/gooper/jena /svc/apps/sda/bin/fuseki/mydb


8. mount결과 확인(콘솔에서 mount를 실행한다)

/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
localhost:/user/gooper/jena on /home/gooper/svc/apps/sda/bin/apache-jena-fuseki-2.3.0/mydb type nfs (rw,vers=3,proto=tcp,nolock,addr=127.0.0.1)


* 마운트 해재 : umount  
/home/gooper/svc/apps/sda/bin/apache-jena-fuseki-2.3.0/mydb


번호 제목 글쓴이 날짜 조회 수
401 우분투 16.04 설치후 APM (Apache2, PHP, MySQL) 설치 총관리자 2017.01.29 185
400 anaconda3(v5.4)를 이용하여 tensorflow설치후 ipython프로그램을 실행하여 import할때 오류발생시 조치 총관리자 2018.07.27 188
399 test333 총관리자 2017.05.01 189
398 MapReduce2.0(YARN)기반의 CDH5 설치시 생성되는 사용자및 권한 부여 총관리자 2018.05.30 190
397 sendmail + dovecot(pop3) + saslauthd 설치 총관리자 2017.06.11 191
396 [shellscript] 함수에 배열을 인자로 주어서 처리하는 방법 총관리자 2019.07.16 191
395 모두를 위한 머신러닝과 딥러닝의 강의 file 총관리자 2016.09.27 192
394 beeline으로 접근시 "User: gooper is not allowed to impersonate anonymous (state=08S01,code=0)"가 발생하면서 "No current connection"이 발생하는 경우 조치 총관리자 2018.04.15 194
393 Could not compute split, block input-0-1517397051800 not found형태의 오류가 발생시 조치방법 총관리자 2018.02.01 196
392 SCM서비스를 추가하는 동안 Unexpected error. Unable to verify database connection. 오류발생시 확인 사항 총관리자 2018.06.08 196
391 RHEL 7.4에 zeppelin 0.7.4 설치 총관리자 2018.07.31 196
390 git 초기화(Windows에서 Git Bash사용) 총관리자 2016.11.17 197
389 프로세스를 확인해서 프로세스를 삭제하는 shell script예제(cryptonight) 총관리자 2018.02.02 197
388 하둡기반 데이타 모델링(6편) 총관리자 2018.06.27 197
387 [shell script]test.txt에 space로 분리된 내용을 일어들이는 예제 총관리자 2017.02.21 198
386 [메모리 덤프파일 분석] 총관리자 2017.03.31 198
385 우분투 16.04LTS에 Zeppelin 0.7.3설치 총관리자 2018.04.18 198
384 spark 2.3.0을 설치하가 위해서 parcel에 다음 url을 입력한다. 총관리자 2018.07.15 198
383 spark 2.0.0의 api를 이용하는 예제 프로그램 총관리자 2017.03.15 199
382 pom.xml에서 build.gradle로 변환 총관리자 2015.09.14 201

A personal place to organize information learned during the development of such Hadoop, Hive, Hbase, Semantic IoT, etc.
We are open to the required minutes. Please send inquiries to gooper@gooper.com.

위로