Hadoop系统监控脚本

2019-03-28 13:53|来源: 网络

有个需求,要在测试Hadoop上部署一个系统性能收集系统,结合了hadoop本身的sshkeygen特点,走了ssh协议,不建议在生产hadoop上部署,网络代价太大了。

下面是脚本内容。

可能会需要dstat-0.7.2-1.el5.rfx.noarch.rpm
部署时先执行init.sh
再修改allserver-collect.sh 的$HADOOP_HOME和dstat命令参数,现在的参数可是只输出时间的。
最后添加* * * * *  ~/monitor/allserver-collect.sh >/dev/null </dev/null 2>&1
到crontab

cd  ~/monitor
cat init.sh


#!/bin/sh
mkdir  ~/monitor


for i in `cat $HADOOP_HOME/conf/masters $HADOOP_HOME/conf/slaves|uniq` ;do
  mkdir ~/monitor/$i
  ssh $i "mkdir ~/monitor/"
  #scp dstat-0.7.2-1.el5.rfx.noarch.rpm $i:~/monitor
  #ssh $i "rpm -Uvh dstat-0.7.2-1.el5.rfx.noarch.rpm"
  ssh $i "nohup dstat -t --output ~/monitor/dstat.log 60 >/dev/null </dev/null 2>&1 &"
done

 

cat allserver-collect.sh
#!/bin/sh
#crond add "* * * * *  ~/monitor/allserver-collect.sh >/dev/null </dev/null 2>&1 "


HADOOP_HOME="$HADOOP_HOME"
serverlist=`cat $HADOOP_HOME/conf/masters $HADOOP_HOME/conf/slaves|uniq`
dstat_log="~/monitor/dstat.log"
for i in `echo $serverlist` ;do
    ssh $i "tail -n 1 $dstat_log">>~/monitor/$i/$i.dstat.log


done

更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

相关问答

更多
  • 监控linux的系统资源要在linux上装一个LR的服务,百度一下,网上多的是 吞吐量的话不需要,直接监控
  • 示例: #!/usr/bin/env python # encoding: utf-8 """ MonitorLog.py Usage: MonitorLog.py ... Monitor the log file -f log file -h help info python MonitorLog.py -f C:\monitor.log Created by zhoubo on 2011-08-29. """ import sys import os import getopt import subpr ...
  • 使用脚本提交 1.使用spark脚本提交到yarn,首先需要将spark所在的主机和hadoop集群之间hosts相互配置(也就是把spark主机的ip和主机名配置到hadoop所有节点的/etc/hosts里面,再把集群所有节点的ip和主机名配置到spark所在主机的/etc/hosts里面)。 2.然后需要把hadoop目录etc/hadoop下面的*-sit.xml复制到${SPARK_HOME}的conf下面. 3.确保hadoop集群配置了 HADOOP_CONF_DIR or YARN_CONF ...
  • 我和Ganglia一起工作Hadoop,是的,我在Ganglia上看到了很多Hadoop指标(容器,地图任务,vmem)。 事实上,Hadoop向Ganglio提交的具体报告更多的是百项指标。 hokamblogs Post就足够了。 我在主节点上编辑hadoop-metrics2.properties,内容是: namenode.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31 namenode.sink.ga ...
  • 可能有两个问题,我将在下面概述。 我还想指出这是一个非常常见的问题,你应该看看之前提出的Hadoop问题。 您的mapred.tasktracker.map.tasks.maximum可以在conf/mapred-site.xml设置为低。 如果在检查JobTracker时,您会看到几个待处理的任务,但只有少数正在运行的任务。 每个任务都是一个线程,因此您假设该节点上需要32个最大插槽。 否则,您的数据可能不会被分割成足够的块。 你在运行少量数据吗? 可能是您的MapReduce作业仅运行少量输入分割,因此 ...
  • Web控制台运行在40013, 这里提到。 The web console runs at 40013, mentioned here.
  • 您可以从mapred-site.xml文件中删除fs.default.name值 - 这应该只在core-site.xml文件中。 如果要在本地文件系统上以伪模式运行,通常通过在所谓的本地模式下运行来实现 - 通过将core-site.xml中的fs.default.name值设置为file:///(您目前已将其配置为hdfs:// localhost:54310)。 您看到的堆栈跟踪是辅助名称节点启动时 - 在“本地模式”下运行时不需要这样,因为没有用于2NN的fsimage或编辑文件。 修复core-s ...
  • 如果您编写如上所述的命令,该文件将被复制到用户的HDFS主目录,即/ home / username 。 另请参见: HDFS主目录 。 如果要将文件写入其他位置,则可以像在Linux文件系统中一样使用绝对路径名(以“/”开头)。 If you write the command like above, the file gets copied to your user's HDFS home directory, which is /home/username. See also here: HDFS H ...