只使用shell脚本方式实现,把一个tar包解压,然后将里面包含一周的数据文件进行上传,大于10M上传到hdfs,小于则做hbase映射

下面是一个使用shell脚本实现将tar包解压并上传包含一周数据文件的示例:

#!/bin/bash

# 解压tar包
tar -xf your_tar_file.tar.gz

# 设置起始日期和结束日期
start_date=$(date -d "1 week ago" "+%Y-%m-%d")
end_date=$(date "+%Y-%m-%d")

# 遍历数据文件
for file in your_tar_file/*.txt; do
    file_size=$(stat -c%s "$file")
    
    # 判断文件大小
    if [ "$file_size" -gt 10485760 ]; then
        # 文件大于10M,上传到hdfs
        hdfs dfs -put "$file" /path/on/hdfs/
    else
        # 文件小于等于10M,做hbase映射
        hbase put your_hbase_table "$file" column_family:data "$file"
    fi
done

请注意,上述示例假设您的tar包已经存在,并且其中的数据文件以.txt为后缀。您需要将your_tar_file.tar.gz替换为您的tar包的实际路径。同样,您需要根据实际情况修改HDFS路径和HBase相关的命令。

此脚本使用stat -c%s命令获取文件大小,大小以字节为单位。在此示例中,文件大小超过10M时,使用hdfs dfs -put命令将其上传到HDFS;否则,使用hbase put命令将其插入到HBase表中。

请根据您的具体需求和环境进行适当调整。

希望对您有所帮助!如果您还有其他问题,请随时提问。