我有一个我们假设执行非常“糟糕”的 hadoop 集群。节点非常强大.. 24 核,60+G RAM ..etc。我们想知道是否有一些基本的 linux/hadoop 默认配置会阻止 hadoop 充分利用我们的硬件。
这里有一篇文章描述了一些我认为可能是真的可能性。
我尝试以 root、hdfs 和我自己的身份登录 namenode,并尝试lsof
查看ulimit
. 这是输出,谁能帮我理解为什么设置与打开的文件编号不匹配。
例如,当我以 root 身份登录时。lsof
看起来像这样:
[root@box ~]# lsof | awk '{print $3}' | sort | uniq -c | sort -nr
7256 cloudera-scm
3910 root
2173 oracle
1886 hbase
1575 hue
1180 hive
801 mapred
470 oozie
427 yarn
418 hdfs
244 oragrid
241 zookeeper
94 postfix
87 httpfs
...
但是当我检查ulimit
输出时,它看起来像这样:
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 806018
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
我假设,一个用户打开的文件不应超过 1024 个,但是,当您查看 的输出时lsof
,一个用户打开了 7000 多个文件,谁能帮忙解释这里发生了什么?ulimit
如果我在理解和之间的关系时犯了任何错误,请纠正我lsof
。
非常感谢!