文章目录
测试命令示例:
1. 写命令(上传文件)
cd
/home/hadoop/hadoop-2.9.2/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-client-jobclient-2.9.2.jar TestDFSIO -write -nrFiles 10 -fileSize 10(128)MB
[[[[[
sudo -uhdfs hadoop jar \
/home/hadoop/hadoop-2.9.2/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-tests.jar \
TestDFSIO \
-write \
-nrFiles 20 \
-size 128MB \
-resFile /tmp/TestDFSIO_results.log
cat /tmp/TestDFSIO_results.log
]]]]]]]
2.读取命令(读取文件)
cd
/home/hadoop/hadoop-2.9.2/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-client-jobclient-2.9.2.jar TestDFSIO -read -nrFiles 10 -fileSize 10(128)MB
3.删除缓存(删除文件)
cd
/home/hadoop/hadoop-2.9.2/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-client-jobclient-2.9.2.jar TestDFSIO -clean
4. 常见的集群监控指标
(1)load:反映系统忙闲程度
在Linux系统中,可以通过w,top和uptime命令来查看系统的load值,那么什么是load呢?系统的load被定义为特定时间间隔内运行队列中的平均线程数,load越大表明CPU越忙
如果一个线程满足以下条件,该线程就会处于运行队列中:
-没有处于I/O等待状态
-没有主动进入等待状态,也就是没有调用wait操作
-没有被终止当然load计算的算法较为复杂,因此,这种情况也不是绝对的。
[root@had01 ~]# uptime
11:48:19 up 6:54, 1 user, load average: 0.02, 0.02, 0.05
load average后面跟的三个值分别表示在过去1分钟、5分钟、15分钟内系统的load值。
(2)CPU利用率:反映CPU的使用和消耗情况
在Linux系统中,CPU的时间消耗主要在这几个方面:用户进程、内核进程、中断处理、I/O等待、Nice时间、
丢失时间、空闲等几个部分,而CPU的利用率则为这些时间所占用的总时间的百分比。
通过CPU的利用率,能够反映出CPU的使用和消耗情况。
[root@had01 ~]# top
top - 11:52:11 up 6:58, 1 user, load average: 0.01, 0.03, 0.05
Tasks: 370 total, 2 running, 365 sleeping, 3 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem: 1003432 total, 567608 used, 435824 free, 0 buffers
KiB Swap: 2097148 total, 45972 used, 2051176 free. 180796 cached Mem
-
用户时间(User Time): 即us所对应的列,表示CPU执行用户进程所占用的时间,通常情况下希望us的占比越高越好
-
系统时间(System Time: 即sy所对应该的列,表示CPU自内核态所花费的时间,sy占比比较高通常意味着系统在某些方面设计得不合理,
比如频繁的系统调用导致的用户态和内核态的频繁切换 -
Nice时间(Nice Time): 即ni所对应的列,表示系统在调整进程优先级的时候所花费的时间
-
空闲时间(Idle Time): 即id所对应的列,表示系统处于空闲期,等待进程运行,这个过程所占用的时间。
当然,我们希望id的占比越低越好 -
等待时间(Waiting Time):即wa所对应的列,表示CPU在等待I/O操作所花费的时间,系统不应该花费大量的时间来进行等待,
否则便表示可能有某个地方设计不合理 -
硬件中断处理时间(Hard Irq Time): 即hi对应的列,表示系统处理硬件中断所占用的时间
-
软件中断处理时间(Soft Irq Time): 即si对应的列,表示系统处理软件中断所占用的时间
-
丢失时间(Steal Time): 即st对应的列,实在硬件虚拟化开始流行后操作系统新增的一列,
表示被强制等待虚拟CPU的时间
(3) 磁盘剩余空间也是一个非常关键的指标,正常的日志写入以及系统I/O都依赖磁盘
1. 使用df命令可以查看
[root@had01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 18G 5.2G 13G 30% / //反应root用户18G空间 5.2G可用 已经使用30%
devtmpfs 481M 0 481M 0% /dev
tmpfs 490M 0 490M 0% /dev/shm
tmpfs 490M 14M 477M 3% /run
tmpfs 490M 0 490M 0% /sys/fs/cgroup
/dev/sda1 497M 119M 379M 24% /boot
2. 如果要查看具体目录所占用的内存空间,分析大文件所处位置,可以使用du命令来进行查看
[root@had01 /]# du -d 1 -h /home
2.1G /home/hadoop //说明home下只有一个Hadoop目录
2.1G /home
[root@had01 /]# cd home
[root@had01 home]# ls
hadoop
*-d指定了递归深度为1层,表示只列出指定目录的下一级目录文件大小,-h用来表示格式化输出。*
(4)磁盘I/O的繁忙程度也是一个重要的系统指标,对于I/O密集型的应用来说,比如数据库应用和分布式文件系统,
I/O的繁忙程度也一定程度上反映了系统的负载情况,容易成为应用程序性能的瓶颈。
可以使用iostat来查看系统的I/O状况
[root@had01 hadoop]# iostat
Linux 3.10.0-123.el7.x86_64 (had01) 10/23/2020 x86_64 (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
3.37 0.01 1.59 5.03 0.00 89.99
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 21.98 223.90 258.57 5760353 6652132
scd0 0.00 0.00 0.00 48 0
dm-0 80.84 179.20 144.16 4610360 3708660
dm-1 11.25 44.48 114.33 1144278 2941424
[root@had01 hadoop]# iostat -d //-d表示只查看磁盘情况
Linux 3.10.0-123.el7.x86_64 (had01) 10/23/2020 _x86_64_ (1 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 21.94 223.52 258.13 5760361 6652161
scd0 0.00 0.00 0.00 48 0
dm-0 80.70 178.90 143.91 4610360 3708660
dm-1 11.23 44.40 114.14 1144286 2941453
Device表示设备名称、tps表示每秒处理的I/O请求数、kB_read/s表示每秒从设备读取的数据量、
kB_wrtn/s表示每秒向设备写入的数据量、kB_read表示读取的数据总量、kB_wrtn表示写入的数据总量。
(5)内存使用
程序运行时的数据加载、线程并发、I/O缓冲等,都依赖于内存,可用内存的大小决定了程序是否能正常运行以及运行的性能。
通过free命令能够查看到系统的内存使用情况,加上-m参数表示以MB为单位:
[root@had01 hadoop]# free -m //-m表示以MB为单位
total used free shared buffers cached
Mem: 979 596 383 8 0 176
-/+ buffers/cache: 419 560
Swap: 2047 44 2003
Linux的内存包括物理内存Mem和虚拟内存Swap,下面介绍每一列的含义:
total----内存总共的大小
used----已使用的内存大小
free----可使用的内存大小
shared----多个进程共享的内存大小
buffers----缓冲区的大小
cached----缓存的大小