hive元数据库理解和初级实操

1. hive元数据库

  1. hive创建一张表,关联HDFS上存储的结构化数据,那么这张表存储在哪里?
    其实hive会把用户创建的数据库表等抽象的信息专门存储在一个数据库中,这个数据库就是-------元数据库。
  2. HDFS存储的数据有两种:
    ①用户的真实数据,存储在datanode中
    ②抽象和管理这些真实数据的数据,叫做元数据,存储在namenode中
    namenode类比于书本的目录,datanode类比于书本的内容,书本的内容存储的是真实的数据,而目录(元数据,管理数据的数据)可以翻到这一页内容(真实数据)。
  3. hive创建的数据库或者数据表,对应存储在元数据库不是一个数据库和一张表,而是一条条的记录。(下面的实操会更好理解)
  4. 我们在安装hive的时候,只需要对元数据库初始化一次就可以,初始化第二次会把第一次创建出来的元数据库覆盖。

2. hive实操

  1. 创建一个文件,写入数据
    vim students.txt
    在这里插入图片描述

  2. 在HDFS上创建一个目录,将students.txt文件上传到HDFS
    hadoop fs -mkdir -p /student1029/input
    hadoop fs -put /本地文件目录/students.txt /student1029/input
    在这里插入图片描述

  3. 创建hive数据库并使用该数据库
    select current_database(); //查看当前使用的数据库
    create database if not exists student1029;
    use student1029;

  4. 创建hive数据表并添加数据

方法1:

create external table student(
id int, 
name string, 
gender string, 
age int, 
department string) 
row format delimited fields terminated by,lines terminated “\n” location “/student1029/input/;

external table外部数据库表,表中的数据不存储在数据库中,而是在与数据库相关联的普通外部文件里。(即表中的数据其实是存储在HDFS上的students.txt文件
row format delimited关键字,是用来设置创建的表在加载数据的时候,支持的列分隔符
fields terminated by “,”:列分隔符按","
lines terminated by “\n”:分隔符按"\n"换行

方法2:

create external table student(
id int, 
name string, 
gender string, 
age int, 
department string) 
row format delimited fields terminated by,lines terminated “\n”;

#往表中添加本地数据
load data local inpath "/home/hadoop/students.txt" into table student;
  1. 查看hive创建的数据库
    在这里插入图片描述

  2. 查看在mysql中的数据库
    hivedb就是元数据库,在安装hive的时候指定的
    在这里插入图片描述

  3. 查看hive元数据库中的元数据表
    元数据库中有57张表,组成一个元数据库。
    在这里插入图片描述
    其中:
    DBS表中存储hive创建的数据库
    TBLS表中存储hive创建的数据表
    Hive创建的数据库和表在元数据库中都是以一条条记录的形式存在
    student1029就是我们刚刚创建的hive数据库,在元数据库中是以记录的形式存在。
    select * from DBS; #注意区分大小写
    在这里插入图片描述
    这两张表就是我们创建的hive数据表,在元数据库中是以记录的形式存在。
    select * from TBLS;
    在这里插入图片描述

  4. 查看表结构
    desc student;
    在这里插入图片描述

  5. 查看表的元数据信息
    desc formatted student;
    能够查看表结构,还有表的详细信息,如这个表属于哪个用户,存放位置,所属哪个数据库等,还有行列是按照什么分割符分割的。
    在这里插入图片描述

发布了56 篇原创文章 · 获赞 34 · 访问量 3668

猜你喜欢

转载自blog.csdn.net/MicoOu/article/details/103352111
今日推荐