I am trying to use WebHDFS to write two files to Hadoop. One is an image file 
and the other is an index file. I am able to create both files, append twice to 
both files, but when I try to append a 3rd time I get the following error:

"{"RemoteException":{"exception":"AlreadyBeingCreatedException","javaClassName":"org.apache.hadoop.hdfs.protocol.AlreadyBeingCreatedException","message":"Failed
 to APPEND_FILE /PSG/VideoVault/VideoStorage/VICADS-100/20160513.img for 
DFSClient_NONMAPREDUCE_1168342942_28 on 192.168.1.211 because this file lease 
is currently owned by DFSClient_NONMAPREDUCE_-2117428583_27 on 
192.168.1.211\n\tat 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.recoverLeaseInternal(FSNamesystem.java:2937)\n\tat
 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.appendFileInternal(FSNamesystem.java:2684)\n\tat
 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.appendFileInt(FSNamesystem.java:2991)\n\tat
 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.appendFile(FSNamesystem.java:2960)\n\tat
 
org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.append(NameNodeRpcServer.java:719)\n\tat
 
org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.append(ClientNamenodeProtocolServerSideTranslatorPB.java:421)\n\tat
 
org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)\n\tat
 
org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616)\n\tat
 org.apache.hadoop.ipc.RPC$Server.call(RPC.java:969)\n\tat 
org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2151)\n\tat 
org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2147)\n\tat 
java.security.AccessController.doPrivileged(Native Method)\n\tat 
javax.security.auth.Subject.doAs(Subject.java:422)\n\tat 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)\n\tat
 org.apache.hadoop.ipc.Server$Handler.run(Server.java:2145)\n"}}"
WARN  [net.psgglobal.videovault.recorder.JpegWriter] (WriterThread) Error 
Writting JPeg: Error appending to file at Data Node 
http://vv1.localdomain:50075/webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.img?op=APPEND&user.name=hdfs&namenoderpcaddress=vb1.localdomain:8020:
 403 Forbidden

Any idea what I may be doing wrong? Is there something I need to know about the 
file leases when using WebHDFS?

Here is the HTTP communication between the client and the WebHDFS server with 
some annotations added.

--------------- CREATE IMG FILE ----------------

>> "PUT 
>> /webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.img?user.name=hdfs&op=CREATE&overwrite=false
>>  HTTP/1.1[\r][\n]"
>> "Content-Length: 0[\r][\n]"
>> "Host: 192.168.1.201:50070[\r][\n]"
>> "Connection: Keep-Alive[\r][\n]"
>> "User-Agent: Apache-HttpClient/4.5.1 (Java/1.8.0_91)[\r][\n]"
>> "Cookie: 
>> hadoop.auth="u=hdfs&p=hdfs&t=simple&e=1463185339054&s=QNjFxsvYO5jo1j5eSLM4rADC988="[\r][\n]"
>> "Accept-Encoding: gzip,deflate[\r][\n]"
>> "[\r][\n]"

<< "HTTP/1.1 307 TEMPORARY_REDIRECT[\r][\n]"
<< "Cache-Control: no-cache[\r][\n]"
<< "Expires: Fri, 13 May 2016 14:22:19 GMT[\r][\n]"
<< "Date: Fri, 13 May 2016 14:22:19 GMT[\r][\n]"
<< "Pragma: no-cache[\r][\n]"
<< "Expires: Fri, 13 May 2016 14:22:19 GMT[\r][\n]"
<< "Date: Fri, 13 May 2016 14:22:19 GMT[\r][\n]"
<< "Pragma: no-cache[\r][\n]"
<< "Content-Type: application/octet-stream[\r][\n]"
<< "Location: 
http://vv2.localdomain:50075/webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.img?op=CREATE&user.name=hdfs&namenoderpcaddress=vb1.localdomain:8020&createflag=&createparent=true&overwrite=false[\r][\n]";
<< "Content-Length: 0[\r][\n]"
<< "Server: Jetty(6.1.26.hwx)[\r][\n]"
<< "[\r][\n]"

