Hi Terje, I have asked about this issue in an earlier thread but never got any response.
I get this exception when I am using Hive over Thrift and submitting 1000s of LOAD FILE commands. If you actively monitor the open file count of the user under which I run the hive instance, it keeps on creeping yup for every LOAD FILE command sent to it. I have a temporary fix by increasing the # of open file(s) to 60000+ and then periodically restarting my thrift server (once every 2 days) to release the open file handlers. I would appreciate some feedback. (trying to find my earlier email) Thanks, Viral On Thu, Jan 6, 2011 at 4:57 PM, Terje Marthinussen <tmarthinus...@gmail.com>wrote: > Hi, > > While loading some 10k+ .gz files through HiveServer with LOAD FILE etc. > etc. > > 11/01/06 22:12:42 INFO exec.CopyTask: Copying data from file:XXX.gz to > hdfs://YYY > 11/01/06 22:12:42 INFO hdfs.DFSClient: Exception in createBlockOutputStream > java.net.SocketException: Too many open files > 11/01/06 22:12:42 INFO hdfs.DFSClient: Abandoning block > blk_8251287732961496983_1741138 > 11/01/06 22:12:48 INFO hdfs.DFSClient: Exception in createBlockOutputStream > java.net.SocketException: Too many open files > 11/01/06 22:12:48 INFO hdfs.DFSClient: Abandoning block > blk_-2561354015640936272_1741138 > 11/01/06 22:12:54 WARN hdfs.DFSClient: DataStreamer Exception: > java.io.IOException: Too many open files > at sun.nio.ch.EPollArrayWrapper.epollCreate(Native Method) > at sun.nio.ch.EPollArrayWrapper.<init>(EPollArrayWrapper.java:69) > at sun.nio.ch.EPollSelectorImpl.<init>(EPollSelectorImpl.java:52) > at > sun.nio.ch.EPollSelectorProvider.openSelector(EPollSelectorProvider.java:18) > at > org.apache.hadoop.net.SocketIOWithTimeout$SelectorPool.get(SocketIOWithTimeout.java:407) > at > org.apache.hadoop.net.SocketIOWithTimeout$SelectorPool.select(SocketIOWithTimeout.java:322) > at > org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:157) > at > org.apache.hadoop.net.SocketOutputStream.write(SocketOutputStream.java:146) > at > org.apache.hadoop.net.SocketOutputStream.write(SocketOutputStream.java:107) > at > java.io.BufferedOutputStream.write(BufferedOutputStream.java:105) > at java.io.DataOutputStream.write(DataOutputStream.java:90) > at > org.apache.hadoop.hdfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:2314) > > 11/01/06 22:12:54 WARN hdfs.DFSClient: Error Recovery for block > blk_2907917521214666486_1741138 bad datanode[0] 172.27.1.34:50010 > 11/01/06 22:12:54 WARN hdfs.DFSClient: Error Recovery for block > blk_2907917521214666486_1741138 in pipeline 172.27.1.34:50010, > 172.27.1.4:50010: bad datanode 172.27.1.34:50010 > Exception in thread "DataStreamer for file YYY block blk_29 > 07917521214666486_1741138" java.lang.NullPointerException > at > org.apache.hadoop.ipc.Client$Connection.handleConnectionFailure(Client.java:351) > at > org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:313) > at > org.apache.hadoop.ipc.Client$Connection.access$1700(Client.java:176) > at org.apache.hadoop.ipc.Client.getConnection(Client.java:860) > at org.apache.hadoop.ipc.Client.call(Client.java:720) > at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:220) > at $Proxy9.recoverBlock(Unknown Source) > at > org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.processDatanodeError(DFSClient.java:2581) > at > org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.access$1600(DFSClient.java:2102) > at > org.apache.hadoop.hdfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:2265) > > After this, the HiveServer stops working throwing various exceptions due to > too many open files. > > This is from a trunk checkout from yesterday January 6th. > Seems like we are leaking connections to datanodes on port 50010? > > Regards, > Terje >