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

网站建设 牛商网技术提供怎样设置个人官方网站

网站建设 牛商网技术提供,怎样设置个人官方网站,未来做哪些网站致富,网站建设文献需要输出的数据 分区数量、最近分区、最老分区、表文件数量、表文件大小、表字段是否一样、统计日期 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/819959.html

相关文章:

  • 网站建设互联网推广网站备案哪里管
  • 门户网站有哪些类型家政网站模板下载
  • 百度建设公司网站赣州app开发
  • 科技公司网站模板下载创建企业营销网站包括哪些内容
  • 全栈网站开发商标设计网免费
  • 网站后台无法修改做挂的网站
  • 工商核名在哪个网站百度seo官网
  • 专门做免费东西试吃的网站沈阳犀牛云做网站怎么样
  • 晚上睡不着看点害羞的东西app拼多多关键词优化步骤
  • 如何用普通电脑做网站服务器网站导入链接
  • 邢台做网站的公司有那个小游戏免费入口
  • 枣庄市住房和城乡建设局网站办网站除了域名备案 还需要什么
  • 搜索引擎网站模板华强北商城官网入口
  • 有没有公司直招的网站郑州抖音seo推广
  • 兰州网站建设lst0931整站seo哪家服务好
  • 网站响应时间 标准食堂网站建设
  • 网站工程就业前景西安网站建设招骋
  • 软件开发和网站建设哪个好做网站公司 备案
  • 网站建设技术部职责外贸管理软件免费
  • 医院网站建设的重要性软件开发定制案例
  • 免费做网站的网址有哪些郑州网站设计专家
  • 专业零基础网站建设教学建站seo推广
  • 网站建设必须要虚拟主机吗wordpress免费教程视频
  • 西安wordpress建站购物网站功能设计
  • 网站建设的公司价格谷歌地图下载
  • 嘉兴建设工程造价信息网站fuzzz的wordpress模板
  • 域名就是网站名吗怎么评价网站做的好坏
  • 网站 团队微信做单网站
  • 提供邯郸做移动网站华泰保险公司官方网站
  • 模板网站是啥意思做网站推广话术