分享

hive追加文件报错

zhuqitian 发表于 2017-6-16 15:06:15 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 7106
org.apache.hadoop.ipc.RemoteException: Failed to APPEND_FILE /apps/hive/warehouse/ods.db/phone/phone.txt for DFSClient_NONMAPREDUCE_1742740607_1 on 172.17.0.4 because DFSClient_NONMAPREDUCE_1742740607_1 is already the current lease holder.
  at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.recoverLeaseInternal(FSNamesystem.java:2970)
  at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.appendFileInternal(FSNamesystem.java:2766)
  at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.appendFileInt(FSNamesystem.java:3073)
  at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.appendFile(FSNamesystem.java:3042)
  at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.append(NameNodeRpcServer.java:760)
  at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.append(ClientNamenodeProtocolServerSideTranslatorPB.java:429)
  at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
  at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:640)
  at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:982)
  at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2313)
  at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2309)
  at java.security.AccessController.doPrivileged(Native Method)
  at javax.security.auth.Subject.doAs(Subject.java:422)
  at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1724)
  at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2307)

已有(2)人评论

跳转到指定楼层
w123aw 发表于 2017-6-16 16:17:50
应该是创建文件后,没有关闭文件流,或则被追加的文件被打开流被打开,然后又追加造成的。
下面是hadoop的,加上下面红字部分,在追加,应该就可以了.hive应该也是 一样的。

FileSystem fs = FileSystem.get(conf);
Path dstPath = new Path(dst);
if (!fs.exists(dstPath)) {
     fs.create(dstPath);
fs.close();
}
FSDataOutputStream fsout = fs.append(dstPath);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fsout));



回复

使用道具 举报

zhuqitian 发表于 2017-6-17 10:08:05
w123aw 发表于 2017-6-16 16:17
应该是创建文件后,没有关闭文件流,或则被追加的文件被打开流被打开,然后又追加造成的。
下面是hadoop的 ...

谢谢,可能有这方面原因
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条