Hive骚操作

1.强制删除带有表的hive库:

drop  database  库名   cascade;

 

2.设置显示当前使用的hive库:

hive> set hive.cli.print.current.db=true;

 

3.hive客户端设置运行队列:

hive>set tez.queue.name=fast;

 

4.hive中删除分区操作:

 alter table fastdo_lte.tdlte_mro_locate_hour drop  if  exists  partition(city="HANGZHOU",sdate=2018080114);

  外部表删除数据的时候不能使用truncate,外部表的数据有hadoop管理。

 

5.向Hive分区中加载数据:

load data local inpath  '/home/daxin/jdata/cfg_grid10.csv' into table cfg_grid10 partition(ds="20180821",ct="HANGZHOU");

 

6.查看Hive中的表结构:

desc tdlte_mro_locate_hour;

desc formatted tdlte_mro_locate_hour;(格式化后的完整信息)

 

7.查看hive中的函数以及用法:

show functions ;(查看函数)

desc function extended upper ;(查看用法)

 

8.查看Hive中所有的设置信息:

 hive > set ;

 

9.Hive中几种常见的交互命令:

hive -help(查看命令用法)

 

10.Hive客户端中查看集群:

 !hdfs dfs -ls /

 如:!hdfs dfs -ls /apps/hive/warehouse/fastdo_lte.db;

 

11.Hive中不同创建表的方式:

  根据原始表提取字段,可以加快数据处理的效率

  create table if not exists wang_mro_locate_hour as select * from fastdo_lte.tdlte_mro_locate_hour limit 10000;

 

  创建一个相同表结构的表,但是此时只是表结构相同,没有数据

  create table if not exists wang_mro_locate_hour like fastdo_lte.tdlte_mro_locate_hour;

 

12.Hive内部表通过put导入数据后,通过sql查询不到对应的信息解决方式(只针对一级分区有效):

  第一种方式    在mysql元数据中没有分区的元数据  通过sql语句查询不出对应的信息

      dfs -mkdir -p /user/hive/warehouse/dept_part/day=20150913 ;

      dfs -put /opt/datas/dept.txt /user/hive/warehouse/dept_part/day=20150913 ;

       进行分区的修复  就是将分区信息添加到元数据中   修复后一切正常

       hive (default)> msck repair table dept_part ;

 

  第二种方式      在mysql元数据中没有分区的元数据  通过sql语句查询不出对应的信息

       dfs -mkdir -p /user/hive/warehouse/dept_part/day=20150914 ;

       dfs -put /opt/datas/dept.txt /user/hive/warehouse/dept_part/day=20150914 ;

       进行分区的修复  就是将分区信息添加到元数据中    修复后一切正常

       alter table dept_part add partition(day='20150914');

 

13.Hive中group by和having的使用:

  group by /having      查询结果的字段要么是group by 后的字段    要么是聚会函数的字段分组

     * where 是针对单条记录进行筛选

     * having 是针对分组结果进行筛选  经常与group by连用

 select city, sdate,count(1) from tdlte_mro_locate_hour group by city,sdate;

 

14.Hive客户端查询显示不带表名的列名:

   set hive.resultset.use.unique.column.names=false;

    set hive.cli.print.header=true;

 

15.Hive外部表多级分区数据迁移后,数据恢复:

  alter table tdlte_mro_locate_hour_old add if not exists partition(city='JINHUA',sdate='2018100108') location         '/apps/hive/warehouse/fastdo_lte.db/tdlte_mro_locate_hour_old/JINHUA/2018100108';

  

 16.Hive外部表数据源移动后,表和数据重新建立联系:

  alter table tdlte_mro_locate_hour_old set location '/apps/hive/warehouse/fastdo_lte.db/tdlte_mro_locate_hour_old';

  

 

 

 

你可能感兴趣的:(Hadoop集群圈)