前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hadoop2.2.0 HDFS暂时不支持并发追加

Hadoop2.2.0 HDFS暂时不支持并发追加

作者头像
星哥玩云
发布2022-06-29 20:52:02
3120
发布2022-06-29 20:52:02
举报
文章被收录于专栏:开源部署

由多个客户端对同一个文件发起并发追加操作后,只有最后发起的那个客户端抢得追加的锁,其他客户端报错:

        at org.apache.Hadoop.hdfs.server.namenode.FSNamesystem.appendFile(FSNamesystem.java:2347)         at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.append(NameNodeRpcServer.java:508)         at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.append(ClientNamenodeProtocolServerSideTranslatorPB.java:320)         at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java:59572)         at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:585)         at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:928)         at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2048)         at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2044)         at java.security.AccessController.doPrivileged(Native Method)         at javax.security.auth.Subject.doAs(Subject.java:415)         at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491)         at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2042)         at org.apache.hadoop.ipc.Client.call(Client.java:1347)         at org.apache.hadoop.ipc.Client.call(Client.java:1300)         at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)         at com.sun.proxy.$Proxy9.append(Unknown Source)         at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         at java.lang.reflect.Method.invoke(Method.java:606)         at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:186)         at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)         at com.sun.proxy.$Proxy9.append(Unknown Source)         at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.append(ClientNamenodeProtocolTranslatorPB.java:245)         at org.apache.hadoop.hdfs.DFSClient.callAppend(DFSClient.java:1480)         at org.apache.hadoop.hdfs.DFSClient.append(DFSClient.java:1520)         at org.apache.hadoop.hdfs.DFSClient.append(DFSClient.java:1508)         at org.apache.hadoop.hdfs.DistributedFileSystem$4.doCall(DistributedFileSystem.java:310)         at org.apache.hadoop.hdfs.DistributedFileSystem$4.doCall(DistributedFileSystem.java:306)         at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)         at org.apache.hadoop.hdfs.DistributedFileSystem.append(DistributedFileSystem.java:306)         at org.apache.hadoop.fs.FileSystem.append(FileSystem.java:1160)         at com.goojje.cart.etl.CartCommon.write(CartCommon.java:84)         at com.goojje.cart.CartClientMain.pushData(CartClientMain.java:63)         at com.goojje.cart.CartClientMain.main(CartClientMain.java:29) org.apache.hadoop.ipc.RemoteException(java.io.IOException): java.lang.NullPointerException         at com.goojje.cart.index.CartIndexer.buildIndex(CartIndexer.java:49)         at com.goojje.cart.ipc.server.CartProtocolImpl.saveIndex(CartProtocolImpl.java:49)         at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         at java.lang.reflect.Method.invoke(Method.java:606)         at org.apache.hadoop.ipc.WritableRpcEngine$Server$WritableRpcInvoker.call(WritableRpcEngine.java:481)         at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:928)         at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2048)         at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2044)         at java.security.AccessController.doPrivileged(Native Method)         at javax.security.auth.Subject.doAs(Subject.java:415)         at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491)         at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2042)         at org.apache.hadoop.ipc.Client.call(Client.java:1347)         at org.apache.hadoop.ipc.Client.call(Client.java:1300)         at org.apache.hadoop.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:231)         at com.sun.proxy.$Proxy10.saveIndex(Unknown Source)         at com.goojje.cart.CartClientMain.pushData(CartClientMain.java:64)         at com.goojje.cart.CartClientMain.main(CartClientMain.java:29)

分析可知,当前Hadoop并不支持并发写操作。下面链接是对这个问题的理论诠释:http://www.linuxidc.com/Linux/2014-01/95941.htm

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档