Hive命令大全

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
大数据开发治理平台 DataWorks,不限时长
简介: Hive命令大全

命令行连接Hive

第一种方式:hive

> hive

第二种方式:beeline

beeline 
!connect jdbc:hive2://10.16.0.3:7001 

或者

beeline -u "jdbc:hive2://10.16.0.3:7001" -n hadoop -p hadoop

Linux命令行直接执行SQL-不进入Hive交互模式执行

hive -e "SQL" 执行单条语句
hive -f /home/root/insert.sql 执行sql文件,适合多条语句

设置Hive简单查询不执行MapReduce

简单的查询,就是只是select,不带count,sum,group by这样的,都不走map/reduce,直接读取hdfs文件进行filter过滤。这样做的好处就是不新开mr任务,执行效率要提高不少,但是不好的地方就是用户界面不友好,有时候数据量大还是要等很长时间,但是又没有任何返回。

修改方法

hive-site.xml里面有个配置参数hive.fetch.task.conversion

将这个参数设置为more,简单查询就不走map/reduce了,设置为minimal,就任何简单select都会走map/reduce

Hive关联Hbase表

Hive集成Hbase方法:http://blog.csdn.net/u010376788/article/details/50905476

hive创建外部表关联

可以关联hbase已有的表

  CREATE EXTERNAL TABLE hive_high_keyword(key string, keyword string, adCode string)   
    STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'  
    WITH SERDEPROPERTIES (  "hbase.columns.mapping"=":key,fn:keyword,fn:adCode"  )
    TBLPROPERTIES("hbase.table.name" = "ns1:high_keyword");

hive创建内部表关联

只能关联hbase中没有的表,删除hive表后hbase表也会删除,并且通过hive创建hbase的内部表,存储数据仍然存在hbse中

CREATE TABLE biz0728(key string, name string)   
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'  
WITH SERDEPROPERTIES (  "hbase.columns.mapping"=":key,fn:name"  )
TBLPROPERTIES("hbase.table.name" = "biz0728");

Hive创建外部表

create EXTERNAL TABLE u_info
(
    usrid STRING,
    age STRING,
    sex STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    LINES TERMINATED BY '\n';

Hive创建内部表

create  TABLE u_info
(
    usrid STRING,
    age STRING,
    sex STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    LINES TERMINATED BY '\n';

Hive表指定Parquet格式Snappy压缩算法

create EXTERNAL TABLE site_base_hive
(
  id string,
  site_code string,
  site_name string,
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    LINES TERMINATED BY '\n'
    STIRED AS parquet TBLPROPERTIES('parquet.compression'='SNAPPY');

DML

清空表中所有数据

truncate table tablename;

导入数据-Load

参考:http://blog.csdn.net/lifuxiangcaohui/article/details/40588929

加载本地文件数据

# 导入本地相对路径文件
load data local inpath 'a.txt' into table tableName;
# 导入本地绝对路径文件
load data local inpath '/home/root/a.txt' into table tableName;
# OverWrite
load data local inpath '/home/root/a.txt' overwrite into table tableName;
  • a.txt,文件路径默认是用户的根目录,如root用户,读取目录为/home/root/a.txt

加载HDFS文件数据

# 导入HDFS路径文件
load data inpath '/a.txt' into table tableName;
# 导入HDFS路径文件Overwrite
load data inpath '/a.txt' overwrite into table tableName;

Hive使用前指定Yarn队列

set mapred.job.queue.name=queue3;

多表同时插入

同时写入tableName2tableName3

FROM tableName1
INSERT OVERWRITE TABLE tableName2
   SELECT column1,colum2 
     GROUP BY year
INSERT OVERWRITE TABLE tableName3
   SELECT column1,count(1)
     WHERE column2 = 100

查询结果保存到新创建表

CREATE TABLE tableName
AS
SELECT column1,column2
FROM tableName2
相关实践学习
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
6月前
|
SQL 分布式计算 Shell
Hive教程(05)- Hive命令汇总(上)
Hive教程(05)- Hive命令汇总(上)
128 0
|
SQL 分布式计算 Hadoop
|
分布式数据库 Hbase
|
6月前
|
SQL 分布式计算 HIVE
Hive教程(05)- Hive命令汇总(下)
Hive教程(05)- Hive命令汇总(下)
45 0
Hive教程(05)- Hive命令汇总(下)
|
6月前
|
SQL 分布式计算 关系型数据库
Hive教程(02)- Hive安装
Hive教程(02)- Hive安装
57 0
|
7月前
|
SQL 分布式计算 关系型数据库
Hive-安装与配置(1)
Hive-安装与配置(1)
169 0
|
9月前
|
SQL 分布式计算 关系型数据库
hadoop集群hive 的安装
hadoop集群hive 的安装
83 0
|
SQL 分布式计算 Hadoop
Hive的安装与配置——第2关:Hive Shell入门基础命令
Hive的安装与配置——第2关:Hive Shell入门基础命令
968 0
Hive的安装与配置——第2关:Hive Shell入门基础命令
|
SQL 分布式计算 Java
|
SQL 分布式计算 Hadoop
Hive的安装与配置
Hive的安装与配置
299 0