# Eclipse에서 HDFS 연결 환경 설정

# 외부 시스템(WindowsOS and Eclipse)에서 HDFS 파일 컨트롤


기본적으로 외부 시스템에서 HDFS 상의 디렉토리및 파일을 읽을수는 있지만, 쓰기는 제한됨.
외부 시스템에서 HDFS 상에 파일을 업로드 하거나 MapReduce 잡 output을 저장하기 위해서는 HDFS 시스템에 권한 설정이 필요함.


# 권한(Write) 없을시 에러 메시지
Exception in thread "main" org.apache.hadoop.security.AccessControlException: org.apache.hadoop.security.AccessControlException: Permission denied: user=sunshiny, access=WRITE, inode="data":hadoop:supergroup:rwxr-xr-x
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:95)
    at org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:57)
    at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.<init>(DFSClient.java:3424)
    at org.apache.hadoop.hdfs.DFSClient.create(DFSClient.java:866)
    at org.apache.hadoop.hdfs.DistributedFileSystem.create(DistributedFileSystem.java:193)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:555)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:536)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:443)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:435)
    at lab.FileWrite.main(FileWrite.java:26)
Caused by: org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.security.AccessControlException: Permission denied: user=sunshiny, access=WRITE, inode="data":hadoop:supergroup:rwxr-xr-x
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:199)
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.check(FSPermissionChecker.java:180)
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:128)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:5468)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkAncestorAccess(FSNamesystem.java:5442)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInternal(FSNamesystem.java:1314)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFile(FSNamesystem.java:1266)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.create(NameNode.java:668)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.create(NameNode.java:647)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:578)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1393)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1389)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1149)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1387)

    at org.apache.hadoop.ipc.Client.call(Client.java:1107)
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:229)
    at sun.proxy.$Proxy1.create(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:85)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:62)
    at sun.proxy.$Proxy1.create(Unknown Source)
    at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.<init>(DFSClient.java:3417)
    ... 7 more

# 하둡 fs 명령어 옵션 정보
[hadoop@master ~]$ hadoop fs
Usage: java FsShell
           [-ls <path>]
           [-lsr <path>]
           [-du <path>]
           [-dus <path>]
           [-count[-q] <path>]
           [-mv <src> <dst>]
           [-cp <src> <dst>]
           [-rm [-skipTrash] <path>]
           [-rmr [-skipTrash] <path>]
           [-expunge]
           [-put <localsrc> ... <dst>]
           [-copyFromLocal <localsrc> ... <dst>]
           [-moveFromLocal <localsrc> ... <dst>]
           [-get [-ignoreCrc] [-crc] <src> <localdst>]
           [-getmerge <src> <localdst> [addnl]]
           [-cat <src>]
           [-text <src>]
           [-copyToLocal [-ignoreCrc] [-crc] <src> <localdst>]
           [-moveToLocal [-crc] <src> <localdst>]
           [-mkdir <path>]
           [-setrep [-R] [-w] <rep> <path/file>]
           [-touchz <path>]
           [-test -[ezd] <path>]
           [-stat [format] <path>]
           [-tail [-f] <file>]
           [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
           [-chown [-R] [OWNER][:[GROUP]] PATH...]
           [-chgrp [-R] GROUP PATH...]
           [-help [cmd]]

Generic options supported are
-conf <configuration file>     specify an application configuration file
-D <property=value>            use value for given property
-fs <local|namenode:port>      specify a namenode
-jt <local|jobtracker:port>    specify a job tracker
-files <comma separated list of files>    specify comma separated files to be copied to the map reduce cluster
-libjars <comma separated list of jars>    specify comma separated jar files to include in the classpath.
-archives <comma separated list of archives>    specify comma separated archives to be unarchived on the compute machines.


# 아래의 1번 또는 2번 설정 #


1) 그룹 생성및 유저(로컬 PC 사용계정과 동일한 ID) 생성


 * HDFS에서 기본으로 supergroup 그룹을 정의해서 사용함.

> 시스템 그룹 supergroup이 존재하지 않으면 생성
[root@master ~]# groupadd supergroup

[root@master ~]# cat /etc/group
hadoop:x:502:
supergroup:x:503:

> 사용자 생성(그룹,디렉토리,쉘)
[root@master ~]# useradd -g supergroup -d /home/sunshiny -c /bin/bash sunshiny
[root@master ~]# passwd sunshiny

2) 그룹지정 없이 유저(로컬 PC 사용계정과 동일한 ID) 생성및 권한 설정

> 사용자 생성(그룹,디렉토리,쉘)
[root@master ~]# useradd -d /home/sunshiny -c /bin/bash sunshiny
[root@master ~]# passwd sunshiny

> 사용하고자 하는 HDFS 상의 디렉토리에 유저 권한 설정
[hadoop@master ~]$ hadoop fs -chown -R hadoop:sunshiny /user/hadoop
[hadoop@master ~]$ hadoop fs -lsr /user/hadoop/output
drwxr-xr-x   - hadoop sunshiny          0 2013-05-30 17:22 /user/hadoop/output/apache_logs

> 그룹 사용자의 퍼미션(Write) 추가 설정
[hadoop@master ~]$ hadoop fs -chmod -R 775 /user/hadoop
[hadoop@master ~]$ hadoop fs -lsr /user/hadoop/output
drwxrwxr-x   - hadoop sunshiny          0 2013-05-30 17:22 /user/hadoop/output/apache_logs





※ 위 내용은, 여러 자료를 참고하거나 제가 주관적으로 정리한 것입니다.
   잘못된 정보나 보완이 필요한 부분을, 댓글 또는 메일로 보내주시면 많은 도움이 되겠습니다.
06 10, 2013 18:33 06 10, 2013 18:33


Trackback URL : http://develop.sunshiny.co.kr/trackback/922

Leave a comment

« Previous : 1 : ... 102 : 103 : 104 : 105 : 106 : 107 : 108 : 109 : 110 : ... 648 : Next »

Recent Posts

  1. HDFS - Python Encoding 오류 처리
  2. HP - Vertica ROS Container 관련 오류...
  3. HDFS - Hive 실행시 System Time 오류
  4. HP - Vertica 사용자 쿼리 이력 테이블...
  5. Client에서 HDFS 환경의 데이터 처리시...

Recent Comments

  1. 안녕하세요^^ 배그핵
  2. 안녕하세요^^ 도움이 되셨다니, 저... sunshiny
  3. 정말 큰 도움이 되었습니다.. 감사합... 사랑은
  4. 네, 안녕하세요. 댓글 남겨 주셔서... sunshiny
  5. 감사합니다 많은 도움 되었습니다!ㅎㅎ 프리시퀸스

Recent Trackbacks

  1. see page see page %M
  2. find out this here find out this here %M
  3. amazon fire streaming amazon fire streaming %M
  4. roku channel builder roku channel builder %M
  5. clocks for facilities clocks for facilities %M

Calendar

«   12 2019   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

Bookmarks

  1. 위키피디아
  2. MysqlKorea
  3. 오라클 클럽
  4. API - Java
  5. Apache Hadoop API
  6. Apache Software Foundation
  7. HDFS 생태계 솔루션
  8. DNSBL - Spam Database Lookup
  9. Ready System
  10. Solaris Freeware
  11. Linux-Site
  12. 윈디하나의 솔라나라

Site Stats

TOTAL 2777455 HIT
TODAY 180 HIT
YESTERDAY 468 HIT