美文网首页
分布式数据仓库hive学习笔记

分布式数据仓库hive学习笔记

作者: 起个什么呢称呢 | 来源:发表于2017-02-22 13:13 被阅读394次

———沉寂了一个寒假,没有更新一篇文章,仿佛一切都是陌生的。所见的的人,所看的景。

    


hive的服务组成:

        Hive是建立在Hadoop平台上的,本身没有特定的数据存储模式,也不会为数据建立索引。数据以任意的形式存储在Hdfs上,或者以特定分类的形式存储在分布式数据库HBase(Nosql的一种)。在创建Hive表时候指明数据的列分隔符和行分隔符即可解析存储在HDFS和HBase上的数据。

         hive 建立在Hadoop平台上。主要是提供一个sql解析的过程。把外部sql命令解析成一个mapreduce作业计划,并把按照该计划生成的Mapreduce任务交给Hadoop集群处理。所以,要进行hive 处理,必须要保证Hadoop 集群正常启动。

        简而言之 hive是一个数据仓库工具,作用是可以将结构化的数据文件映射为一张数据库表,并提供简单查询功能,可以将sql语句转化为Mapreduce任务进行,是在Hadoop上的数据库基础架构。数据仓库面向主题是集成的,不可更新 ,不随时间改变的。

         hive的运行方式底层走的是maoreduce,可任意实现自定义的mapper 和reduce 任务、hive是SQL解析引擎,它将SQL语句解析翻译成M/PJob管理 运行在Hadoop上执行

       hive表其实就是HDFS的目录。按照表名把文件夹分开,如果是分区表,则分区值是文件夹,可以直接在Mr/job中使用这些数据。hive 相当于是Hadoop客服端工具,部署时候不放在,不一定集群上,可以放在某个节点上。

按照原理标准图word手绘图如下:

hive的安装
步骤:

1.上传安装包并解压

2.配置环境变量,指定安装路径, 要配置 path hive_home等

3,安装MySQL 数据库。

我在安装MySQL数据库遇到问题了,先是用的是tmp包,也就是源码包,不能·达到预期结果,然后改成rmp二进制包,安装成功后,但是hive不能与MySQL建立连接,问题出在MySQL密码与hive-site.xml设置的不一样导致无法建立连接,之后修改密码连接成功

,之所以安装MySQL是因为hive 默认的数据库是Derby数据库,其与MySQL数据库比较存在缺陷。

hive shell

hive shell是运行在Hadoop环境上的,是hive提供的命令行接口,在hive提示符出现后输入hive命令,hiveshell会把这些hiveSQL查询转换一系列的mapreduce作业任务进行并行处理。然后返回处理结果。

hiveshell 还可以在非交互式模式下运行

HiveQLq与SQL语言非常类似,hive

不存储数据,只是管理存储在hdfs上的数据,也就是管理hdfs上文件的目录,也可以称作是管理元数据信息的。通过hive表导入数据只是简单的将数据移动【如果数据在hdfs上】或复制【如果数据是本地文件系统中】到hive表所在的HDFS目录中

hive 管理数据有以下几种方式,内部表,外部表,分区,桶。

1、内部表:Hive中的表和关系型数据库中的表在概念上很类似,每个表在HDFS中都有相应的目录用来存储表的数据,这个目录可以通

过${HIVE_HOME}/conf/hive-site.xml配置文件中的hive.metastore.warehouse.dir属性来配置,

这个属性默认的值是/user/hive/warehouse(这个目录在HDFS上),我们可以根据实际的情况来修改这个配置。如果我有一个表wyp,

那么在HDFS中会创建/user/hive/warehouse/wyp目录(这里假定hive.metastore.warehouse.dir配置

为/user/hive/warehouse);wyp表所有的数据都存放在这个目录中。这个例外是外部表。

2、外部表:Hive中的外部表和表很类似,但是其数据不是放在自己表所属的目录中,而是存放到别处,这样的好处是如果你要删除这个外部表,该

外部表所指向的数据是不会被删除的,它只会删除外部表对应的元数据;而如果你要删除表,该表对应的所有数据包括元数据都会被删除。

3、分区:在Hive中,表的每一个分区对应表下的相应目录,所有分区的数据都是存储在对应的目录中。比如wyp表有dt和city两个分区,

则对应dt=20131218,city=BJ对应表的目录为/user/hive/warehouse/dt=20131218/city=BJ,所有

属于这个分区的数据都存放在这个目录中。

4、桶:对指定的列计算其hash,根据hash值切分数据,目的是为了并行,每一个桶对应一个文件(注意和分区的区别)。比如将wyp表id

列分散至16个桶中,首先对id列的值计算hash,对应hash值为0和16的数据存储的HDFS目录为:/user/hive/warehouse

/wyp/part-00000;而hash值为2的数据存储的HDFS

目录为:/user/hive/warehouse/wyp/part-00002。

hive表DDL操作

create /drop/ alter 数据库

eg: create database shopping

location '/hive/shopping'

with dbproperties('creator'='bush','date'='2017-1-1')

使用hdfs  dfs -ls 可以查看hdfs上的/hive 目录

接下来就是hive 的DDL 和 DML 操作了


更多 

相关文章

  • 无标题文章

    Hive 学习笔记 学习笔记 Hive 简介 Hive 是建立在 Hadoop 上的数据仓库基础构架,可以用来进行...

  • HIVE快速入门教程2Hive架构

    什么是Hive? Hive是在Hadoop分布式文件系统(HDFS)之上开发的ETL和数据仓库工具。 Hive使执...

  • 初识Hive和Hadoop 2020-04-11

    Hive数据仓库 -- 基于Hadoop(一个分布式系统架构) -- HDFS(Hadoop Distribute...

  • 分布式数据仓库hive学习笔记

    ———沉寂了一个寒假,没有更新一篇文章,仿佛一切都是陌生的。所见的的人,所看的景。 hive的服务组成: Hiv...

  • 从0开始学大数据-Hive基础篇

    Hive起源于Facebook,是基于 Hadoop HDFS 分布式文件系统的分布式 数据仓库 架构。它为数据仓...

  • Hive开发--Hive简介

    一、Hive简介   Apache Hive™ 数据仓库软件为分布式存储的大数据集上的读、写、管理提供很大方便,同...

  • Hadoop中Hive原理及安装

    Hive是什么(官网概念) Apache Hive™数据仓库软件有助于使用SQL读取,写入和管理驻留在分布式存储中...

  • hive部署的3种模式,及应用差异

    1、hive的技术原理 hive是基于Hadoop的数据仓库系统,可以查询、分析和存储在HDFS 分布式文件系统中...

  • 2018-07-06 hive(1.0)

    什么是hive: 个人觉得就是hadoop上的数据库,也就是所谓数据仓库。因为hive中的数据全是存储在分布式系统...

  • Hive数据仓库实战

    Hive作为大数据平台Hadoop之上的主流应用,公司一般都是用它作为公司的数据仓库,分布式机器学习的训练数据和数...

网友评论

      本文标题:分布式数据仓库hive学习笔记

      本文链接:https://www.haomeiwen.com/subject/oeipwttx.html