2012-04-10 3 views
0

Я бегу на работу образец Hadoop на моем CentOS 6.2.64 машину для отладки,Открытые соединения гнезда на Hadoop DataNode на CentOS

hadoop jar hadoop-examples-0.20.2-cdh3u3.jar randomtextwriter o 

и кажется, что после того, как работа завершена, подключение к DataNodes еще остаются.

java  8979 username 51u  IPv6   326596025  0t0  TCP localhost:50010->localhost:56126 (ESTABLISHED) 
java  8979 username 54u  IPv6   326621990  0t0  TCP localhost:50010->localhost:56394 (ESTABLISHED) 
java  8979 username 59u  IPv6   326578719  0t0  TCP *:50010 (LISTEN) 
java  8979 username 75u  IPv6   326596390  0t0  TCP localhost:50010->localhost:56131 (ESTABLISHED) 
java  8979 username 84u  IPv6   326621621  0t0  TCP localhost:50010->localhost:56388 (ESTABLISHED) 
java  8979 username 85u  IPv6   326622171  0t0  TCP localhost:50010->localhost:56395 (ESTABLISHED) 
java  9276 username 77u  IPv6   326621714  0t0  TCP localhost:56388->localhost:50010 (ESTABLISHED) 
java  9276 username 78u  IPv6   326596118  0t0  TCP localhost:56126->localhost:50010 (ESTABLISHED) 
java  9408 username 75u  IPv6   326596482  0t0  TCP localhost:56131->localhost:50010 (ESTABLISHED) 
java  9408 username 76u  IPv6   326622170  0t0  TCP localhost:56394->localhost:50010 (ESTABLISHED) 
java  9408 username 77u  IPv6   326622930  0t0  TCP localhost:56395->localhost:50010 (ESTABLISHED) 

В конце концов я получаю эту ошибку в журналах данных после некоторого времени.

2012-04-12 15:56:29,151 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: DatanodeRegistration(127.0.0.1:50010, storageID=DS-591618896-176.9.25.36-50010-1333654003291, infoPort=50075, ipcPort=50020):DataXceiver 
java.io.FileNotFoundException: /tmp/hadoop-serendio/dfs/data/current/subdir4/blk_-4401902756916730461_31251.meta (Too many open files) 
     at java.io.FileInputStream.open(Native Method) 
     at java.io.FileInputStream.<init>(FileInputStream.java:137) 
     at org.apache.hadoop.hdfs.server.datanode.FSDataset.getMetaDataInputStream(FSDataset.java:996) 
     at org.apache.hadoop.hdfs.server.datanode.BlockSender.<init>(BlockSender.java:125) 
     at org.apache.hadoop.hdfs.server.datanode.DataXceiver.readBlock(DataXceiver.java:258) 
     at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:163) 

Это приводит к проблемам, возникающим в производственной системе, а именно, к датектону, заканчивающему xcievers. Такое поведение, похоже, не происходит в моем окне разработки Ubuntu. Мы используем cloudera hadoop-0.20.2-cdh3u3 для наших целей.

Любые указатели для решения этой проблемы?

ответ

1

Добавить в HDFS-site.xml, если вы еще не определены:

<property> 
<name>dfs.datanode.max.xcievers</name> 
<value>4096</value> 
</property> 

defalut 256 я думаю ....

это вычисление типа formaula за сколько xciever вы должны иметь чтобы избежать такой ошибки ...

# of xcievers = ((# of storfiles + # of regions * 4 + # of regioServer * 2)/# of datanodes)+reserves(20%) 
+0

Уже сделано! не помогает. –

+0

попробуйте добавить значение ulimit –