【大数据系列】Hive安装及web模式管理
一、什么是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模式管理的更多相关文章
- 大数据学习——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 设置环 ...
- 【大数据系列】安装Ambari
一.Ambari简介 The Apache Ambari project is aimed at making Hadoop management simpler by developing soft ...
- 大数据系列之数据仓库Hive安装
Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...
- 大数据系列(2)——Hadoop集群坏境CentOS安装
前言 前面我们主要分析了搭建Hadoop集群所需要准备的内容和一些提前规划好的项,本篇我们主要来分析如何安装CentOS操作系统,以及一些基础的设置,闲言少叙,我们进入本篇的正题. 技术准备 VMwa ...
- 大数据系列(4)——Hadoop集群VSFTP和SecureCRT安装配置
前言 经过前三篇文章的介绍,已经通过VMware安装了Hadoop的集群环境,当然,我相信安装的过程肯定遇到或多或少的问题,这些都需要自己解决,解决的过程就是学习的过程,本篇的来介绍几个Hadoop环 ...
- 大数据系列之数据仓库Hive原理
Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...
- 大数据系列之数据仓库Hive中分区Partition如何使用
Hive系列博文,持续更新~~~ 大数据系列之数据仓库Hive原理 大数据系列之数据仓库Hive安装 大数据系列之数据仓库Hive中分区Partition如何使用 大数据系列之数据仓库Hive命令使用 ...
- 12.Linux软件安装 (一步一步学习大数据系列之 Linux)
1.如何上传安装包到服务器 有三种方式: 1.1使用图形化工具,如: filezilla 如何使用FileZilla上传和下载文件 1.2使用 sftp 工具: 在 windows下使用CRT 软件 ...
- 大数据系列(5)——Hadoop集群MYSQL的安装
前言 有一段时间没写文章了,最近事情挺多的,现在咱们回归正题,经过前面四篇文章的介绍,已经通过VMware安装了Hadoop的集群环境,相关的两款软件VSFTP和SecureCRT也已经正常安装了. ...
随机推荐
- Linux下的rename命令
Dos/Windows下,对文件改名用rename.而书上说,Linux下对文件或目录改名该用mv.我一直也是这样做的,却忽略了Linux下也有个叫rename的命令.都是rename,但功能上就有点 ...
- 获取 SharpSvn 执行 svn 操作的实时日志
1 获取 SharpSvn 操作日志的方式 之前一篇随笔(使用 SharpSvn 执行 svn 操作)讲到可以通过声称一个绑定到一个 SvnClient 对象的 SvnClientReport 对象. ...
- mongodb 3.2.x 启动 Warning 错误处理
[root@restore1 data1]# mongod --dbpath=/data/data1/mongodb_data/ --directoryperdb ** WARNING: You ar ...
- libaio.so.1: undefined reference to `__stack_chk_fail@GLIBC_2.4'
没有别的原因: 找正确的 libaio.so.1 包就成. 我这儿有,需要的可以下载奥!
- Unity3D热更新LuaFramework入门实战
http://blog.sina.com.cn/s/blog_6788cd880102w8qy.html http://www.manew.com/thread-91845-1-1.html http ...
- repo_file_in_folder
-- Create table create table repo_file ( uuid ), create_time ), creator ), modify_time ), modifier ) ...
- go语言之PLAN9汇编
http://blog.studygolang.com/2013/05/asm_and_plan9_asm/ https://lrita.github.io/2017/12/12/golang-asm ...
- selenium+phantomjs渲染网页
from selenium import webdriverfrom selenium.webdriver.common.desired_capabilities import DesiredCapa ...
- Java多线程之可见性与原子性——synchronized VS volatile
<转:http://blog.csdn.net/uniquewonderq/article/details/48113071> 程序举例: 代码: package com.synch; p ...
- org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'parentId' in 'class java.lang.String'
Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named ' ...