Hive(1):Hive基本命令行使用

Hive介绍

       Hive是一个在Hadoop中用来处理结构化数据的数据仓库基础工具,用来进行数据提取、转化、加载,可以存储、查询和分析存储在Hadoop中的大规模数据。它架构在Hadoop之上,总归为大数据工具,并使得查询和分析方便,hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行,Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单。

Hive基本使用-命令行

0#查询hive安装目录和进入 目录

[root@sparksvr1 bin]# whereis hive
hive: /home/qqq/apache-hive-1.2.2-bin/bin/hive.log /home/qqq/apache-hive-1.2.2-bin/bin/hive

[root@sparksvr1 bin]#cd /home/qqq/apache-hive-1.2.2-bin/bin

 1.#进入hive

$hive

#注意:hive命令行语句后面一定要加分号

2.#查看所有数据库

hive> show databases;

OK

aaa

bbb

default

demo251

dl

dong

Time taken: 2.602 seconds, Fetched: 6 row(s)

3.#创建数据库

hive>create database demo251;

4.#使用数据库

使用数据库的时候可以输入:use databasename;

hive> use demo251;

OK

Time taken: 0.114 seconds

5.#删除数据库

hive> drop database if exists demo251;

OK

Time taken: 1.595 seconds

6.#创建表

create external table if not exists users_test(

    id int comment  'id value',

    name string comment 'name value',

    email string comment 'email value',

    age int comment 'age value',

    address string comment 'address value')

ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

举例:

hive> create external table if not exists users_test(

    >     id int comment  'id value',

    >     name string comment 'name value',

    >     email string comment 'email value',

    >     age int comment 'age value',

    >     address string comment 'address value')

    > ROW FORMAT DELIMITED FIELDS TERMINATED BY ',';

OK

Time taken: 0.182 seconds

参考创建表的语句:
Create [EXTERNAL] TABLE [IF NOT EXISTS] table_name 
[(col_name data_type [COMMENT col_comment], ...)] 
[COMMENT table_comment] 
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] 
[CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC],...)]INTO num_buckets BUCKETS]
[ROW FORMAT row_format] 
[STORED AS file_format] 
[LOCATION hdfs_path]

CREATE TABLE 创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;用户可以用 IF NOT EXIST 选项来忽略这个异常。
    EXTERNAL 关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION),Hive创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据。
    如果文件数据是纯文本,可以使用 STORED AS TEXTFILE。如果数据需要压缩,使用 STORED AS SEQUENCE 。
有分区的表可以在创建的时候使用 PARTITIONED BY 语句。一个表可以拥有一个或者多个分区,每一个分区单独存在一个目录下。而且,表和分区都可以对某个列进行 CLUSTERED BY 操作,将若干个列放入一个桶(bucket)中。也可以利用SORT BY 对数据进行排序。这样可以为特定应用提高性能。

7.#插入数据(通过文件)

#文件名Users_test.txt

[root@master hivedata]# cat users_test.txt

1 胡盼 hupan@163.com 30 北京市立水桥

2 陈芬 chenpan@163.com 31 北京培新街

#通过文件直接导入数据

hive> load data local inpath '/home/cg/hivedata/users_test.txt' into table users_test;

Loading data to table demo251.users_test

OK

Time taken: 0.768 seconds

#重写数据

load data local inpath '/home/cg/hivedata/users_test.txt' overwrite into table users_test;

hive> load data local inpath '/home/cg/hivedata/users_test.txt' overwrite into table users_test;

Loading data to table demo251.users_test

OK

Time taken: 0.711 seconds

8.#查看表中数据

hive> select * from users_test;

OK

1 胡盼 hupan@163.com 30 北京市立水桥

2 陈芬 chenpan@163.com 31 北京培新街

Time taken: 0.265 seconds, Fetched: 2 row(s)

9.#删除表

hive> drop table users_test;

OK

10.#查看所有表

hive> show tables;

OK

aoehdptest251

atest

cdhtest116

cdhtest251

cdhtest251test1

hdptest116

hdptest251

streamsetstest

Time taken: 0.43 seconds, Fetched: 8 row(s)

11.#查看表信息

hive> desc streamsetstest;

OK

id                   int                                      

no_encrypt           string                                   

a                    string                                   

Time taken: 0.123 seconds, Fetched: 3 row(s)

12.#查看表的拓展信息

hive> describe formatted streamsetstest;

OK

# col_name             data_type            comment                

id                   int                                      

no_encrypt           string                                   

a                    string                                   

   

# Detailed Table Information    

Database:            default               

Owner:               anonymous             

CreateTime:          Thu Jan 14 13:57:26 CST 2021  

LastAccessTime:      UNKNOWN               

Retention:           0                     

Location:            hdfs://10.1.1.251:9000/hive/warehouse/streamsetstest  

Table Type:          MANAGED_TABLE         

Table Parameters:    

COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\"}

numFiles             1                   

numRows            1                   

rawDataSize          28                  

totalSize            29                  

transient_lastDdlTime 1610603867          

   

# Storage Information    

SerDe Library:       org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe  

InputFormat:         org.apache.hadoop.mapred.TextInputFormat  

OutputFormat:        org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat  

Compressed:          No                    

Num Buckets:         -1                    

Bucket Columns:      []                    

Sort Columns:        []                    

Storage Desc Params:    

serialization.format 1                   

Time taken: 0.2 seconds, Fetched: 32 row(s)

13.#退出

hive> quit;

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁宁可可

您的鼓励是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值