大数据多集群数据作业和集群状态监控

目前手里面有四套大数据集群的作业需要维护,分别属于不同的客户,我同岗位的兄弟离职后,所有的数据作业都落到我头上了,公司也不招人了。开发新的数据作业倒没有什么问题,就是客户叫我补数的时候,头比较大,当天的直接重跑就是了,尤其是要补很久以前的数据,还要去查看代码,找出作业之间的依赖。调度平台也不尽相同。如果能提前发现问题,当天问题当天解决,客户不找我补数,那不是有更多的时间摸鱼啦?

1.需要监控的组件盘点

针对Apache 原生部署的集群,重点监控对象 hdfs yarn ,挂的概率最大就是这两大组件,然后就是kafka、 zookeeper、Azkaban,这三个组件的监控比较简单,主要监听程序端口是否开启。针对cdh集群设置组件故障重启,利用cdh数据库监听集群组件状态。所有集群监听yarn上运行的作业。监控程序语言选择java,之前用python写过一些简单的监控程序,但是部署实在是很麻烦。

2.Hdfs 监控

主要是监控 namenode 、datanode 以及hdfs使用情况。 这里主要是用hadoop的api实现的。

public static String hdfsCheck() throws IOException{
   
   
    Configuration conf = new Configuration();
    conf.set("fs.defaultFS", "hdfs://xxxxx:9820"); //  Namenode 地址和端口
    // 创建 HdfsAdmin 实例
    DistributedFileSystem dfs;
    try {
   
   
        dfs = (DistributedFileSystem) FileSystem.get(conf);
        dfs.getServerDefaults().getReplication();
    }catch (Exception e){
   
   
        conf.set("fs.defaultFS", "hdfs://XXXX:9820"); //  HA Namenode 地址和端口
        dfs = (DistributedFileSystem) FileSystem.get(conf);
    }
    String warn = "";
    try {
   
   
        // 创建 HDFS 文件系统实例
        if (dfs.isInSafeMode()) {
   
   
            warn = "namenode is in safe mode";
        }
        long totalCapacity = dfs.getStatus().getCapacity(); // 总容量
        long usedCapacity = dfs.getStatus().getUsed();     // 已用容量
        long remainingCapacity = dfs.getStatus().getRemaining(); // 可用容量
        double usagePercentage = (double) usedCapacity / totalCapacity * 100;
        // 将字节转换为吉字节
        double totalCapacityGB = totalCapacity / (1024.0 * 1024 * 1024);
        double usedCapacityGB = usedCapacity / (1024.0 * 1024 * 1024);
        double remainingCapacityGB = remainingCapacity / (1024.0 * 1024 * 1024);
        // 输出容量信息
        log.info(String.format("Total Capacity: %.2f GB", totalCapacityGB));
        log.info(String.format("Used Capacity: %.2f GB", usedCapacityGB));
        log.info(String.format("Remaining Capacity: %.2f GB", remainingCapacityGB));
        log.info(String.format("Usage Percentage: %.2f%%", usagePercentage));

        // 检查使用率是否超过 90%
        if (usagePercentage > 90) {
   
   
            warn=warn+"Warning: HDFS usage exceeds 90%!";
        }

        // 检查使用率是否超过 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值