我們通過這五個方面來進行監控:寫入hdfs檔案的大小、cpu使用率、記憶體使用率、namenode程序的cpu、記憶體使用率和datanode程序的cpu、記憶體使用率。
(1)hdfs檔案大小:
#!/bin/bash
##獲取寫入檔案的大小(單位為b)
path='******'
size=`hadoop fs -count $ | awk ''`
(2)cpu使用率:
使用top得到cpu的使用情況,再截取出cpu的相關使用率字串(由於使用top -n 1得到的結果是一樣的)
#!/bin/bash
##獲取cpu的使用率
cpu_user_used=`top -b -n 2 | grep cpu | tail -1 | awk ''`
(3)記憶體使用率:
使用量除以總量便可得到使用率
#!/bin/bash
##獲取記憶體的使用率
mem_used=`free | grep mem | awk ''`
(4)namenode程序的cpu、記憶體使用率:
namenode和datanode的程序我們使用jps得到程序的pid;由於grep會截取出secondarynamenode和namenode,這裡用grep -w進行全匹配
#!/bin/bash
##獲取namenode的cpu、記憶體使用率
namenode_pid=`jps | grep -w namenode | awk ''`
##echo $namenode_pid
namenode_use=`top -b -n 2 -d 3| grep $ | grep hdfs | tail -1 | awk ''`
(5)datanode程序的cpu、記憶體使用率:
執行指令碼,我們可以得到以下結果:#!/bin/bash
##獲取datanode的cpu、記憶體使用率
datanode_pid=`jps | grep datanode | awk ''`
##echo $datanode_pid
datanode_use=`top -b -n 2 -d 1| grep $ | grep hdfs | tail -1 | awk ''`
result="$b, $ $, $, $"
echo $resultecho $result >> result.txt
專案 仿寫bash程式
專案目標 在linux平台下仿寫一些命令的實現 1.輸出提示符資訊,類似於 stu host desktop 2.等待使用者輸入命令 3.完成簡單的解析 沒輸入命令情況 直接敲回車 輸入內建命令的情況 cd exit.輸入外接命令的情況 ls.的總體框架就是這樣的 要想實現上述功能我們要清楚linu...
ELK學習筆記之logstash將配置寫在多個檔案
我們用logsatsh寫配置檔案的時候,如果讀取的檔案太多,匹配的正則過多,會使配置檔案動輒成百上千行 可能會造成閱讀和修改困難。這時候,我們可以將配置檔案的輸入 過濾 輸出分別放在不同的配置檔案裡,甚至把輸入 過濾 輸出再次分離,放在不同的檔案裡。這時候,後期再需要增刪改查內容的時候,就容易維護了...
Linux專案 仿寫bash程式
include include include include include include include include include define num 20 define length 128 char oldpwd length 儲存上一次的工作路徑 輸出提示符 void print...