zoukankan      html  css  js  c++  java
  • Hive初步认识,理解Hive(一)

    Hive初步认识,理解Hive(一)

    用了有一段时间的Hive了,之前一直以为hive是个数据库,类似Mysql、Oracle等数据库一样,其实不然.

    Hive是实现Hadoop 的MapReduce的一种方式(Hive是一种MapReduce,优化的时候不能以sql的方式进行优化)

    Hive表分类:内部表 外部表 分区表 分桶表 (创建表的时候需要指定行数据的分隔符 以及字段的分隔符

    内部表与外部表

      删除表时内部表表数据表结构都删除

      删除表时外部表只删除表结构

    内部表与外部表的使用规则:

      当前表数据如果有多个使用者 那就使用外部表 避免删除的时候影响到其他用户使用

      如果只有一个用户使用就定义为内部表就好了

    分区表与分通表

       分区表用户自己定义 每个区存储在不同文件

       分桶表由程序计算而来 针对某个字段通过哈希函数求出分桶散列信息

     

    Hive的数据存储:(元数据+表数据)

    hive的元数据存储在数据库里(mysql/derby)  :元数据表示表的定义语句

    hive表数据存储在hdfs文件上:每个表对应一个目录(可能会有分区、分桶表 所以是对应目录 而不是文件)

    hive元数据存储位置 

      数据库信息 DBS表中
      表信息 TBLS表中
      数据列信息 COLUMNS_V2 表中 列字段有顺序 会记录下来

    创建视图的时候 仅仅表示创建sql语句的快捷方式,但是没有物化视图(没有执行sql)

    Hadoop简介

    mapreduce主要做数据的加工计算

    hdfs主要是存储数据分布式文件系统

    yarn  主要负责作业调度 集群资源管理

    map主要处理输入数据,reduce将整理好的数据进一步加工,然后存入hdfs分布式文件系统中。

     

    MapReduce计算步骤:

    1.hdfs 将文件拆分 切片

    2.mapper将任务拆分 对应启动进程

    3.shuffle将数据写入磁盘

    4.reducer通过shuffle从磁盘读取数据

    5.reducer进程进行数据聚合,将最后的结果存入磁盘

  • 相关阅读:
    洛谷 P1919 【模板】A*B Problem升级版(FFT快速傅里叶)
    Codeforces Goodbye 2018
    ubuntu 百度云
    【UOJ 351】新年的叶子
    【SDOI2008】仪仗队
    NOI 2002 贪吃的九头龙
    最大获利
    codeforces 814E An unavoidable detour for home
    codeforces 814D An overnight dance in discotheque
    bzoj3191 [JLOI2013]卡牌游戏
  • 原文地址:https://www.cnblogs.com/DFX339/p/11580289.html
Copyright © 2011-2022 走看看