Hive 教程(二)-认知hive
在大数据领域,hive 的位置非常重要,排名前三的大数据工具为 spark、hive、kafka
什么是hive
在大数据领域有 3 种需求场景:传输、存储、计算;
hive 是一个处理海量的结构化数据的计算引擎;
hive 是基于 hadoop 的一个数据仓库工具,他将结构化的数据数据文件映射为一张表,并且提供了类 sql 的查询功能;
hive 提供的 sql 叫 HQL,本质是把 HQL 转换成 mapreduce;
认识 hive 需要搞清楚以下几点:
1. hive 虽然是大数据工具,但是 hive 并非分布式的,它只安装在一台机器上,当然你可以在多台机器上都安装 hive,但彼此之间没有联系;
2. 我们可以把 hive 看做 hadoop 的客户端,通过使用 hive 来使用 hadoop;
3. hive 是个计算引擎,他没有存储功能,虽然有一张表,但是我们可以认为那是一张虚拟表,表的数据存储在 hdfs,表的元数据存在 mysql 等数据库,hive 查询时通过元数据找到数据在 hdfs 中的位置,并启动 mapreduce 进行计算;
hive 的工作逻辑

1. hive 的数据存储在 hdfs
2. hive 的计算通过 hadoop 完成
hive 的架构

Client:客户端,需要 jdbc 数据库;
Metastore:元数据,存储在 关系型数据库,如 mysql 等;
元数据存储了表的相关信息,包括表名,每张表在 hdfs 中的存储路径,表的拥有者,字段 等;

Driver:这是 hive 的核心,包括 解析器,编译器,优化器,执行器;
解析器检查 sql 语法是否正确;编译器把 sql 转换成 mr;优化器对 mr 进行优化;执行器执行 mr;
hive vs database
hive 和数据库的区别主要体现在 数据量 上,hive 适合海量数据,数据库在超过 千万条 数据后,性能会大大下降;
数据存储位置
hive 本身没有存储功能,其数据存储在 hdfs 上,其元数据存储在 关系型数据库;
而数据库数据存在本地文件中;
数据更新
hive 针对数据仓库设计,数据仓库的内容是查多写少,不建议修改其内容,确切的说 hive 没有 改 的功能,只提供 增删查;
hive 的改相当于先删掉原来的,再 put 新的到 hdfs;
数据库可增删改查;
索引
hive 无索引,由于 mr 是并行的读取 block 的,所以在无索引的情况下,依然高效;【不过我看官网上有 索引,可能是版本问题,有没有试试就知道了】
数据库有索引;

可扩展和数据规模
hive 的背后是 hadoop,所以它具有集群的一些优势,可以处理海量数据,且可以靠增加节点提高效率
hive 总结
hive 常用于数据分析;
hive 基于 hadoop,执行效率比较低,不适合实时性很高的任务;
hive 的优势是处理大数据,对于处理小数据没有优势;
优点
1. 基于 sql ,操作简单,学习成本低
2. 支持自定义函数
缺点
1. hive 的 HQL 表达能力有限
迭代式算法无法表达:算法分好多步,每一步需要上一步的计算结果,在 mr 中输出必须经过 IO,很慢,而且 sql 无法实现计算之后再计算;
数据挖掘方面不擅长:也需要多次迭代;
2. hive 效率比较低,且不好调优
最后感觉 hive 的教程比较少,附上官网
https://hive.apache.org/ 【apache 所有的 url 格式都是 组件名称 + apache.org】
说明文档也在这个网站上