>> "PUT 
>> /webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.img?op=CREATE&user.name=hdfs&namenoderpcaddress=vb1.localdomain:8020&createflag=&createparent=true&overwrite=false
>>  HTTP/1.1[\r][\n]"
>> "Content-Length: 0[\r][\n]"
>> "Host: vv2.localdomain:50075[\r][\n]"
>> "Connection: Keep-Alive[\r][\n]"
>> "User-Agent: Apache-HttpClient/4.5.1 (Java/1.8.0_91)[\r][\n]"
>> "Accept-Encoding: gzip,deflate[\r][\n]"
>> "[\r][\n]"

<< "HTTP/1.1 100 Continue[\r][\n]"
<< "[\r][\n]"
<< "HTTP/1.1 201 Created[\r][\n]"
<< "Location: 
hdfs://vb1.localdomain:8020/PSG/VideoVault/VideoStorage/VICADS-100/20160513.img[\r][\n]"
<< "Content-Length: 0[\r][\n]"
<< "Connection: close[\r][\n]"
<< "[\r][\n]"

--------------- APPEND IMG FILE ----------------

>> "POST 
>> /webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.img?user.name=hdfs&op=APPEND
>>  HTTP/1.1[\r][\n]"
>> "Content-Length: 0[\r][\n]"
>> "Host: 192.168.1.201:50070[\r][\n]"
>> "Connection: Keep-Alive[\r][\n]"
>> "User-Agent: Apache-HttpClient/4.5.1 (Java/1.8.0_91)[\r][\n]"
>> "Cookie: 
>> hadoop.auth="u=hdfs&p=hdfs&t=simple&e=1463185339054&s=QNjFxsvYO5jo1j5eSLM4rADC988="[\r][\n]"
>> "Accept-Encoding: gzip,deflate[\r][\n]"
>> "[\r][\n]"

<< "HTTP/1.1 307 TEMPORARY_REDIRECT[\r][\n]"
<< "Cache-Control: no-cache[\r][\n]"
<< "Expires: Fri, 13 May 2016 14:22:19 GMT[\r][\n]"
<< "Date: Fri, 13 May 2016 14:22:19 GMT[\r][\n]"
<< "Pragma: no-cache[\r][\n]"
<< "Expires: Fri, 13 May 2016 14:22:19 GMT[\r][\n]"
<< "Date: Fri, 13 May 2016 14:22:19 GMT[\r][\n]"
<< "Pragma: no-cache[\r][\n]"
<< "Content-Type: application/octet-stream[\r][\n]"
<< "Location: 
http://vv1.localdomain:50075/webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.img?op=APPEND&user.name=hdfs&namenoderpcaddress=vb1.localdomain:8020[\r][\n]";
<< "Content-Length: 0[\r][\n]"
<< "Server: Jetty(6.1.26.hwx)[\r][\n]"
<< "[\r][\n]"

>> "POST 
>> /webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.img?op=APPEND&user.name=hdfs&namenoderpcaddress=vb1.localdomain:8020
>>  HTTP/1.1[\r][\n]"
>> "Content-Length: 52685[\r][\n]"
>> "Content-Type: application/octet-stream[\r][\n]"
>> "Host: vv1.localdomain:50075[\r][\n]"
>> "Connection: Keep-Alive[\r][\n]"
>> "User-Agent: Apache-HttpClient/4.5.1 (Java/1.8.0_91)[\r][\n]"
>> "Accept-Encoding: gzip,deflate[\r][\n]"
>> "[\r][\n]"
<<< DATA HERE >>>

<< "HTTP/1.1 100 Continue[\r][\n]"
<< "[\r][\n]"
<< "HTTP/1.1 200 OK[\r][\n]"
<< "Content-Length: 0[\r][\n]"
<< "Connection: close[\r][\n]"
<< "[\r][\n]"

--------------- APPEND IDX FILE ----------------

