org.apache.hadoop.hdfs.protocol.AlreadyBeingCreatedException
来源:互联网 发布:hadnext() java 编辑:程序博客网 时间:2024/04/29 15:42
在Hadoop-1.0.4和Hadoop-2.2的使用append时,需求:追加写入文件,如果文件不存在,需求先创建。
异常:
Exception in thread "main" org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hdfs.protocol.AlreadyBeingCreatedException: failed to create file /huangq/dailyRolling/mommy-dailyRolling for DFSClient_-1456545217 on client 10.1.85.243 because current leaseholder is trying to recreate file. at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.recoverLeaseInternal(FSNamesystem.java:1374) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInternal(FSNamesystem.java:1246) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.appendFile(FSNamesystem.java:1426) at org.apache.hadoop.hdfs.server.namenode.NameNode.append(NameNode.java:643) at sun.reflect.GeneratedMethodAccessor25.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597)
代码版本1:(出现上述报错的代码)
1 FileSystem fs = FileSystem.get(conf);2 Path dstPath = new Path(dst);3 if (!fs.exists(dstPath)) {4 fs.create(dstPath);5 } 6 FSDataOutputStream fsout = fs.append(dstPath);7 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fsout));
异常的原因:FSDataOutputStream create(Path f) 产生了一个输出流,创建完后需要关闭。
解决:创建完文件之后,关闭流FSDataOutputStream。
FileSystem fs = FileSystem.get(conf);Path dstPath = new Path(dst);if (!fs.exists(dstPath)) { fs.create(dstPath).close();} FSDataOutputStream fsout = fs.append(dstPath);
参考:http://www.cnblogs.com/byrhuangqiang/p/3926663.html
0 0
- org.apache.hadoop.hdfs.protocol.AlreadyBeingCreatedException
- org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hdfs.protocol.AlreadyBeingCreatedException:
- org.apache.hadoop.hdfs.protocol.FSLimitException$PathComponentTooLongException
- org.apache.hadoop.hdfs.protocol.UnregisteredDatanodeException
- 用eclips连hadoop报Unknown protocol to job tracker: org.apache.hadoop.hdfs.protocol.ClientProtoco
- eclipse连接hadoop报错Unknown protocol to job tracker: org.apache.hadoop.hdfs.protocol.ClientProtocol
- 用eclips连hadoop报Unknown protocol to job tracker: org.apache.hadoop.hdfs.protocol.ClientProtoco
- Java调用hdfs出现java.lang.VerifyError: class org.apache.hadoop.hdfs.protocol.proto异常
- Java调用hdfs出现java.lang.VerifyError: class org.apache.hadoop.hdfs.protocol.proto异常
- hadoop-0.20.2 & hbase-0.90.1 集群启动错误“org.apache.hadoop.ipc.RPC$VersionMismatch: Protocol org.apache.hadoop.hdfs.protocol.ClientP
- org.apache.hadoop.hdfs.server.namenode.NotReplicatedYetException
- org.apache.hadoop.hdfs.server.namenode.SafeModeException
- org.apache.hadoop.hdfs.qjournal.client.QuorumException
- org.apache.hadoop.hdfs.server.namenode.SafeModeException
- org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException: org.apache.hadoop.hdfs.server.namenode
- Unknown protocol to name node: org.apache.hadoop.mapred.JobSubmissionProtocol
- HDFS append File 出现AlreadyBeingCreatedException
- ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Incompatible namespaceIDs
- Clicker
- Android中visibility属性VISIBLE、INVISIBLE、GONE的区别
- 设置 ListBox 选中项的背景颜色
- java多线程
- iOS —— FFmpeg移植
- org.apache.hadoop.hdfs.protocol.AlreadyBeingCreatedException
- 《Disk Storage》
- 零碎的代码
- linux下mysql中文乱码(中文问号)解决办法
- bootstrap 中 input输入框与其他样式的组合
- 《Constellations》
- 黑马程序员——Java基础——集合(四)
- 黑马程序员——泛型
- HTTP协议/IIS 原理及ASP.NET运行机制浅析【图解】