本文主要是介绍idea 远程使用hdfs copyFromLocalFile api上传文件 org.apache.hadoop.ipc.RemoteException(java.io.IOException),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我在台式机上启动了三台虚拟机配置了一个的Hadoop3.1.3集群,并进行文件操作
A.namenode机上用hadoop shell 上传LICENSE.txt
B.同一台电脑Windows操作系统下用idea通过hdfs copyFromLocalFile API上传HDFSClient.java
C. 以及同一局域网另一台笔记本电脑上用idea上传 txt文件
得到以下结果:
- A和B上传成功并且没有报错,但是B操作只产生了两个文件副本,原因:idea hadoop 包的default是2,在resource下加一个hdfs-site设置就好了
- C操作失败,得到 RemoteException错误,nn创建文件成功但无法写入,在此之前成功使用fs.mkdirs创建过文件夹
org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /xiyou/huaguoshan/sunwukong.txt could only be written to 0 of the 1 minReplication nodes. There are 3 datanode(s) running and 3 node(s) are excluded in this operation.
at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget4NewBlock(BlockManager.java:2205)
at org.apache.hadoop.hdfs.server.namenode.FSDirWriteFileOp.chooseTargetForNewBlock(FSDirWriteFileOp.java:294)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2731)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:892)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:568)
at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol 2. c a l l B l o c k i n g M e t h o d ( C l i e n t N a m e n o d e P r o t o c o l P r o t o s . j a v a ) a t o r g . a p a c h e . h a d o o p . i p c . P r o t o b u f R p c E n g i n e 2.callBlockingMethod(
这篇关于idea 远程使用hdfs copyFromLocalFile api上传文件 org.apache.hadoop.ipc.RemoteException(java.io.IOException)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!