>> "PUT 
>> /webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.idx?user.name=hdfs&op=CREATE&overwrite=false
>>  HTTP/1.1[\r][\n]"
>> "Content-Length: 0[\r][\n]"
>> "Host: 192.168.1.201:50070[\r][\n]"
>> "Connection: Keep-Alive[\r][\n]"
>> "User-Agent: Apache-HttpClient/4.5.1 (Java/1.8.0_91)[\r][\n]"
>> "Cookie: 
>> hadoop.auth="u=hdfs&p=hdfs&t=simple&e=1463185339054&s=QNjFxsvYO5jo1j5eSLM4rADC988="[\r][\n]"
>> "Accept-Encoding: gzip,deflate[\r][\n]"
>> "[\r][\n]"

<< "HTTP/1.1 307 TEMPORARY_REDIRECT[\r][\n]"
<< "Cache-Control: no-cache[\r][\n]"
<< "Expires: Fri, 13 May 2016 14:22:19 GMT[\r][\n]"
<< "Date: Fri, 13 May 2016 14:22:19 GMT[\r][\n]"
<< "Pragma: no-cache[\r][\n]"
<< "Expires: Fri, 13 May 2016 14:22:19 GMT[\r][\n]"
<< "Date: Fri, 13 May 2016 14:22:19 GMT[\r][\n]"
<< "Pragma: no-cache[\r][\n]"
<< "Content-Type: application/octet-stream[\r][\n]"
<< "Location: 
http://vv2.localdomain:50075/webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.idx?op=CREATE&user.name=hdfs&namenoderpcaddress=vb1.localdomain:8020&createflag=&createparent=true&overwrite=false[\r][\n]";
<< "Content-Length: 0[\r][\n]"
<< "Server: Jetty(6.1.26.hwx)[\r][\n]"
<< "[\r][\n]"

>> "PUT 
>> /webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.idx?op=CREATE&user.name=hdfs&namenoderpcaddress=vb1.localdomain:8020&createflag=&createparent=true&overwrite=false
>>  HTTP/1.1[\r][\n]"
>> "Content-Length: 0[\r][\n]"
>> "Host: vv2.localdomain:50075[\r][\n]"
>> "Connection: Keep-Alive[\r][\n]"
>> "User-Agent: Apache-HttpClient/4.5.1 (Java/1.8.0_91)[\r][\n]"
>> "Accept-Encoding: gzip,deflate[\r][\n]"
>> "[\r][\n]"

<< "HTTP/1.1 100 Continue[\r][\n]"
<< "[\r][\n]"
<< "HTTP/1.1 201 Created[\r][\n]"
<< "Location: 
hdfs://vb1.localdomain:8020/PSG/VideoVault/VideoStorage/VICADS-100/20160513.idx[\r][\n]"
<< "Content-Length: 0[\r][\n]"
<< "Connection: close[\r][\n]"
<< "[\r][\n]"

--------------- APPEND IDX FILE ----------------

>> "POST 
>> /webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.idx?user.name=hdfs&op=APPEND
>>  HTTP/1.1[\r][\n]"
>> "Content-Length: 0[\r][\n]"
>> "Host: 192.168.1.201:50070[\r][\n]"
>> "Connection: Keep-Alive[\r][\n]"
>> "User-Agent: Apache-HttpClient/4.5.1 (Java/1.8.0_91)[\r][\n]"
>> "Cookie: 
>> hadoop.auth="u=hdfs&p=hdfs&t=simple&e=1463185339054&s=QNjFxsvYO5jo1j5eSLM4rADC988="[\r][\n]"
>> "Accept-Encoding: gzip,deflate[\r][\n]"
>> "[\r][\n]"

