1:DevOps
大厂的运维基本都是通过运维工具赋能开发。实际的开发过程中,运维极少参与一个项目的上线以及日常的管理。这样对于开发的要求就上升一个层次,线上遇到相关问题就需要立马清楚相关问题的解决方案,以及相关命令执行的意义。从而快速精准的定位线上问题。接下来梳理一下日常工作过程中的常用命令,以备急用。
2:组件的常用命令
1:线上问题常用命令
jsatck 处理线上问题
##查找进程里面cpu占用最高的线程
top -Hp pid
##top 线程
printf "%x\n" 21742
## 建议使用root权限
jstack pid | grep 54ee
##查找大于800m的文件
find . -type f -size +800M
##查找大文件夹
du -hm --max-depth=2 | sort -nr | head -12
##查看nginx 请求最多ip
cat /***/nginx/logs/access.log|awk '{print $1,$2}'sort|uniq -c|sort -rn -k1|head -3
## nohup 启动线上任务
nohup java -jar publish_online.jar --server.port=8106 &>/opt/data/xxx_8106.log &
## 查找/opt/shell目录下以及子目录包含redis关键词
grep -ril "redis" /opt/shell/*
2:hadoop常用命令
##查看集群状态
hdfs dfsadmin -report
##查看目录下的文件
hadoop dfs -ls /user/hive/
## hdfs删除快照
hdfs dfs -deleteSnapshot /user/hive/hive-snapshot-20210509
下载数据块
hadoop fs -get /user/hive/warehouse/ods.db/table_name/part-00021-d20b1d30-dce1-4a38-a0c1-2b4ef68b7da8-c000.snappy.orc ./
#下载Yarn日志
yarn logs -applicationId application_1606201254014_1003 > application_1606201254014_1003.txt
#查看正在写入文件
hdfs fsck /user/events -openforwrite
#恢复文件租约
hdfs debug recoverLease -path /user/hive/warehouse/app.db/test_order_sample1/order_sample -retries 3
## 将edtis目录下二进制文件改为xml,可以伪装相关命令处理
hdfs oev -i edits_0000000001177152591-0000000001177162768 -o edits_0000000001177152591-0000000001177162768.xml
## 将xml改为 二进制文件,可以伪装相关命令处理
hdfs oev -i edits_0000000001177152591-0000000001177162768.xml -o edits_0000000001177152591-0000000001177162768 -p binary
##检查hdfs坏的数据块
hadoop fsck /user -files -blocks -locations
##删除坏的block
hadoop fsck -rm /user/spark/sparkstreamingcheckpoint/checkpoint-1517487380000
##统计文件下数据块
hdfs dfs -count /user/hive/warehouse/dws.db/*/
3:kafka常用命令
##518400000 为毫秒,转化一下即为天数
kafka-configs --zookeeper zkhost:2181 --alter --entity-name topic_name --entity-type topics --add-config retention.ms=518400000
##设置某一个kafka 对应的topic 永久存储
kafka-configs --zookeeper zkhost:2181 --alter --entity-name topic_name --entity-t