hdfs,hive大数据的存储管理和显示管理

1.Hive中内部表和外部表及其对应的hdfs路径

1.1 Hive内部表和外部表的区别

Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据 所在的路径, 不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除, 而外部表只删除元数据,不删除数据。这样外部表相对来说更加安全些,数据组织也更加灵活,方便共享源数据。

内部表
  1. 创建内部表

    create table test1(a string,b string)
    row format delimited
    fields terminated by '\t'  //指定分隔符
    stored as textfile  //指定文件格式;文件格式有Text File,Sequence File。
    location '/input/table_data'; //指定数据文件文件存储路径
    

2.装载内部表

    load data inpath '/input/data' into table test1; //将hdfs路径中的数据文件装载到test1表中。

内部表的数据加载会将hdfs路径/input/data下的数据文件转移到/input/table_data。如果删除test1表后,会将test1表的数据和元数据信息全部删除,最后/input/table_data下无数据,而且/input/data下也无数据因为/input/data下的数据在load data操作时已经转移到了/input/table_data。

外部表

1.创建外部表

    create external table etable (name string , age string)
    row format delimited
    fields terminated by '\t'  //指定分隔符
    stored as textfile  //指定文件格式;文件格式有Text File,Sequence File。
    location '/input/etable_data'; //指定数据文件文件存储路径

2.装载外部表

    load data inpath '/input/edata' into table etable; 

此时会把hdfs路径/input/edata下的数据转移到/input/etable_data下。若删除这个外部表则/input/etable_data下的数据不会被删除。但是/input/edata的数据被转移到/input/etable_data也没有了。

1.2查看hive表的详细信息

输出创建指定表或者视图的语句

  0: jdbc:hive2://hadoop1:11000> show create table etable;
  OK
  +-----------------------------------------------------------------+--+
  |                         createtab_stmt                          |
  +-----------------------------------------------------------------+--+
  | CREATE EXTERNAL TABLE `etable`(                                 |
  |   `name` string,                                                |
  |   `age` string)                                                 |
  | ROW FORMAT SERDE                                                |
  |   'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'          |
  | WITH SERDEPROPERTIES (                                          |
  |   'field.delim'='\t',                                           |
  |   'serialization.format'='\t')                                  |
  | STORED AS INPUTFORMAT                                           |
  |   'org.apache.hadoop.mapred.TextInputFormat'                    |
  | OUTPUTFORMAT                                                    |
  |   'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'  |
  | LOCATION                                                        |
  |   'hdfs://cluster:8020/input/etable_data'                       |
  | TBLPROPERTIES (                                                 |
  |   'transient_lastDdlTime'='1487775812')                         |
  +-----------------------------------------------------------------+--+

查看表结构

  0: jdbc:hive2://hadoop1:11000> desc formatted etable;
  OK
  +-------------------------------+-----------------------------------------------------------  -- +-----------------------+--+
  |           col_name            |                          data_type                          |          comment        |
  +-------------------------------+-------------------------------------------------------------  +-----------------------+--+
  | # col_name                    | data_type                                                   | comment               |
  |                               | NULL                                                        | NULL                   |
  | name                          | string                                                      |                       |
  | age                           | string                                                      |                       |
  |                               | NULL                                                        | NULL                        |
  | # Detailed Table Information  | NULL                                                        | NULL                  |
  | Database:                     | chenjie                                                     | NULL                  |
  | Owner:                        | root                                                        | NULL                  |
  | CreateTime:                   | Wed Feb 22 23:03:32 HKT 2017                                | NULL                  |
  | LastAccessTime:               | UNKNOWN                                                     | NULL                  |
  | Retention:                    | 0                                                           | NULL                  |
  | Location:                     | hdfs://cluster:8020/input/etable_data                       | NULL                  |
  | Table Type:                   | EXTERNAL_TABLE                                              | NULL                  |
  | Table Parameters:             | NULL                                                         | NULL                  |
  |                               | EXTERNAL                                                    | TRUE                  |
  |                               | transient_lastDdlTime                                       | 1487775812            |
  |                               | NULL                                                        | NULL                    |
  | # Storage Information         | NULL                                                           | NULL                  |
  | SerDe Library:                | org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe          | NULL                    |
  | InputFormat:                  | org.apache.hadoop.mapred.TextInputFormat                    | NULL                  |
  | OutputFormat:                 | org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat  | NULL                    |
  | Compressed:                   | No                                                          | NULL                  |
  | Num Buckets:                  | -1                                                          | NULL                  |
  | Bucket Columns:               | []                                                          | NULL                  |
  | Sort Columns:                 | []                                                          | NULL                  |
  | Storage Desc Params:          | NULL                                                        | NULL                  |
  |                               | field.delim                                                 | \t                    |
  |                               | serialization.format                                        | \t                    |
  +-------------------------------+-------------------------------------------------------------+-----------------------+--+
    原文作者:StoneHeart
    原文地址: https://www.jianshu.com/p/f68b53163903
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