zhuqitian 发表于 2017-6-16 15:06:15

hive追加文件报错

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)

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的 ...

谢谢,可能有这方面原因
页: [1]
查看完整版本: hive追加文件报错