Apache Hive
1. Hive 简介
1.1. 什么是Hive
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
本质是将SQL转换为MapReduce程序。
主要用途:用来做离线数据分析,比直接用MapReduce开发效率更高。
1.2. 为什么使用Hive
直接使用Hadoop MapReduce处理数据所面临的问题:
人员学习成本太高
MapReduce实现复杂查询逻辑开发难度太大
使用Hive :
操作接口采用类SQL语法,提供快速开发的能力
避免了去写MapReduce,减少开发人员的学习成本
功能扩展很方便
2. Hive 架构
2.1. Hive架构图
2.2. Hive组件
用户接口:包括 CLI、JDBC/ODBC、WebGUI。其中,CLI(command line interface)为shell命令行;JDBC/ODBC是Hive的JAVA实现,与传统数据库JDBC类似;WebGUI是通过浏览器访问Hive。
元数据存储:通常是存储在关系数据库如 mysql/derby中。Hive 将元数据存储在数据库中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
解释器、编译器、优化器、执行器:完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行。
2.3. Hive与Hadoop的关系
Hive利用HDFS存储数据,利用MapReduce查询分析数据。
3. Hive与传统数据库对比
hive用于海量数据的离线数据分析。
hive具有sql数据库的外表,但应用场景完全不同,hive只适合用来做批量数据统计分析。
更直观的对比请看下面这幅图:
4. Hive数据模型
Hive中所有的数据都存储在HDFS中,没有专门的数据存储格式
在创建表时指定数据中的分隔符,Hive 就可以映射成功,解析数据。
Hive中包含以下数据模型:
db:在hdfs中表现为hive.metastore.warehouse.dir目录下一个文件夹
table:在hdfs中表现所属db目录下一个文件夹
external table:数据存放位置可以在HDFS任意指定路径
partition:在hdfs中表现为table目录下的子目录
bucket:在hdfs中表现为同一个表目录下根据hash散列之后的多个文件
5. Hive 安装部署
Hive安装前需要安装好JDK和Hadoop。配置好环境变量。
根据元数据存储的介质不同,分为下面两个版本,其中derby属于内嵌模式。实际生产环境中则使用mysql来进行元数据的存储。
内置derby版:
解压hive安装包
bin/hive 启动即可使用
缺点:不同路径启动hive,每一个hive拥有一套自己的元数据,无法共享
mysql版:
解压、修改配置文件
vi conf/hive-site.xml
配置Mysql元数据库信息
详细安装步骤查看《Hive安装手册》
转载于:https://blog.51cto.com/13587708/2177047
Apache Hive相关推荐
- Apache Hive 快速入门 (CentOS 7.3 + Hadoop-2.8 + Hive-2.1.1)
2019独角兽企业重金招聘Python工程师标准>>> 本文节选自<Netkiller Database 手札> 第 63 章 Apache Hive 目录 63.1. ...
- Apache Ignite与Apache Hive的个人理解与总结
首先,贴一下官网链接辟邪:官网链接 下面,就看我强行总结吧,如果理解有误,请大佬及时指正,感激不尽! Apache Ignite是啥玩意,在上一篇已经讲过了,可能还比较易于理解:理解Ignite传送门 ...
- apache hive 使用概述
2019独角兽企业重金招聘Python工程师标准>>> 1 产品概述 1.1 产品功能 Apache Hive数据仓库软件提供对存储在分布式中的大型数据集的查询和管 ...
- IntelliJ IDEA——连接Apache Hive时 “Database” Plugin错误[enabling autocommit is not supported.]解决方案
问题描述 运行环境 Clusters (VMWare Devices) Apache Hadoop v2.9.2 ( Apache Offical Edition ) Apache Hive v1.2 ...
- Apache Hive JdbcStorageHandler 编程入门指南
以下博文转载自:https://www.iteblog.com/archives/2525.html Apache Hive 从 HIVE-1555 开始引入了 JdbcStorageHandler ...
- 【Hadoop Summit Tokyo 2016】Hivemall: Apache Hive/Spark/Pig 的可扩展机器学习库
本讲义出自 Makoto YUI与NTT Takashi Yamamuro在Hadoop Summit Tokyo 2016上的演讲,主要介绍了Hivemall的相关知识以及Hivemall在Spar ...
- apache hive_Hive:使用Apache Hive查询客户最喜欢的搜索查询和产品视图计数
apache hive 这篇文章介绍了如何使用Apache Hive查询Hadoop下存储的搜索点击数据. 我们将以示例的形式生成有关总产品浏览量的客户最爱搜索查询和统计信息. 继续之前的文章 使用大 ...
- apache hive_通过6个简单的步骤在Windows上运行Apache Hive
apache hive 注意 :您需要安装cygwin才能运行本教程,因为Hadoop(Hive所需)需要cygwin才能在Windows上运行. 至少,系统中必须存在Basic,Net(OpenSS ...
- Hive:使用Apache Hive查询客户最喜欢的搜索查询和产品视图计数
这篇文章涵盖了使用Apache Hive查询存储在Hadoop下的搜索点击数据. 我们将以示例的方式生成有关总产品浏览量的客户排名靠前的搜索查询和统计信息. 继续之前的文章 使用大数据分析客户产品搜索 ...
- 通过6个简单的步骤在Windows上运行Apache Hive
注意 :您需要安装cygwin才能运行本教程,因为Hadoop(Hive需要)需要cygwin才能在Windows上运行. 至少,系统中必须存在Basic,Net(OpenSSH,tcp_wrappe ...
最新文章
- 正则表达的式的基本功能
- 设计模式之策略模式学习笔记
- MyBatis 插入数据库返回主键
- 运行shell脚本时报错[[ : not found解决方法
- 自动化办公之excel教程(8):单变量求解,规划求解,页面布局,打印设置
- python函数的组成要素_python函数要素有哪些?这7点是你写好python代码的关键
- 不是python文件处理seek()方法的参数是_python文件操作seek()偏移量,读取指正到指定位置操作...
- java 的单态模式(只可以创建一个对象)
- 从零开始学Pytorch(九)之批量归一化和残差网络
- scala基础之泛型详解
- 使用C#打造通用的数据库连接类
- work summary(2)
- javascript 下载方法
- python程序设计基础期末考试题,python程序设计基础答案章节期末答案
- matlab的gaot在哪里,最权威遗传算法工具箱GAOT(gaot)安装方法
- ahk键盘增强✨✨✨v1.1
- 路由器的三种配置方式
- 用户行为分析的指标体系
- Python 使用 OpenCC 实现中文简繁转换
- 2021-06-10
热门文章
- mysql 插入当前时间_MySql优化之前期探索
- mathematica在linux上运行,Mathematicamatlab的linux版的安装
- mysql trim 索引_mysql强大的trim()函数
- codeforces 909C. Python Indentation
- 第二周CoreiDRAW总结
- QT + OpenCV + MinGW 在windows下配置开发环境
- AC日记——字符串位移包含问题 1.7 19
- 用字节流查看txt文件
- 关于 jquery select2 多个关键字 模糊查询的解决方法
- ORA-06502:PL/SQL :numberic or value error: character string buffer too small