Hive安装与详解

简介

一、Hadoop开发存在的问题
  1. 只能用java语言开发,如果是c语言或其他语言的程序员用Hadoop,存在语言门槛
  2. 需要对Hadoop底层原理,api比较了解才能做开发
  3. 开发调试比较麻烦
二、Hive概述
  1. Hive是基于Hadoop的一个数据仓库工具。可以将结构化的数据文件映射为一张表,并提供完整的sql查询功能
  2. 底层是将sql语句转换为MapReduce任务进行运行
  3. Hive提供了一系列的工具,可以用来进行数据提取、转化、加载(ETL Extract-Transform-Load ),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制
  4. 本质上是一种大数据离线分析工具
三、Hive的HQL
  1. HQL - Hive通过类SQL的语法,来进行分布式的计算
  2. HQL用起来和SQL非常的类似,Hive在执行的过程中会将HQL转换为MapReduce去执行,所以Hive其实是基于Hadoop的一种分布式计算框架,底层仍然是MapReduce
四、特点
  1. 优点:
    a. 学习成本低,只要会sql就能用hive
    b. 开发效率高,不需要编程,只需要写sql
    c. 模型简单,易于理解
    d. 针对海量数据的高性能查询和分析
    e. HiveQL 灵活的可扩展性(Extendibility)
    f. 高扩展性(Scalability)和容错性
    g. 与 Hadoop 其他产品完全兼容
  2. 缺点:
    a. 不支持行级别的增删改
    b. 不支持完整的在线事务处理
    c. 本质上仍然是MR的执行,效率不算高
五、适用场景
  1. Hive 构建在基于静态(离线)批处理的Hadoop 之上,Hadoop 通常都有较高的延迟并且在作业提交和调度的时候需要大量的开销。因此,Hive 并不能够在大规模数据集上实现低延迟快速的查询因此,Hive 并不适合那些需要低延迟的应用
  2. Hive 并不提供实时的查询和基于行级的数据更新操作。Hive 的最佳使用场合是大数据集的离线批处理作业,例如,网络日志分析。

数据仓库和数据库对比

一、数据仓库和数据库对比
数据库数据仓库
为线上系统提供实时数据为离线分析存储历史数据
具有完整的增删改查的能力只支持一次写入多次查询,不支持行级别的增删改
具有完整的事务能力不强调事务的特性
尽量的避免冗余,提高存储和处理的效率人为的制造冗, 提高查询的效率
数据来源单一数据来源多样(数据库,爬虫,日志等)
二、OLTP和OLAP对比
  1. 数据库属于OLTP系统(Online Transaction Processing)联机事务处理系统。涵盖了企业大部分的日常操作,如购物、库存、制造、银行、工资、注册、记账等。比如Mysql,oracle等关系型数据库;数据仓库属于OLAP系统。(Online Analytical Processing)联机分析处理系统。Hive,Hbase等
  2. OLTP是面向用户的、用于程序员的事务处理以及客户的查询处理;OLAP是面向市场的,用于知识工人(经理、主管和数据分析人员)的数据分析
  3. OLAP通常会集成多个异构数据源的数据,数量巨大;OLTP系统的访问由于要保证原子性,所以有事务机制和恢复机制
  4. OLAP系统一般存储的是历史数据,所以大部分都是只读操作,不需要事务;OLTP系统具有较强的事务

体系结构

在这里插入图片描述

1. 用户接口主要有三个:CLI,JDBC 和 WUI

a. CLI,最常用的模式。实际上在>hive 命令行下操作时,就是利用CLI用户接口
b. JDBC,通过java代码操作,需要启动hiveserver,然后连接操作

2. Metastore

Hive将元数据存储在数据库中,如mysql、derby。Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等

3. 解释器(complier)、优化器(optimizer)、执行器(executor)组件

这三个组件用于:HQL语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行

4. Hadoop

Hive的数据存储在HDFS中,大部分的查询、计算由MapReduce完成

流程

在这里插入图片描述

1.通过客户端提交一条Hql语句
2.通过complier(编译组件)对Hql进行词法分析、语法分析。在这一步,编译器要知道此hql语句到底要操作哪张表
3.去元数据库找表信息
4.得到信息
5.complier编译器提交Hql语句分析方案。
6.1 executor 执行器收到方案后,执行方案(DDL过程)。在这里注意,执行器在执行方案时,会判断
如果当前方案不涉及到MR组件,比如为表添加分区信息、比如字符串操作等,比如简单的查询操作等,此时就会直接和元数据库交互,然后去HDFS上去找具体数据。
如果方案需要转换成MR job,则会将job 提交给Hadoop的JobTracker。
6.2 MR job完成,并且将运行结果写入到HDFS上。
6.3 执行器和HDFS交互,获取结果文件信息。
7.如果客户端提交Hql语句是带有查询结果性的,则会发生:7-8-9步,完成结果的查询。

安装Hive

  1. 安装JDK
    在这里插入图片描述
  2. 安装Hadoop
    在这里插入图片描述
  3. 配置JDK和Hadoop的环境变量
    在这里插入图片描述
  4. 下载Hive安装包
    在这里插入图片描述
    http://mirror.bit.edu.cn/apache/hive/hive-1.2.2/
  5. 解压安装hive
    解压:tar -xvf apache-hive-1.2.2-bin.tar.gz
    改名:mv apache-hive-1.2.2-bin hive-1.2.2
    我的路径:/home/software/hive-1.2.2
    在这里插入图片描述
  6. 启动Hadoop的HDFS和Yarn
    之前我们已经装过hadoop了。所以直接启动即可,注意hive需要hadoop的支持所以要放到一个机器上
    在这里插入图片描述
  7. 进入到bin目录,启动Hive:sh hive (或者执行:./hive)

在这里插入图片描述
安装成功
注意如果你用的高版本要看和hadoop的兼容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值