<< "HTTP/1.1 307 TEMPORARY_REDIRECT[\r][\n]"
<< "Cache-Control: no-cache[\r][\n]"
<< "Expires: Fri, 13 May 2016 14:22:19 GMT[\r][\n]"
<< "Date: Fri, 13 May 2016 14:22:19 GMT[\r][\n]"
<< "Pragma: no-cache[\r][\n]"
<< "Expires: Fri, 13 May 2016 14:22:19 GMT[\r][\n]"
<< "Date: Fri, 13 May 2016 14:22:19 GMT[\r][\n]"
<< "Pragma: no-cache[\r][\n]"
<< "Content-Type: application/octet-stream[\r][\n]"
<< "Location: 
http://vv2.localdomain:50075/webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.idx?op=APPEND&user.name=hdfs&namenoderpcaddress=vb1.localdomain:8020[\r][\n]";
<< "Content-Length: 0[\r][\n]"
<< "Server: Jetty(6.1.26.hwx)[\r][\n]"
<< "[\r][\n]"

>> "POST 
>> /webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.idx?op=APPEND&user.name=hdfs&namenoderpcaddress=vb1.localdomain:8020
>>  HTTP/1.1[\r][\n]"
>> "Content-Length: 24[\r][\n]"
>> "Content-Type: application/octet-stream[\r][\n]"
>> "Host: vv2.localdomain:50075[\r][\n]"
>> "Connection: Keep-Alive[\r][\n]"
>> "User-Agent: Apache-HttpClient/4.5.1 (Java/1.8.0_91)[\r][\n]"
>> "Accept-Encoding: gzip,deflate[\r][\n]"
>> "[\r][\n]"
<<< DATA HERE >>>

<< "HTTP/1.1 100 Continue[\r][\n]"
<< "[\r][\n]"
<< "HTTP/1.1 200 OK[\r][\n]"
<< "Content-Length: 0[\r][\n]"
<< "Connection: close[\r][\n]"
<< "[\r][\n]"

--------------- APPEND IMG FILE ----------------

>> "POST 
>> /webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.img?op=APPEND&user.name=hdfs&namenoderpcaddress=vb1.localdomain:8020
>>  HTTP/1.1[\r][\n]"
>> "Content-Length: 52685[\r][\n]"
>> "Content-Type: application/octet-stream[\r][\n]"
>> "Host: vv1.localdomain:50075[\r][\n]"
>> "Connection: Keep-Alive[\r][\n]"
>> "User-Agent: Apache-HttpClient/4.5.1 (Java/1.8.0_91)[\r][\n]"
>> "Accept-Encoding: gzip,deflate[\r][\n]"
>> "[\r][\n]"
<<< DATA HERE >>>

<< "HTTP/1.1 100 Continue[\r][\n]"
<< "[\r][\n]"
<< "HTTP/1.1 200 OK[\r][\n]"
<< "Content-Length: 0[\r][\n]"
<< "Connection: close[\r][\n]"
<< "[\r][\n]"

--------------- APPEND IDX FILE ----------------

>> "POST 
>> /webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.idx?op=APPEND&user.name=hdfs&namenoderpcaddress=vb1.localdomain:8020
>>  HTTP/1.1[\r][\n]"
>> "Content-Length: 24[\r][\n]"
>> "Content-Type: application/octet-stream[\r][\n]"
>> "Host: vv2.localdomain:50075[\r][\n]"
>> "Connection: Keep-Alive[\r][\n]"
>> "User-Agent: Apache-HttpClient/4.5.1 (Java/1.8.0_91)[\r][\n]"
>> "Accept-Encoding: gzip,deflate[\r][\n]"
>> "[\r][\n]"
<<< DATA HERE >>>

<< "HTTP/1.1 100 Continue[\r][\n]"
<< "[\r][\n]"
<< "HTTP/1.1 200 OK[\r][\n]"
<< "Content-Length: 0[\r][\n]"
<< "Connection: close[\r][\n]"
<< "[\r][\n]"

--------------- APPEND IMG FILE ----------------

