大数据运维常用命令

Linux

  1. 查找日志中的异常信息(大小写敏感),关键字:ERRORException
| grep -C 5 -E "ERROR|Exception" > ~/wangzhao/error.log
  • -C 5:把匹配行上下的周围 5 行也打印出来
  1. Exception数量分析:根据 Exception 类名统计异常出现次数
grep -E "ERROR|Exception" application.log | grep -o '[A-Za-z0-9_]*Exception' | sort | uniq -c | sort -nr
  • -E:正则匹配
  • -o:只输出匹配到的内容,而不是把匹配到的整行输出
  1. 文件拷贝(包含拷贝进度)
rsync -a --progress /opt/hadoop/hdfs/namenode/current/fsimage_0000000011110000000 ./
  1. grep 查找文件中是否包含某个 关键字
grep -nr --color=always "关键字" *.conf | nl
  • -n:行号
  • -r:递归查找子目录中的文件
  • nl:编号
  1. 批量查找配置文件中的关键字 :localhostfind``grep
find /my-dir -name "*.properties" -type f -exec grep -nH "localhost" --color=auto
  • find ... -type f:递归查找,递归查找 /my-dir 及内部的所有子目录
  • grep -nH-n显示行号,-H显示文件名(--with-filename
  1. 批量对多个文件内容进行查找替换(find sed
find /mydir -name "*.properties" -exec sed -i.bak 's|old|new|g' {} \;
  • find:搜索文件,返回文件名列表
  • -name:过滤指定关键字的文件
  • -exec:每个文件名作为入参执行一个命令
  • sed:替换命令
  • -i:就地替换
  • .bak:替换前自动备份,替换前创建一个 .bak 的文件来保存旧内容
  • 's|old|new|g'
  • {}:占位符,将find命令的返回结果循环传入到 -exec 后的命令中作为输入参数
  • \:每次替换一个,可以改成+表示攒批次替换,加快替换速度
  1. 字符串分割awk
cat a.txt | awk -F',' '{print $1}'
  • -F:分隔符(--field-separator=<分隔符>
  • print:控制台输出
  • $0:切割前原始字符
  • $1:分割后第一个元素
  • $NF:分割后最后一个元素(Number Of Field)
  • $(NF-1):倒数第二个元素

示例:

cat *.res | awk -F'/' '{print $1}' | sort | uniq | wc -l
  1. 获取当前执行脚本文件名
script_name=$(basename "$0")
echo "$script_name"
  • $0:脚本执行的文件名称,命令执行时填入的名称,示例:
    • sh /my-dir/dev/demo.sh => /my-dir/dev/demo.shell
    • sh ./demo.sh => ./demo.sh
    • sh ~/demo.sh => ~/demo.sh
  • basename:只保留当前文件名,不包含父路径,例如:/my-dir/dev/demo.sh => demo.sh
  1. 查看机器资源使用情况
# 磁盘使用
df -h
# 内存
free -h
# CPU使用情况
  1. du查看日志文件总大小
du -ch *.log
  • -c:展示 total
  • -h:人类可读格式(K、M、G)

Kafka

1. 抽样消费几条数据
kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 \  
  --topic user_events \
  --from-beginning \
  --max-messages 5
  1. 抽样消费几条数据,匹配成功后自动停止
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic t_shouyue_ops --from-beginning | grep -m 5 "the keyword"
  • -m:grep 的最大匹配数(Max),满足最大匹配数后终止
  1. 查看某个Topic的最新Offset
kafka-run-class.sh kafka.tools.GetOffsetShell \
  --broker-list localhost:9092 \
  --topic user_events \
  --time -1
  • --time -1:最新
  • --time -2:最早

MySQL

1. 创建用户并赋予某个库的权限
CREATE USER 'tom'@'localhost' IDENTIFIED BY 'tom';

GRANT ALL PRIVILEGES ON tom_database.* TO 'tom'@'localhost';

Hive

1. 查看表分区数据量和存储量
-- Hive中运行找到hdfs路径
desc formatted ods.ods_myk_personal_card;
-- 从hdfs中看各个分区的大小,注意分区数量较多需要过滤一下
hdfs dfs -du -h hdfs://localhost:8020/apps/hive/warehouse/my.db/dwd_ord_pay_ord_di/dt=2025-10*
  1. 查看 Hive Server2 连接数

netstat -ntpla | grep 10000 | grep -i ESTABLISHED | wc -l

这是 netstat 命令的常用选项组合,含义如下:

  • -n:以数字形式显示地址和端口号(不解析主机名、服务名等)。
  • -t:仅显示 TCP 连接。
  • -p:显示每个连接对应的进程 ID(PID)和程序名称(需要 root 权限才能看到其他用户的进程)。
  • -l:显示监听(LISTEN)状态的套接字(sockets)。
  • -a:显示所有连接和监听端口(包括 LISTEN、ESTABLISHED、TIME_WAIT 等各种状态)。
tcp    0    0 192.168.1.10:10000    203.0.113.5:54321    ESTABLISHED 1234/myapp

表示:

  • 协议 TCP
  • 第一个 0:接收队列(Recv-Q)中的字节数
  • 第二个 0:发送队列(Send-Q)中的字节数
  • 本机 IP 192.168.1.10 的 10000 端口
  • 与远程 IP 203.0.113.5 的 54321 端口建立了连接
  • 连接状态是 ESTABLISHED
  • 对应的进程 PID 是 1234,程序名为 myapp

附录

shell 并发执行模板

shell 并发执行模板

posted @ 2025-11-28 15:27  tonyabasy  阅读(0)  评论(0)    收藏  举报