清理脚本
#!/bin/bash
BASE_DIR="/apps/hbase/data/data"
DAYS_TO_KEEP=90
LOG_FILE="/var/log/hbase_datepart_cleanup.log"
TEST="test"
CUTOFF_DATE=$(date -d "-$DAYS_TO_KEEP days" +%Y%m%d)
hdfs dfs -ls -R $BASE_DIR | grep '^d' | while read -r line; do
DIR_NAME=$(echo "$line" | awk '{print $8}')
if [[ "$DIR_NAME" =~ ^$BASE_DIR/${TEST}_[a-zA-Z0-9]+_hd/[0-9]{8}$ ]]; then
DIR_DATE=$(basename "$DIR_NAME")
if [ "$DIR_DATE" -lt "$CUTOFF_DATE" ]; then
echo "Deleting directory: $DIR_NAME" | tee -a $LOG_FILE
sudo -u hbase hdfs dfs -rm -r -skipTrash "$DIR_NAME"
else
echo "Skipping recent directory: $DIR_NAME" | tee -a $LOG_FILE
fi
fi
done
sudo -u hdfs hdfs balancer