当前位置: 首页 > wzjs >正文

dede网站栏目管理如何建设吉林百度seo公司

dede网站栏目管理如何建设,吉林百度seo公司,网站正在建设中永久,网站建设制作要学什么需要输出的数据 分区数量、最近分区、最老分区、表文件数量、表文件大小、表字段是否一样、统计日期 fenqu_num,last_fenqu,old_fenqu,table_num,table_size,hive_true,sta_time 思路: 输入,表名,分区开始时间,分区结束时间 在…

需要输出的数据

分区数量、最近分区、最老分区、表文件数量、表文件大小、表字段是否一样、统计日期

fenqu_num,last_fenqu,old_fenqu,table_num,table_size,hive_true,sta_time

思路:

输入,表名,分区开始时间,分区结束时间

在指定的分区时间内,要求获取出,需求字段的值。

我的hadoop版本是3

指定分区判断是否分区一致,任务切换前。任务切换后,双写的时候文件大小会不一样,所以仅仅对

hdfs dfs -ls hdfs://10.20.45.104:4007/apps/hive/warehouse/cfc.db/ods_regulatory_payment_instruction_df | grep 'dt=' | sort -r | head -n 1|awk -F ' ' '{print $NF}'

打印最后一列。就能获取path和分区路径。

代码test.sh

这里使用修改,改成目标端和测试端的就可以了(需要做互信,不然就得分发到各自的节点去跑)

con_address=hdfs://xx.xx.xx.104:4007
#con_address=hdfs://xx.xx.xx.7:8020

#!/bin/bash
#输入表名的文件
#输入分区开始日期,分区结束日期
input_table_path=$1
start_fenqu=$2
end_fenqu=$3#读取表文件
`kinit -kt /var/krb5kdc/emr.keytab hadoop/xx.xx.xx.107@TBDS-0xxxE`current_datetime=$(date)
echo "-------$current_datetime-------" > rs.txt
echo "输入为sh test.sh $input_table_path $start_fenqu $end_fenqu" >> rs.txt
echo "表名 最新分区 最老分区 分区个数 区间内总字节 区间内总文件个数" >> rs.txtcon_address=hdfs://xx.xx.xx.104:4007
#con_address=hdfs://xx.xx.xx.7:8020
while IFS= read -r table_namedo#0.获取hdfs的分区数据hdfs dfs -ls $con_address/apps/hive/warehouse/bigdata.db/$table_name | grep 'dt=' | sort -r |awk -F ' ' '{print $NF}' > 1_path_list.txt#1.获取所需计算的分区路径# 读取文件内容并逐行处理fenqu_allow_list=() while IFS= read -r line; do# 提取 dt= 后面的日期部分dt=$(echo "$line" | grep -oP 'dt=\K\d{8}')if [[ ! $dt =~ ^[0-9]{8}$ ]]; thenecho "错误: 文件中的日期格式不正确: $line"exit 1fi# 判断年份是否大于等于 start_fenqu 且小于等于 end_fenquif [[ $dt -ge $start_fenqu && $dt -le $end_fenqu ]]; thenfenqu_allow_list+=("$line")fidone < "1_path_list.txt"#2.统计分区个数fenqu_num=${#fenqu_allow_list[@]}sorted_paths=$(printf "%s\n" "${fenqu_allow_list[@]}" | sort -t\= -k2)#3.最新分区latest_path=$(echo "$sorted_paths" | tail -n 1)echo "最新分区$latest_path"#4.最老分区oldest_path=$(echo "$sorted_paths" | head -n 1)echo "最老分区$oldest_path"#5.统计分区总大小#6.统计分区文件总个数(不含文件夹)hdfs dfs -count $con_address/apps/hive/warehouse/bigdata.db/$table_name/*| grep 'dt=' > 2_path_list.txtfenqu_total_bytes=0fenqu_total_file_num=0#todo 读取全量txt,与list对比,获取对应的分区数据,计算总大小while IFS= read -r line; do# 使用空格分隔并获取第三个字段#hdfs的path路径field_path=$(echo "$line" | awk -F ' ' '{print $4}')#文件数,print 1是文件夹,没有取fenqu_file_num=$(echo "$line" | awk -F ' ' '{print $2}')#文件大小,字节fenqu_size=$(echo "$line" | awk -F ' ' '{print $3}')# 检查第三个字段是否在有效的列表中if [[ " ${fenqu_allow_list[@]} " =~ " ${field_path} " ]]; then# 如果第三个字段在列表中,打印该行fenqu_total_bytes=$((fenqu_total_bytes+$fenqu_size))fenqu_total_file_num=$((fenqu_total_file_num+$fenqu_file_num))fidone 	 < "2_path_list.txt"echo "此表的此区间的总数据量大小为$fenqu_total_bytes字节,文件个数为$fenqu_total_file_num"#6.统计文件总个数echo "分区个数是$fenqu_num"#for row in "${fenqu_allow_list[@]}"; do#echo "$row"#done
done < "$input_table_path"echo "$table_name $latest_path $oldest_path $fenqu_num $fenqu_total_bytes $fenqu_total_file_num" >> rs.txt#写到这里,就可以检测出来了,后面的是查表字段是否一致。我还没写..不过也够了,后面很简单#7.生成表字段md5#8.写入csv


输入文件inpute.txt(任何txt都可以,里面是表名)

ods_xxxx

dwd_xxx_xxx

运行

sh test.sh input.txt 20250206 20250209

http://www.dtcms.com/wzjs/236429.html

相关文章:

  • vs2013做简单的网站广告推广网站
  • 如何在国外网站上做外贸seo文章是什么意思
  • 国外建站推广西安seo顾问培训
  • 淘宝客做自己网站网络营销方式有哪些分类
  • 中企动力官网网站网络运营团队
  • 浪起网站建设淘宝关键词优化工具
  • 网站开发实战关键词优化设计
  • 广州专业网站建设公司企业员工培训总结
  • 怎么学网站开发2020年百度搜索排名
  • ppt主题大全素材河源市seo点击排名软件价格
  • 开发高端网站建设如何做好线上推广
  • wordpress文章怎么连接到其他网站seo关键词优化排名软件
  • 全国造价工程师管理系统官网seo优化排名是什么
  • 综合型网站建设seo免费视频教程
  • 网站不做301可以吗站长之家的seo综合查询工具
  • 网站还没上线 可以对网站备案吗2024年重大新闻简短
  • 广安哪里有做网站的公司免费顶级域名注册
  • php做网站如何配置域名的长沙网络推广小公司
  • 如何建立自己音乐网站百度手机关键词排名工具
  • 深圳专业网站建如何宣传推广自己的店铺
  • 网站开发课程设计报告设计一个简单的网页
  • 行业门户型网站越秀seo搜索引擎优化
  • 琪觅公司网站开发网站设计师
  • 网站建设总体目标seo是什么技术
  • wordpress 网站描述百度代发排名
  • 自己网站给别人网站做外链朋友圈广告30元 1000次
  • 外贸企业商城网站建设汕头seo快速排名
  • 福田住房和建设局网站淘宝关键词挖掘工具
  • 网站设计的素材网络公司品牌推广
  • 恶意推广网站刷外链工具