hdfs命令占用100%cpu的问题

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

我有一个hdfs服务器,我目前正在流。
我还定期使用以下type命令点击此服务器以检查某些情况: hdfs dfs -find /user/cdh/streameddata/ -name *_processed 但是,我开始看到在top中监视时,这个命令占用了我大量的cpu:

cdh      16919     1 99 13:03 ?        00:43:45 /opt/jdk/bin/java -Xmx1000m -Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/var/log/hadoop -Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/opt/hadoop -Dhadoop.id.str=cdh -Dhadoop.root.logger=ERROR,DRFA -Djava.library.path=/opt/hadoop/lib/native -Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true -Xmx512m -Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.fs.FsShell -find /user/cdh/streameddata/ -name *_processed

这会导致其他应用程序暂停,并对我的应用程序整体产生巨大影响。
我的服务器是一个48核的服务器,我没有想到这是一个问题。
目前,我还没有在hadoop中设置任何额外的堆,所以它使用的是1000mb默认值。

inb24sb2

inb24sb21#

如果您认为堆可能太小,可以运行:

jstat -gcutil 16919 # process ID of the hdfs dfs find command

看看下面的价值 GCT (垃圾收集时间)查看相对于总运行时间,您在垃圾收集上花费了多少时间。
但是,如果目录/user/cdh/streameddata/有几十万个文件或数百万个文件,那么您可能是在合法地破坏您的系统。

相关问题