为什么hbase中打开的文件太多

nfs0ujit  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(792)

我已经用hadoop配置了一个2节点集群并安装了hbase。它工作正常,我在hadoop中运行了一些基本的map reduce作业,我也能够在hbase中创建和列出一些表。但是,我在hdfs/hbase中几乎没有数据,并且没有正在运行的作业。过了一会儿,我开始 "Java.net.Socket: Too many open files" hbase日志出错。
我已经寻找了一些解决方案,但主要是关于增加限制的答案。但是我很好奇为什么有太多打开的文件。这个集群没有被任何其他程序使用,除了教程中的简单map reduce任务之外,我也没有运行过任何作业。
为什么会这样?
编辑
在andrzej建议之后,我运行了这个命令( lsof | grep java )我观察到在不同的端口中有很多连接等待关闭。这只是命令输出的几行

java      29872     hadoop  151u     IPv6          158476883      0t0       TCP os231.myIP:44712->os231.myIP:50010 (CLOSE_WAIT)
java      29872     hadoop  152u     IPv6          158476885      0t0       TCP os231.myIP:35214->os233.myIP:50010 (CLOSE_WAIT)
java      29872     hadoop  153u     IPv6          158476886      0t0       TCP os231.myIP:39899->os232.myIP:50010 (CLOSE_WAIT)
java      29872     hadoop  155u     IPv6          158476892      0t0       TCP os231.myIP:44717->os231.myIP:50010 (CLOSE_WAIT)
java      29872     hadoop  156u     IPv6          158476895      0t0       TCP os231.myIP:44718->os231.myIP:50010 (CLOSE_WAIT)

现在的问题是,如果连接现在没有用,为什么它们不自动关闭呢?如果它们没有自动中止,有没有办法用crontab脚本或类似的东西来关闭它们?
谢谢

iq0todco

iq0todco1#

... 我很好奇为什么打开的文件太多?。。。
hbase始终打开所有文件。这里有一些例子。如果有10个表,每个表有3个列族,每个列族平均有3个文件,每个区域服务器有100个区域,那么将打开1033*100=9000个文件描述符。这个数学没有考虑jar文件、temp文件等。
的建议值 ulimit 是10240,但您可能希望将其设置为与您的案例更匹配的值。

相关问题