20260311.一些常用的运维脚本
利用grep 快速匹配字符串到当前目录下面的所有恩济
grep -rn 'E+' *
快速kill掉yarn队列上的所有任务
yarn application -list | grep "WLM-RPA-CLEAN-ENTRY" | awk '{print $1}' | xargs -n 1 yarn application -kill
修改副本数量
sudo -u hdfs hdfs dfs -setrep -R 1 /
sudo -u hdfs hdfs dfsadmin -report | grep "Configured Capacity"
linux挂载samba
smbclient //ip地址/samba -U 用户名 -p端口
查询亚马逊的日志表的sql
select * from amzn_data_prd.amzn_api_logs where left(create_time , 7 ) > '2025-10-01' and req_params like '%amazonOrderId": "026-0248113-2719568%'
手搓日维表
SELECT
explode(
sequence(
to_date('2020-01-01'),
to_date('2026-12-31'),
interval 1 day
)
) AS dt
所有的发行版的rc.local 目前已经设置为卡机不一定自动启动了, 所以需要手动触发
并且要给执行位
chmod +x /etc/rc.d/rc.local
systemctl start rc-local
chmod +x /etc/rc.local
查看 hive的服务(提供JDBC的服务,不是metabase)
ps -ef | grep -i HiveServer2 | grep -v grep
测试trino环境是否正常
jdk_17/bin/java -jar trino-cli.jar --server http://127.0.0.1:6868 --catalog system --schema runtime << 'EOF'
SELECT node_id, http_uri FROM nodes;
EOF
查询表的字段数量
SELECT
COUNT(*)
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = 'amzn_data_prd' AND TABLE_NAME = '你的表名';
free -h 查看可用内存大小
df -h 查看挂载的目录
cat /proc/meminfo | grep MemAvailable
检索当前目录里面.txt结尾里面包含isDelete值的行
find . -type f ( -name '*.txt' ) -print0 | xargs -0 grep -nH 'IsDelete'
删除swagger的脚本处理工具, powershell
Get-ChildItem -Recurse -Filter .java | ForEach-Object {
false
.FullName | ForEach-Object {
if (line.Trim().StartsWith("@javax.annotation.Generated")) {
true
}
if (inAnnoBlock) {
if (Extra open brace or missing close braceinAnnoBlock = false }
return
}
if ($line -match '^\simport\s+io.swagger.v3.oas.annotations.media.Schema;') {
return
}
line
}
Set-Content -Path newLines
}
偷网站脚本模拟真实用户(会在当前的目录上创建一个文件夹, 用于存放相关文件并且会保留目录结构\ 可以抓下来相关的图片和文本)
wget -r -np -k -p -e robots=off -U "Mozilla/5.0" --wait=3 --random-wait https://别偷哦.com/
clickhouse查看表结构
SHOW CREATE TABLE .
;
增量更新观远时间宏
select * from amzn_data_prd.amzn_order where purchase_date BETWEEN '{{{first day of last month}}}' and '{{{today}}}'
美西时间转换(sparksql版本)
FROM_UNIXTIME(
SECONDDIFF (
REGEXP_REPLACE(SUBSTR([purchase_date], 1, 19), 'T', ' '),
'1970-01-01 00:00:00'
) - SECONDDIFF (FROM_UNIXTIME(0), '1970-01-01 00:00:00') - 3600 * CASE
WHEN MONTH(
REGEXP_REPLACE(SUBSTR([purchase_date], 1, 19), 'T', ' ')
) BETWEEN 3 AND 10 THEN 7
ELSE 8
END
)
备份镜像
docker save -o "IMAGE_NAME"
导入镜像
docker load -i "$INPUT_FILE"
HistoryServer 是否已启动?你可以用以下命令确认:
jps | grep HistoryServer
docker save "spark-cluster-jupyter" | gzip > "spark-cluster-jupyter.tar.gz"
gunzip -c my-image.tar.gz | docker load
lsb_release -a # 打印所有信息
第一初始化的时候使用脚本,记得Hadoop别用root用户 单独开一个用户使用就行
36 hdfs namenode -format -force -nonInteractive
yarn启动脚本
73 vim conf/core-site.xml
74 HADOOP_HOME/sbin/start-yarn.sh
hadoop启动脚本,jps可以查看 namenode datanode启动 这两个是最重要的
37 start-dfs.sh
超级好用压缩小脚本
tar -czf spark_$(date +%Y%m%d).tar.gz spark
如果你只是想把 HDFS 的 /spark-history 目录下的文件拷贝到本地路径 /opt/workspace/spark-events:
你可以使用 hadoop fs -copyToLocal 或 hdfs dfs -copyToLocal 命令:
hdfs dfs -copyToLocal /spark-history/* /opt/workspace/spark-events/
查看包中是否包含对应的日志信息
jar tf target/ispiritseller-1.0.0.jar | grep -E "log4j|slf4j|commons-logging"
SQL的逻辑进行去重
SELECT
t.*
FROM
(
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY asin, MONTH, marketplace ORDER BY id ASC) AS rn
FROM
dwd_sellerspirit_competitor_details
WHERE
is_delete = 0
) t
WHERE
t.rn > 1 -- 只保留每个str_value_sha256的第一条
spark 基于主键, 使用最新时间来进行去重
Dataset reqDf = reqRaw
.withColumn("rn", row_number().over(latestReqWin))
.filter("rn = 1") // 只要最新那一行
.drop("rn")
.cache();
WindowSpec latestReqWin = Window
.partitionBy("marketplace","asin")
.orderBy(col("req_create_time").desc());
pd展示不完全
一次性设置所有显示选项(推荐!)
pd.set_option('display.max_rows', None) # 显示所有行
pd.set_option('display.max_columns', None) # 显示所有列
pd.set_option('display.width', 1000) # 加宽显示区域
pd.set_option('display.max_colwidth', 50) # 单列最大宽度
重新打印转置后的数据
print(json_df.head(2).T)
集群提交的jar包要自己做好网络的共享不然提交失败
bin/spark-submit --class com.airscholar.spark.WordCountJob --master spark://192.168.116.129:7077 --deploy-mode cluster --driver-memory 512m --executor-memory 512m http://192.168.116.1:3000/spark-job-1.0-SNAPSHOT.jar
docker安装
sudo apt install ca-certificates curl gnupg lsb-release -y
sudo apt install docker.io
sudo mv ~/Downloads/gpg /etc/apt/keyrings/docker.gpg
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release -y
sudo mkdir -p /etc/apt/keyrings
curl -fsSL download.docker.com/linux/ubunt… |
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo
"deb [arch=(dpkg --print-architecture)
signed-by=/etc/apt/keyrings/docker.gpg\]
https://download.docker.com/linux/ubuntu
(lsb_release -cs) stable" |
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
echo "🧹 清理所有 exited 状态的容器..."
docker rm $(docker ps -aq -f status=exited) 2>/dev/null
echo "🧼 清理所有 dangling 镜像()..."
docker rmi $(docker images -f "dangling=true" -q) 2>/dev/null
清除git日志
git checkout --orphan tmp
www.cnblogs.com/wt645631686…
找当前目录下最大的 10 个文件/文件夹
du -ah . | sort -rh | head -n 10
查找 HDFS 上占用空间最大的路径
hdfs dfs -du -h / | sort -rn | head -n 20