#!/bin/sh

hdfs dfs -ls /user/hive/warehouse | awk '{print $8}' | awk -F "/" '{print $5}' >hivedb.txt
sed -i '1d' hivedb.txt
dbline=$(cat hivedb.txt | wc -l)
let dbline=dbline+1
if [ $dbline -gt 0 ]
  then
  for (( i = 1 ; i < $dbline ; i++ ))
  do
  hdb=$(sed -n "$i p" hivedb.txt | awk '{print $1}')
  hdfs dfs -du -h /user/hive/warehouse/$hdb | awk -F "/" '{print $6"\t"$1}'  >> hivetab.txt
  echo $i>>dbcount.txt
  done
else
   echo "Not Hive DB"
fi
tabline=$(cat hivetab.txt | wc -l)
let tabline=tabline+1
if [ $tabline -gt 0 ]
  then
  for (( j = 1 ; j < $tabline ; j++ ))
  do
   htab=$(sed -n "$j p" hivetab.txt | awk '{print $1}')
   htabsize=$(sed -n "$j p" hivetab.txt | awk '{print $2}')
   mysql -hbsch-M.db.sfdc.com.cn -ubsch -pBD_1234ch -Dbsch -e \
   "select distinct t.owner,b.begin_time,datediff(now(),b.begin_time) as diffdate
    from t_script s
    inner join t_task t on s.id=t.script_id
    left outer join alpha_user a on t.owner=a.emp_code
    left outer join t_job b on t.id=b.task_id
    where s.content like '%${htab}%'
    order by b.begin_time desc limit 1;" >task.txt
	diffdate=$(cat task.txt | awk 'NR==1{print int($3)}')
	echo $j>>tabcount.txt
	if [ $diffdate ]
	then
	 if [ $diffdate -gt 90 ]
	 then
        echo $htab "" $htabsize "" $(cat task.txt | awk 'NR==1{print $1"\t"$2"\t"$3}') >>tabgt90.txt
	 fi
	 if [ $diffdate -gt 0 ] && [ $diffdate -le 90 ]
	 then
		echo $htab "" $htabsize "" $(cat task.txt | awk 'NR==1{print $1"\t"$2"\t"$3}') >>tablt90.txt
	 fi
	fi
  done
else
   echo "Not Hive table"
fi

Linux记录-shell获取hdfs表查询mysql的更多相关文章

  1. Linux记录-shell获取hdfs used使用

    #!/bin/bash export JAVA_HOME=/app/jdk/jdk1.8.0_92 export HADOOP_HOME=/app/hadoop export HADOOP_CONF_ ...

  2. MySQL查询数据表中数据记录(包括多表查询)

    MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: sele ...

  3. linux中用shell获取昨天、明天或多天前的日期

    linux中用shell获取昨天.明天或多天前的日期 时间 -- :: BlogJava-专家区 原文 http://www.blogjava.net/xzclog/archive/2015/12/0 ...

  4. linux中用shell获取时间,日期

    linux中用shell获取昨天.明天或多天前的日期:在Linux中对man date -d 参数说的比较模糊,以下举例进一步说明:# -d, --date=STRING display time d ...

  5. python执行shell获取硬件参数写入mysql

    最近要获取服务器各种参数,包括cpu.内存.磁盘.型号等信息.试用了Hyperic HQ.Nagios和Snmp,它们功能都挺强大的,但是于需求不是太符,亦或者太heavy. 于是乎想到用python ...

  6. mysql数据库补充知识2 查询数据库记录信息之单表查询

    一 单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二 关键 ...

  7. MYSQL数据类型 表基本操作 表记录增删改 单表查询

    一.数据类型 常用的数据类型如下: 整数:int,bit 小数:decimal 字符串:varchar,char 日期时间: date, time, datetime 枚举类型(enum) 特别说明的 ...

  8. MySQL中 如何查询表名中包含某字段的表 ,查询MySql数据库架构信息:数据库,表,表字段

    --查询tablename 数据库中 以"_copy" 结尾的表 select table_name from information_schema.tables where ta ...

  9. 巨蟒python全栈开发数据库攻略3:行记录的操作&单表查询3

    1.数据行的增删改 2.单表查询 select&where条件 3.group by&having&order by&limit

随机推荐

  1. MT【290】内外圆求三角最值

    求$\sqrt{\dfrac{5}{4}-\sin x}+2\sqrt{\dfrac{9}{4}+\cos x-\sin x}$的最小值. 提示:$\sqrt{\dfrac{5}{4}-\sin x} ...

  2. 「CodeForces - 717E」Paint it really, really dark gray (dfs)

    BUPT 2017 summer training (for 16) #1H 题意 每个节点是黑色or白色,经过一个节点就会改变它的颜色,一开始在1节点.求一条路径使得所有点变成黑色. 题解 dfs时 ...

  3. Configure an PPTP Server on Debian

    安装PPTP apt-get update apt-get upgrade apt-get install iptables pptpd vim 设置并修改配置文件vim /etc/pptpd.con ...

  4. linux中$#,$0,$1,$2,$@,$*,$$,$?的含义

    $# 是传给脚本的参数个数$0 是脚本本身的文件名$1 是脚本后接的第一个参数$2 是脚本后接的第二个参数$@ 是传给脚本的所有参数列表,"$1" "$2" & ...

  5. 【SPOJ】Power Modulo Inverted(拓展BSGS)

    [SPOJ]Power Modulo Inverted(拓展BSGS) 题面 洛谷 求最小的\(y\) 满足 \[k\equiv x^y(mod\ z)\] 题解 拓展\(BSGS\)模板题 #inc ...

  6. bzoj4383(拓扑排序)

    给定一个长度为n的正整数序列a,每个数都在1到10^9范围内,告诉你其中s个数,并给出m条信息,每条信息包含三个数l,r,k以及接下来k个正整数,表示a[l],a[l+1],...,a[r-1],a[ ...

  7. [HNOI2015]菜肴制作(拓扑排序)

    知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为菜肴预估的质量从高到低给予1到N的顺序编号,预估质量最高的菜肴编号为1. 由于菜肴之间口味搭 ...

  8. 利用mysqldump命令导出为csv格式文件

    解决方法: 先导出为txt文件,其内容是以逗号“,”分隔的,得到txt文件后,再自行处理为.csv或者.xls文件. 参数说明: -t, --no-create-info   Don't write ...

  9. KMP 求最小循环节

    转载自:https://www.cnblogs.com/chenxiwenruo/p/3546457.html KMP模板,最小循环节   下面是有关学习KMP的参考网站 http://blog.cs ...

  10. CF528D Fuzzy Search

    题意:给定k,只含有ACGT的字符串S和T,求T在S中出现了多少次. 字符匹配:如果S的[i - k, i + k]中有字符x,那么第i位可以匹配x. 解: 首先预处理:f[i][j]表示S的第i位能 ...