绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
hive基础建表(1)
2020-07-01 17:34:00

1、如何在虚拟机centou os上进入hive的编辑页面,并对其进行设置?


#1.进入cd
[root@hive Desktop]# cd
#2.进入hadoop
[root@hive ~]# cd/opt/modules/hadoop -2.5.-cdh5.3.6/
#3.hadoop下检验jps
[root@hive hadoop -2.5.-cdh5.3.6 ]# jps
#4.开启hadf和yarn的节点
[root@hive hadoop -2.5.-cdh5.3.6 ]# sbin/hadoop-daemon.sh start namenode
[root@hive hadoop -2.5.-cdh5.3.6 ]# sbin/hadoop-daemon.sh start datanode

[root@hive hadoop -2.5.-cdh5.3.6 ]# sbin/yarn-daemon.sh start resourcemanager
[root@hive hadoop -2.5.-cdh5.3.6 ]# sbin/yarn-daemon.sh start nodemanager
#5.hadoop下检验jps
[root@hive hadoop -2.5.-cdh5.3.6 ]# jps
#出现jps ,以及5上四个点就可以建表了
#6.进入hive
[root@hive hadoop -2.5.-cdh5.3.6 ]# cd ../hive -.13.1 -cdh 5.3.6/
#7.进入hive编辑器
[root@hive hive -.13.1 -cdh 5.3.6 ]# bin/hive
#8.开始编辑建表操作了
hive>

2、hive建表

1)在创建表之前首先另起窗口建立student.txt

vi students.txt进入后将数据录入,insert录入建,esc退出建,:wq保存并退出。

2)创建表

#1.创建数据库
hive>create database myhive1;
#2.使用数据库
hive>use myhive1;
#3.查询现在使用的数据库
hive>select current_database;
#4.创建表结构
hive>create table student(id int, name string, sex string, age int, department string) 
    >row format delimited fields terminated by ",";
#5.向表中加载数据
hive>load data local inpath 'students.txt' into table student;
#6.查询表
hive>select * from student;
#7.查询表结构
hive> describe student;
#8.查询详细的表结构
hive>describe formatted student;
#9.cast建立子表
hive>create table student_ctas as select * from student where id <95012;

3)创建表的几种方式

#语法
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]

创建表的8种方式

1.创建默认的内部表
create table student(id int, name string, sex string, age int,department string) row format delimited fields terminated by ",";
2.外部表 
create external table student_ext
(id int, name string, sex string, age int,department string) row format delimited fields terminated by "," location "/hive/student";
3.分区表
create external table student_ptn(id int, name string, sex string, age int,department string)
. . . . . . . . . . . . . . .> partitioned by (city string)
. . . . . . . . . . . . . . .> row format delimited fields terminated by ","
. . . . . . . . . . . . . . .> location "/hive/student_ptn";
#如果某张表是分区表。那么每个分区的定义,其实就表现为了这张表的数据存储目录下的一个子目录
如果是分区表。那么数据文件一定要存储在某个分区中,而不能直接存储在表中。
4.分桶表
0: jdbc:hive2://hadoop3:10000> create external table student_bck(id int, name string, sex string, age int,department string)
. . . . . . . . . . . . . . .> clustered by (id) sorted by (id asc, name desc) into 4 buckets
. . . . . . . . . . . . . . .> row format delimited fields terminated by ","
. . . . . . . . . . . . . . .> location "/hive/student_bck";
5.使用CTAS创建表
作用: 就是从一个查询SQL的结果来创建一个表进行存储
create table student_ctas as select * from student where id < 95012;
6.复制表结构
create table student_copy like student;

4)查看表

(1)查看表列表
查看当前使用的数据库中有哪些表:show tables;
查看非当前使用的数据库中有哪些表:show tables in myhive;
查看数据库中以xxx开头的表:show tables like 'student_c*'
(2)查看表的详细信息
查看表的信息: desc student;
查看表的详细信息(格式不友好):desc extended student;
查看表的详细信息(格式友好): desc formatted student;
查看分区信息:show partitions student_ptn;
(3)查看表的详细建表语句
show create table student_ptn;

Hive学习之路 (六)Hive SQL之数据类型和存储格式

Hive学习之路 (七)Hive的DDL操作

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Hive专区
创建时间:2020-07-01 14:09:32
Hive是一个基于Hadoop的数据仓库平台。通过hive,我们可以方便地进行ETL的工作。hive定义了一个类似于SQL的查询语言:HQL,能 够将用户编写的QL转化为相应的Mapreduce程序基于Hadoop执行。 Hive是Facebook 2008年8月刚开源的一个数据仓库框架,其系统目标与 Pig 有相似之处,但它有一些Pig目前还不支持的机制,比如:更丰富的类型系统、更类似SQL的查询语言、Table/Partition元数据的持久化等。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • markriver
    专家
戳我,来吐槽~