パフォーマンスがかなり「悪い」と想定している Hadoop クラスターがあります。ノードはかなり頑丈です.24 コア、60+G RAM など. また、基本的な linux/hadoop のデフォルト設定によって、hadoop がハードウェアを完全に利用できないようになっているのではないかと考えています。
ここに、私が真実であると思われるいくつかの可能性を説明した投稿があります。
lsof
root、hdfs、および自分自身としてnamenodeにログインして、の出力と設定を確認しようとしましたulimit
。これが出力です。設定が開いているファイルの数と一致しない理由を誰でも理解できます。
たとえば、ルートとしてログインしたとき。は次の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
私は、1 人のユーザーが 1024 個を超えるファイルを開くべきではないと想定していますが、の出力を見ると、lsof
1 人のユーザーが 7000 個以上のファイルを開いています。ulimit
との関係の理解に誤りがあった場合は、訂正してくださいlsof
。
どうもありがとう!