很多用户都有这样的需求:实时监控某个topic各分区在broker上所占的磁盘空间大小总和.Kafka并没有提供直接的脚本工具用于统计这些数据. 如果依然要实现这个需求,一种方法是通过监控JMX指标得到分区当前总的日志大小,然后手动相加所有分区的值得出:另一种方法就是使用1.0.0引入的DescribeLogDirsRequest请求.本文即介绍如何通过Java API获取某broker上某topic总的空间大小,代码如下: package huxihx; import org.apache.k…
Kafka官方提供了两个脚本来管理topic,包括topic的增删改查.其中kafka-topics.sh负责topic的创建与删除:kafka-configs.sh脚本负责topic的修改和查询,但很多用户都更加倾向于使用程序API的方式对topic进行操作.   上一篇文章中提到了如何使用客户端协议(client protocol)来创建topic,本文则使用服务器端的Java API对topic进行增删改查.开始之前,需要明确的是,下面的代码需要引入kafka-core的依赖,以kafka…
查询Mysql数据库所有数据库所占磁盘空间大小: /,),' MB') as data_size, concat(truncate(sum(index_length)//,),'MB') as index_size from information_schema.tables group by TABLE_SCHEMA order by data_length desc; 查询某个数据库的所有表所占存储空间大小:只要加个where条件:where TABLE_SCHEMA = '数据库名称' /…
1.获取所有topic package com.example.demo; import java.io.IOException; import java.util.List; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.ZooKeeper…
一.查看数量 # 查看当前目录下的文件数量(不包含子目录中的文件) ls -l|grep "^-"| wc -l # 查看当前目录下的文件数量(包含子目录中的文件) 注意:R,代表子目录 ls -lR|grep "^-"| wc -l # 查看当前目录下的文件夹目录个数(不包含子目录中的目录),同上述理,如果需要查看子目录的,加上R ls -l|grep "^d"| wc -l # 查询当前路径下的指定前缀名的目录下的所有文件数量 .例如:统计所…
df -Th查看磁盘空间占用情况 [root@IntelRC-Nginx-N023 ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/centos-root xfs 40G 35G 5.4G 87% / devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev tmpfs tmpfs 3.9G 56K 3.9G 1% /dev/shm tmpfs tmpfs 3.9G 427M 3.4G…
java程序连接到一个需要Kerberos认证的kafka集群上,消费生产者生产的信息,kafka版本是2.10-0.10.0.1: Java程序以maven构建,(怎么构建maven工程,可去问下度娘:“maven工程入门示例”) 先上pom.xml文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"…
目前Kafka并没有提供直接的工具来帮助我们获取某个topic的当前总消息数,需要我们自行写程序来实现.下列代码可以实现这一功能,特此记录一下: /** * 获取某个topic的当前消息数 * Java 8+ only * * @param topic * @param brokerList * @return */ public static long totalMessageCount(String topic, String brokerList) { Properties props =…
碰到了有人问起这个问题,目前java consumer没有利用OffsetAndMetadata中的metadata字段记录提交的时间,故直接通过java consumer来查询是不行,我们需要直接读取__consumer_offsets,代码如下: public static long lastCommitTimestamp(String groupName, String bootstrapServers) { int partition = Math.abs(groupName.hashC…
测试的时候向数据库中插入了大量的数据,测试完成后删除了测试用户以及其全部数据,但是数据文件却没有缩小.经查阅资料之后发现这是 Oracle “高水位”所致,那么怎么把这些数据文件的大小降下来呢?解决办法如下: 概念: 表空间的相关知识请见这里,详细的介绍了 Oracle 数据库的存储结构. 高水位:High Water Mark (HWM),是段(Segment)的一个指标,界定了段(Segment)曾经配置过的 block 水位. 据说,随着数据的 insert,所使用段(Segment)的数…
所需要配置的参数:  Configuration conf = new Configuration();   conf.set("fs.defaultFS", "hdfs://hadoop2cluster");   conf.set("dfs.nameservices", "hadoop2cluster");   conf.set("dfs.ha.namenodes.hadoop2cluster", &qu…
select TABLE_NAME, concat(truncate(data_length/1024/1024,2),' MB') as data_size, concat(truncate(index_length/1024/1024,2),' MB') as index_size from information_schema.tables where TABLE_SCHEMA = '库名' group by TABLE_NAME order by data_length desc;…
public String GetDeviceMAC() { String strMacAddr = null; try { // 获得IpD地址 InetAddress ip = getLocalInetAddress(); byte[] b = NetworkInterface.getByInetAddress(ip) .getHardwareAddress(); StringBuffer buffer = new StringBuffer(); for (int i = 0; i < b.…
维护Linux服务器正常使用需要经常删除Linux系统运行产生的系统日志和业务环境产生的debug日志文件.安装包等.本文主要描述如何通过脚本实现清理业务环境产生的 debug日志文件和上传或备份的打包文件.原因是手工查找删除不同业务环境下的debug日志和安装包文件比较费时. 问题现象 df -h命令查看磁盘空间使用率即将达到100% 问题分析 文件占用或者已删除文件由于使用进程占用导致未释放.通常是第一种原因. 问题解决 1.利用df命令确定将磁盘空间即将耗尽的文件系统对应的目录. linu…
先贴命令:du -m --max-depth=1或du -h --max-depth=1du:用于统计linux中文件或目录所占磁盘空间的大小du参数######-m:以M为单位展示查询结果-h:以K.M.G为单位展示查询结果,提高信息可读性--max-depth=1:其中,数字“1”是指查询结果中最多显示的目录层数,这里指最多显示一层目录 查看磁盘空间#df -mFilesystem                   1M-blocks  Used Available Use% Mounte…
问题:随着App的不断运行,发现所占磁盘空间越来越大 分析:应该是网络下载中的缓存,包括利用SDWebImage产生的.和下载单个文件被取消后的缓存 验证:查看App目录中的Tmp(系统存放未下载完成的文件的缓存的地方),cache(SDWebImage 存放缓存的地方) 如上图,下载文件缓存有374M:如下图,SDWebImageCache有20M 最后附上检测文件大小的方法 - (float ) folderSizeAtPath:(NSString*) folderPath{ NSFileM…
du 显示文件或目录所占磁盘空间总量 相关选项 -s 显示文件或者整个目录的大小,默认单位为KB -b 指定单位为byte -h     人类友好读方式显示 -m 指定单位为 MB…
Hadoop2.6.0的所有Java API都在 http://hadoop.apache.org/docs/r2.6.0/api/overview-summary.html 里. 下面实现一个利用Java API创建HDFS文件的例子.参照<实践Hadoop>(刘鹏)  书中的第50页. 利用FileSystem.create(Path f)实现 第一步,先写java代码, 命名为MyCreateFile.java 注意,一定要放在hadoop的根目录下 import org.apache.…
1.建立行政区规划清单表 use edw; drop table if exists dim_prov_city_adcode; create table if not exists dim_prov_city_adcode ( prov_nm ), city_nm ), county_nm ), prov_code ), county_code ), adcode ), alias_nm ) ) ENGINE=InnoDB default CHARSET=utf8; --alter table…
1. 实验环境 CPU:4 内存:8G ip:192.168.0.187 开启iptables防火墙 关闭selinux java >=1.5 使用yum方式安装的java,提前配置好JAVA_HOME环境变量 vim /etc/profile.d/java.sh #!/bin/bash export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk # 路径根据实际情况而定 export PATH=$PATH:$JAVA_HOME/bin source /et…
kafka内部所有的实现都是通过TopicCommand的main方法,通过java代码调用API,TopicCommand.main(options)的方式只能打印到控制台,不能转换到一个list. 下面讲解下如何转换为list: 1.查看主题(Topic) [命令方式]:bin/kafka-topics.sh --list --zookeeper 192.168.2.212:2181/kafka [JAVA API方式]: public static void main(String[] a…
需要把磁盘空间显示在页面上,这样就不用去服务器查看了,方便 两个办法 File file = new File("D:"); long totalSpace = file.getTotalSpace(); long freeSpace = file.getFreeSpace(); long usedSpace = totalSpace - freeSpace; System.out.println("总空间大小 : " + totalSpace / 1024 / 1…
MySQL主从由于ibdata1占满磁盘空间-->主从失效 因为设置了innodb_file_per_table = 1,ibdata1依旧撑爆占满磁盘空间 主从断的时候,IO线程在连接,SQL线程断掉. 想要了解为何ibdata1增长那么大? 个人这么理解的:主从断掉,IO线程在,获取到了事件事物的更新,而SQL线程断掉,导致产生大量的undo,撑爆了ibdata1. 最终验证发现,确实是undo占满了ibdata1. 下载一个小工具:py_innodb_page_info.py  本人网盘下…
经常会遇到这样的场景:测试环境磁盘跑满了,导致系统不能正常运行!此时就需要查看是哪个目录或者文件占用了空间.常使用如下几个命令进行排查:df, lsof,du. 通常的解决步骤如下:1. df -h 查看是哪个挂在目录满了,常常是根目录/占满 [root@test ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 50G 25G 22G 54% / tmpfs 7.8G 0 7.8G 0% /dev/shm 2. 快速定…
lsof简介 在终端下输入lsof即可显示系统打开的文件,因为 lsof 需要访问核心内存和各种文件,所以必须以 root 用户的身份运行它才能够充分地发挥其功能. 直接输入lsof部分输出为: 每行显示一个打开的文件,若不指定条件默认将显示所有进程打开的所有文件. lsof输出各列信息的意义如下: COMMAND:进程的名称 PID: 进程标识符 USER:进程所有者 FD: 文件描述符,应用程序通过文件描述符识别该文件.如cwd.txt等 TYPE:文件类型,如DIR.REG等 DEVICE…
获取磁盘占用情况(Linux/Mac下有效) import ( "syscall" ) type DiskStatus struct { All uint64 `json:"all"` Used uint64 `json:"used"` Free uint64 `json:"free"` } // disk usage of path/disk func DiskUsage(path string) (disk DiskSta…
方法一:利用System.IO.DriveInfo.GetDrives方法来获取 /// /// 获取指定驱动器的空间总大小(单位为B) /// /// 只需输入代表驱动器的字母即可 (大写) /// public static long GetHardDiskSpace(string str_HardDiskName) { long totalSize= new long(); str_HardDiskName=str_HardDiskName +":\\"; System.IO.D…
使用 C# 获取磁盘空间的方法: public async static Task<int> GetFreeSpace() { StorageFolder localFolder = ApplicationData.Current.LocalFolder; var properties = await localFolder.GetBasicPropertiesAsync(); var filteredProperties = await properties.RetrieveProperti…
使用Kafka的同学都知道,我们每次创建Kafka主题(Topic)的时候可以指定分区数和副本数等信息,如果将这些属性配置到server.properties文件中,以后调用Java API生成的主题将使用默认值,先改变需要使用命令bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic my-topic --config max.message.bytes=128000显示的修改,我们也希望将此过程在Producer调用之前通…
etcd 和zookeeper 很像,都可以用来做配置管理.并且etcd可以在目前流行的Kubernetes中使用. 但是etcd 提供了v2版本合v3的版本的两种api.我们现在分别来介绍一下这两个版本api的使用. 一.Etcd V2版本API 1.java工程中使用maven引入 etcd v2的java api操作jar包 <dependency> <groupId>io.netty</groupId> <artifactId>netty-all&l…