Hive 教程(二)-认知hive的更多相关文章
- Hive(二)hive的基本操作
一.DDL操作(定义操作) 1.创建表 (1)建表语法结构 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name[(col_name data_type ...
- Apache Hive (二)Hive安装
转自:https://www.cnblogs.com/qingyunzong/p/8708057.html Hive的下载 下载地址http://mirrors.hust.edu.cn/apache/ ...
- HIVE教程
完整PDF下载:<HIVE简明教程> 前言 Hive是对于数据仓库进行管理和分析的工具.但是不要被“数据仓库”这个词所吓倒,数据仓库是很复杂的东西,但是如果你会SQL,就会发现Hive是那 ...
- 【Hive学习之二】Hive SQL
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 apache-hive-3.1.1 ...
- Mongodb同步数据到hive(二)
Mongodb同步数据到hive(二) 1. 概述 上一篇文章主要介绍了mongodb-based,通过直连mongodb的方式进行数据映射来进行数据查询,但是那种方式会对线上的 ...
- Hive(二)CentOS7.5安装Hive2.3.3
一 Hive的下载 软件下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/ 这里下载的版本是:apache-hive-2.3.3-bin.t ...
- Hive 教程(一)-安装与配置解析
安装就安装 ,不扯其他的 hive 依赖 在 hive 安装前必须具备如下条件 1. 一个可连接的关系型数据库,如 Mysql,postgresql 等,用于存储元数据 2. hadoop,并启动 h ...
- hive 总结二
本文参考:黑泽君相关博客 本文是我总结日常工作中遇到的坑,结合黑泽君相关博客,选取.补充了部分内容. 查询函数(Hive高级) NVL(cloumn,replace_with) 如果cloumn为NU ...
- Hive学习之二 《Hive的安装之自定义mysql数据库》
由于MySQL便于管理,在学习过程中,我选择MySQL. 一,配置元数据库. 1.安装MySQL,采用yum方式. ①yum install mysql-server,安装mysql服务端,安装服 ...
随机推荐
- Codeforces 981 D.Bookshelves(数位DP)
Codeforces 981 D.Bookshelves 题目大意: 给n个数,将这n个数分为k段,(n,k<=50)分别对每一段求和,再将每个求和的结果做与运算(&).求最终结果的最大 ...
- 「CF1105E」Helping Hiasat
题目链接 戳我 \(Solution\) 将好友访问你的主页的状态用二进制存下来 其中若第\(i\)位是\(1\),则表示这个好友在第\(i\)个\(1\)操作后访问了你的主页,否则没访问. 所以如果 ...
- JDK动态代理、CGLIB动态代理详解
Spring的AOP其就是通过动态代理的机制实现的,所以理解动态代理尤其重要. 动态代理比静态代理的好处: 1.一个动态代理类可以实现多个业务接口.静态代理的一个代理类只能对一个业务接口的实现类进行包 ...
- svn 同步备份的所有问题,亲测可用
svnsync 异地同步收获 (2010-07-06 10:06:19) 转载▼ 标签: 杂谈 分类: svn svnsync 异地同步收获: 来自:我用Subversion - http://www ...
- LeetCode 114. 二叉树展开为链表(Flatten Binary Tree to Linked List)
题目描述 给定一个二叉树,原地将它展开为链表. 例如,给定二叉树 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ 6 解题思路 二叉树转化为链表的基本 ...
- LeetCode 130. 被围绕的区域(Surrounded Regions)
题目描述 给定一个二维的矩阵,包含 'X' 和 'O'(字母 O). 找到所有被 'X' 围绕的区域,并将这些区域里所有的 'O' 用 'X' 填充. 示例: X X X X X O O X X X ...
- 浏览器缓存及vw和vh的使用
在浏览器缓存中不仅有 cookie 还有了别的选择 Storage 浏览器又分了两种缓存:sessionStorage localStorage localStorage 缓存:是一种永久的缓存,也就 ...
- GitHub:Oracle
ylbtech-GitHub:Oracle 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 1. https://github.com/oracle 2. 6 ...
- (“(null)” is of a model that is not supported by this version of Xcode. Please...)
真机测试遇到以下问题: (还以为手机不支持Xcode的版本呢) 解决方法: 发现只要将XCode重启后就可以真机运行了,碰见这个问题的朋友可以试下,我反正是被坑了半小时...
- pika常见问题解答(FAQ)
1 编译安装 Q1: 支持的系统? A1: 目前只支持Linux环境,包括Centos,Ubuntu: 不支持Windowns, Mac Q2: 怎么编译安装? A2: 参考编译安装wiki Q3: ...