一、常用命令
- 1.查看文件路径
-
进入hive客户端:
dfs -ls 路径
dfs -ls oss://xxx/xxx/xxx/dt=2020-08-04
-
不进入hive客户端:
hadoop fs -ls 或者 hdfs dfs -ls
hadoop fs -ls oss://xxx/xxx/xxx/dt=2020-08-04
-
- 2.查看文件大小
-
进入hive客户端:
dfs -du -h 路径
dfs -du -h oss://xxx/xxx/xxx/dt=2020-08-04
-
不进入hive客户端:
hadoop fs -du -h 或者 hdfs dfs -du -h
-
- 3.修复表的分区
msck repair table table_name
- 4.下载HDFS到客户端
下载文件到客户端的当前路径下 hadoop fs -get 'oss://xxx/ordm.client_event_13_0000036199.json' .
- 5.批量获取数据库表的建标语句
编写脚本:vim hive_db_table_create.sh
执行脚本:#!/bin/bash #输入数据库 DB=$1 #先把表名 写入文件 hive -e "use $DB;show tables;" > /home/jialong.li/tmp/${DB}_tables.hql sleep 2 echo "use $DB;" cat /home/jialong.li/tmp/${DB}_tables.hql | while read eachline do # echo "--=========== db: $DB , table: $eachline ===========" # echo "--=========== db: $DB , table: $eachline ===========" >> /home/jialong.li/tmp/${DB}_table_create.hql # echo "--============ drop table if exists ${DB}.${eachline};" >> /home/jialong.li/tmp/${DB}_table_create.hql hive -e "show create table $DB.$eachline;" >> /home/jialong.li/tmp/${DB}_table_create.hql echo ";" >> /home/jialong.li/tmp/${DB}_table_create.hql echo "msck repair table ${DB}.${eachline}; " >> /home/jialong.li/tmp/${DB}_table_create.hql done #sed -i 's/opay-datalake/opay-datalake-test/' /home/jialong.li/tmp/${DB}_table_create.hql
./hive_db_table_create.sh test_dw_ods
test_dw_ods_table_create.hql 就是建标语句,可以打开复制到hive执行,也可以使用hive -f
在指定机器执行
参考文章:批量获取建表语句
二、常见问题
- 1.row_number 、rank 、dense_rank的区别
row_number:不管排名是否有相同的,都按照顺序1,2,3……n
rank:排名相同的名次一样,同一排名有几个,后面排名就会跳过几次
dense_rank:排名相同的名次一样,且后面名次不跳跃