배경 :SSH 터널에 액세스 할 수 EC2 하둡 클러스터
내가 예상대로 일하는됩니다 EC2 인스턴스에 installl 3 노드 클라우 데라 하둡 클러스터가 있습니다.
클라이언트 컴퓨터가 내 컴퓨터에서 내 컴퓨터의 데이터를 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)
아이디어가 있으십니까?
데이터 노드가 활성 상태입니까? 해당 노드에서 웹 인터페이스를 통해 HDFS에 액세스 할 수 있습니까? – jbird
예, 모든 데이터 노드가 정상적으로 작동합니다. – Dhams