一、什么是Hive

Hive是建立在Hadoop基础常的数据仓库基础架构,,它提供了一系列的工具,可以用了进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的按规模数据的机制。Hive定义了简单的类SQL查询语句,称为HQL。它允许熟悉SQL的用户查询数据、同时。这个语言也允许熟悉MapReduce开发者开发自定义的mapper和reducer来处理内建的mapper和reducer无法完成的复杂的分析工作。

Hive是SQL解析引擎,它将SQL语句转译为Map/Reduce Job然后在Hadoop执行,Hive的表其实就是HDFS的目录,按表名把文件夹分开,如果是分区表,可以直接在Map/Reduce Job里使用这些数据。

二、Hive的组件

Hive架构包括如下组件:CLI(command line interface) 、 JDBC/ODBC  、 Thrift  Server 、WEB GUI 、metastore 和Driver(Compiler、Optimizer和Executor)这些组件可以分为:服务端组件和客户端组件。

1)客户端组件

Cli:Command line interface 命令行接口

Thrift客户端:Hive架构的许多客户端接口是建立在Thrift客户端上,包括JDBC和ODBC接口

WEBGUI:Hive客户端提供了一种通过网页方式访问Hive所提供的服务,这个接口对应Hive的hwi组件(hive web interface)使用前要启动hwi服务

2)服务端组件

Driver组件:该组件包括Compiler、Optimizer和Executor,它的作用是将我们写的HiveQL语句进行分析、编译优化。生成执行计划,然后调用底层的mapreduce计算框架

Metastore组件:元数据服务组件,这个组件存储Hive的元数据,hive的元数据存储在关系数据库里,hive支持的关系数据库有derby  mysql。元数据对于hive十分重要,因此hive支持把mwtastore服务独立出来,安装到远程的服务器集群里,从而解耦Hive服务和metastore服务,保证hive运行的健壮性。

Thrift服务:facebook开发的一个软件框架,它用来进行可扩展跨语言的服务的开发,hive集成了该服务,能让不同的编程语言调用hive的接口

注:Hive的数据存储在HDFS中,大部分的查询有MapReduce完成(包含*的查询,不会生成MapReduce任务)

HQL的执行过程:

解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划(Plan)的生成。生成的查询计划存储在HDFS中,并随后有MapReduce调用执行。
HQL Select-->发送到解析器进行词法分析 -->错误则反映 否则发送到编译器 生成HQL的执行计划-->优化器 生成最佳的执行计划 -->执行

explain plan for select * from emp where deptno=10;
--查看执行计划 select * from table(dbms_xplan.display);

HIVE的体系结构:

HADOOP:用HDFS进行存储,利用MapReduce进行计算
元数据存储(MstaStore):通常是存储在数据库,如mysql derby中

HIVE安装模式:

嵌入模式:

元数据信息被存储在Hive自带的DerBy数据库中,只允许创建一个连接、多用于Demo 本地模式:元数据信息被存储在MySql数据库中,MySql和Hive运行在同一台物理机中,多用于开发和测试

远程模式:

MySql和Hive不在同一操作系统,多用于生产环境

HIVE的管理:

端口号9999 启动方式:#hive --service hwi & 访问地址:http://IP:9999/hwi
下载原码进入hwi文件夹中打包 jar cvfM0 hive-hwi.war -C web/ .
将war包拷贝到lib目录下
修改配置文件hive-site.xml
需要拷贝jdk下的tools.jar到hive的lib下 不然会报错
在web下只能进行查询操作
HIVE的远程模式:
hive --service hiveserver 默认端口10000

【大数据系列】Hive安装及web模式管理的更多相关文章

  1. 大数据学习——hive安装部署

    1上传压缩包 2 解压 tar -zxvf apache-hive-1.2.1-bin.tar.gz -C apps 3 重命名 mv apache-hive-1.2.1-bin hive 4 设置环 ...

  2. 【大数据系列】安装Ambari

    一.Ambari简介 The Apache Ambari project is aimed at making Hadoop management simpler by developing soft ...

  3. 大数据系列之数据仓库Hive安装

    Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...

  4. 大数据系列(2)——Hadoop集群坏境CentOS安装

    前言 前面我们主要分析了搭建Hadoop集群所需要准备的内容和一些提前规划好的项,本篇我们主要来分析如何安装CentOS操作系统,以及一些基础的设置,闲言少叙,我们进入本篇的正题. 技术准备 VMwa ...

  5. 大数据系列(4)——Hadoop集群VSFTP和SecureCRT安装配置

    前言 经过前三篇文章的介绍,已经通过VMware安装了Hadoop的集群环境,当然,我相信安装的过程肯定遇到或多或少的问题,这些都需要自己解决,解决的过程就是学习的过程,本篇的来介绍几个Hadoop环 ...

  6. 大数据系列之数据仓库Hive原理

    Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...

  7. 大数据系列之数据仓库Hive中分区Partition如何使用

    Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...

  8. 12.Linux软件安装 (一步一步学习大数据系列之 Linux)

    1.如何上传安装包到服务器 有三种方式: 1.1使用图形化工具,如: filezilla 如何使用FileZilla上传和下载文件 1.2使用 sftp 工具: 在 windows下使用CRT 软件 ...

  9. 大数据系列(5)——Hadoop集群MYSQL的安装

    前言 有一段时间没写文章了,最近事情挺多的,现在咱们回归正题,经过前面四篇文章的介绍,已经通过VMware安装了Hadoop的集群环境,相关的两款软件VSFTP和SecureCRT也已经正常安装了. ...

随机推荐

  1. ZooKeeper系列

    Zookeeper系列(一) ZooKeeper系列(二) ZooKeeper系列(三) ZooKeeper系列(四)

  2. js 报错检查顺序

    如上图所示错误列表: 处理步骤:检查顺序应从最后到前,并且先检查当面页面引用的文件(公共引用文件一般不会出错的) 如:at.nt.query方法检查错误开始 倒推

  3. spring中基于aop使用ehcache

    我就是对着这个博客看的 http://www.cnblogs.com/ctxsdhy/p/6421016.html

  4. PHP获取MySql新增记录ID值的3种方法

    From: http://www.jb51.net/article/51473.htm 这篇文章主要介绍了PHP获取MySql新增记录ID值的3种方法,一般使用PHP自带函数mysql_insert_ ...

  5. JSON数组,JSON对象,数组的区别与基本操作整理

    JSON 语法规则 JSON 语法是 javascript 对象表示语法的子集. 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON 名称/值对 JSON 数据的书写格式是: ...

  6. lakala反欺诈建模实际应用代码GBDT监督学习

    /** * Created by lkl on 2018/1/16. */ import org.apache.spark.mllib.evaluation.BinaryClassificationM ...

  7. 【WP8】关于类库本地化问题

    WPToolkit中的ToggleSwitch开关控件是比较常用的控件,之前在做的的时候遇到一个问题,默认语言改为中文,手机系统语言也为中文,但是开关状态无法应用本地化的语言库,开关状态总是显示On/ ...

  8. koa-route模块

    const Koa = require('koa'); const route = require('koa-route'); const app = new Koa(); const about = ...

  9. 文件传输协议(FTP,SFTP,SCP)(修改中)

    FTP(File Transfer Protocol):是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层.FTP ...

  10. QT基础:QT 定时器学习

    定时器在编程中经常要用到,有必要学习一下,记记笔记! Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类. 1.QObject中的定时器的使用,需要用 ...