>> "POST 
>> /webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.img?op=APPEND&user.name=hdfs&namenoderpcaddress=vb1.localdomain:8020
>>  HTTP/1.1[\r][\n]"
>> "Content-Length: 54623[\r][\n]"
>> "Content-Type: application/octet-stream[\r][\n]"
>> "Host: vv1.localdomain:50075[\r][\n]"
>> "Connection: Keep-Alive[\r][\n]"
>> "User-Agent: Apache-HttpClient/4.5.1 (Java/1.8.0_91)[\r][\n]"
>> "Accept-Encoding: gzip,deflate[\r][\n]"
>> "[\r][\n]"
<<< DATA HERE >>>

<< "HTTP/1.1 100 Continue[\r][\n]"
<< "[\r][\n]"
<< "HTTP/1.1 403 Forbidden[\r][\n]"
<< "Content-Type: application/json; charset=utf-8[\r][\n]"
<< "Content-Length: 1756[\r][\n]"
<< "Connection: close[\r][\n]"
<< "[\r][\n]"
<< 
"{"RemoteException":{"exception":"AlreadyBeingCreatedException","javaClassName":"org.apache.hadoop.hdfs.protocol.AlreadyBeingCreatedException","message":"Failed
 to APPEND_FILE /PSG/VideoVault/VideoStorage/VICADS-100/20160513.img for 
DFSClient_NONMAPREDUCE_1168342942_28 on 192.168.1.211 because this file lease 
is currently owned by DFSClient_NONMAPREDUCE_-2117428583_27 on 
192.168.1.211\n\tat 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.recoverLeaseInternal(FSNamesystem.java:2937)\n\tat
 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.appendFileInternal(FSNamesystem.java:2684)\n\tat
 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.appendFileInt(FSNamesystem.java:2991)\n\tat
 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.appendFile(FSNamesystem.java:2960)\n\tat
 
org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.append(NameNodeRpcServer.java:719)\n\tat
 
org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.append(ClientNamenodeProtocolServerSideTranslatorPB.java:421)\n\tat
 
org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)\n\tat
 
org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616)\n\tat
 org.apache.hadoop.ipc.RPC$Server.call(RPC.java:969)\n\tat 
org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2151)\n\tat 
org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2147)\n\tat 
java.security.AccessController.doPrivileged(Native Method)\n\tat 
javax.security.auth.Subject.doAs(Subject.java:422)\n\tat 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)\n\tat
 org.apache.hadoop.ipc.Server$Handler.run(Server.java:2145)\n"}}"
WARN  [net.psgglobal.videovault.recorder.JpegWriter] (WriterThread) Error 
Writting JPeg: Error appending to file at Data Node 
http://vv1.localdomain:50075/webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.img?op=APPEND&user.name=hdfs&namenoderpcaddress=vb1.localdomain:8020:
 403 Forbidden
ERROR [stderr] (WriterThread) java.io.IOException: Error appending to file at 
Data Node 
http://vv1.localdomain:50075/webhdfs/v1/PSG/VideoVault/VideoStorage/VICADS-100/20160513.img?op=APPEND&user.name=hdfs&namenoderpcaddress=vb1.localdomain:8020:
 403 Forbidden
ERROR [stderr] (WriterThread)      at 
net.psgglobal.hdfs.videovault.videostorage.WebHdfsFile.appendToFile(WebHdfsFile.java:252)
ERROR [stderr] (WriterThread)      at 
net.psgglobal.hdfs.videovault.videostorage.JpegImageFile.appendJpeg(JpegImageFile.java:43)
ERROR [stderr] (WriterThread)      at 
net.psgglobal.hdfs.videovault.videostorage.VideoVaultRecordFile.writeToFile(VideoVaultRecordFile.java:40)
ERROR [stderr] (WriterThread)      at 
net.psgglobal.videovault.recorder.JpegWriter$WriterThread.run(JpegWriter.java:95)

Thanks, David

David R Robison
Senior Systems Engineer
O. +1 512 247 3700
M. +1 512 608 3173
david.robi...@psgglobal.net<mailto:david.robi...@psgglobal.net>
www.psgglobal.net<http://www.psgglobal.net/>

Prometheus Security Group Global, Inc.
3019 Alvin Devane Boulevard
Building 4, Suite 450
Austin, TX 78741


Reply via email to