2013-08-12 2 views
0

배경 :SSH 터널에 액세스 할 수 EC2 하둡 클러스터

  1. 내가 예상대로 일하는됩니다 EC2 인스턴스에 installl 3 노드 클라우 데라 하둡 클러스터가 있습니다.

  2. 클라이언트 컴퓨터가 내 컴퓨터에서 내 컴퓨터의 데이터를 HDFS로로드합니다.

세부 사항 :

내 클라이언트 프로그램은 윈도우 로컬 디스크에서 데이터를 읽고 HDFS에 기록하는 Java로 개발했다.

퍼티를 통해 SSH 터널을 만들려고하고 있는데, 작동하지 않는 원격 EC2 인스턴스에 내 Windows 사용자 이름으로 로그인하려고합니다. 유닉스 사용자 이름으로 로그인 할 수 있습니다. 나는이 올바른 행동을 이해하고 싶습니까?

내가 제대로 여부 터널을 만든 모르지만 나는 내 클라이언트 프로그램을 실행하려고하면 그 이후는 오류가 아래에 나와 있습니다 :

내 클라이언트 프로그램은 윈도우에서 데이터를 읽는 Java로 개발했다

로컬 디스크에 저장하고 HDFS에 기록하십시오. 내 프로그램을 실행하려고 할 때 오류가 발생합니다.

PriviledgedActionException as:ubuntu (auth:SIMPLE) cause:java.io.IOException: File /user/ubuntu/features.json could only be replicated to 0 nodes instead of minReplication (=1). There are 3 datanode(s) running and 3 node(s) are excluded in this operation. 

6:32:45.711 PM  INFO  org.apache.hadoop.ipc.Server  

IPC Server handler 13 on 8020, call org.apache.hadoop.hdfs.protocol.ClientProtocol.addBlock from 108.161.91.186:54097: error: java.io.IOException: File /user/ubuntu/features.json could only be replicated to 0 nodes instead of minReplication (=1). There are 3 datanode(s) running and 3 node(s) are excluded in this operation. 
java.io.IOException: File /user/ubuntu/features.json could only be replicated to 0 nodes instead of minReplication (=1). There are 3 datanode(s) running and 3 node(s) are excluded in this operation. 
    at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget(BlockManager.java:1331) 
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2198) 
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:480) 
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:299) 
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:44954) 
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:453) 
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1002) 
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1701) 
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1697) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:396) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1408) 
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1695) 

아이디어가 있으십니까?

+0

데이터 노드가 활성 상태입니까? 해당 노드에서 웹 인터페이스를 통해 HDFS에 액세스 할 수 있습니까? – jbird

+0

예, 모든 데이터 노드가 정상적으로 작동합니다. – Dhams

답변

0

hdfs fsck/-delete으로 hdfs 클러스터 상태를 확인할 수 있으며 데이터 노드의 균형을 조정할 수 있습니다.

관련 문제