![0f65d50e2427e78d028ae83d1d2cbb8e.png](https://i-blog.csdnimg.cn/blog_migrate/500e6a2369d25d87c5ba5606ec43c0af.jpeg)
本章都是一些基本概念了,看看和了解就行,不用特别在意,重点在于之后的实操和案例。
一、第一块内容:Hive
- hive是分析框架,Hadoop是存储框架
- hive处理的数据只能存在hdfs中;
- hive类似于Hadoop的客户端【查数据、取数据、又可以驱动MR程序】;
- 因为是类似一个客户端,所以hive不涉及到集群的概念;
![2f3934d6cd17842d6fc4b4ef29754cc2.png](https://i-blog.csdnimg.cn/blog_migrate/b008ba9de58380dfc8ff957f03b7a749.png)
2.运行的粗浅原理【SQL转换为MapReduce的过程】
![cc4d39b73294d21f30aff8251cb7125c.png](https://i-blog.csdnimg.cn/blog_migrate/0d321145fc7edb6a08d4ceda99492e54.png)
3.Hive的优缺点(其实就是MR语言的优缺点)
【一般用于离线业务分析(每个月、每年活跃用户之类的)】
![28241c99fb1ee784b7cac5dbaac69fd0.png](https://i-blog.csdnimg.cn/blog_migrate/df01c338a5ab472ba70dd6187183a728.png)
![5fc77d937ecf91e359b2c8b8ec97e90a.png](https://i-blog.csdnimg.cn/blog_migrate/20f36c98ad3d869cfc3f3b6900ed8fb5.png)
注:迭代计算是指原始数据计算出第一次结果,再在这个基础上计算出后面需要的结果【Hadoop是用多个MR串联】;
4.HIve架构原理
![dd54a75a73f98c8a364744d7e2f58a6e.png](https://i-blog.csdnimg.cn/blog_migrate/fb103f6ef725a005d94e3cf463a7435c.png)
- hdfs存储数据,计算使用MR;
- CLI是命令行类型的客户端,也可以用JDBC这个接口去驱动(四个属性:javaurluser namepassword);
- Driver驱动有4块内容(表示HQL转化为MR经过了哪些组件):解析器将HQL找模板;编译器翻译成具体的代码;hive越高版本对HQL越有优化(类似MYSQL里小表驱动大表,小表放前面,hive自己优化,0.9版本之后);执行器
![cd176420c0ffc5dbd8f30b6243c730ad.png](https://i-blog.csdnimg.cn/blog_migrate/b45c331d48e50e2f16ed35332911a60b.jpeg)
- Meta store:元数据是表和文件之间的对应关系【位置、对应、大小、属性之类的】(hive是类SQL语句,是有表,数据file存在hdfs里,比如是一个月的文件file,当select * from t2时)表-元数据-文件;hive的元数据都不是自己存的,是Mysql存的;
5.Hive和数据库比较:区别在于
【查询语言、数据存储位置、数据更新、索引、执行、执行延迟、可扩展性、数据规模】
![06b58ae5c79d398d1ddd65b98845a2ea.png](https://i-blog.csdnimg.cn/blog_migrate/4b1597283b5d76c8bb1a478b18c38bcc.jpeg)
![80cc3f9a0a1ec97e1187f3ca7f9c5226.png](https://i-blog.csdnimg.cn/blog_migrate/bccec1ec17ce8f98f396d5e73a805bec.jpeg)
![07627d420441769c3877067b0d8e5b03.png](https://i-blog.csdnimg.cn/blog_migrate/e0702699654df355639bbb9c80e0c002.jpeg)
二、第二块内容:Hadoop
- 准备工作
Vmware*1虚拟机软件;centos7*3三台虚拟机;3节点的Hadoop集群;
- 主要内容:大数据的发展背景;Hadoop是什么;Hadoop生态圈及架构;什么是分布式文件系统;hdfs的工作流程;MapReduce的工作流程;Hadoop常用命令;
- 资源管理器相当于namenode;
2.大数据背景
- 大数据特点:海量性、多样性(数据格式多)、高速性(数据产生、增量)、易变性(数据模糊不清);
- 应用行业:电力、电信、经贸、教育、医疗、金融、石油、民航等;
3.Hadoop是什么
- Hadoop是什么:开源的分布式系统基础架构,可编写和运行分布式应用处理大规模数据,是专为离线和大规模数据分析而设计的,并不适合那种对几个记录随机读写的在线事务处理模式;
- 分布式文件系统(GFS)、分布式存储(Bigtable)、分布式计算(mapreduce);
4. Hadoop生态系统(应用软件有哪些)
![f5c4e39e259fc79bfff94df9a350d051.png](https://i-blog.csdnimg.cn/blog_migrate/76fd5d899dc38fedfd70640ae33aa907.png)
- hive:数据仓库;
- Hadoop:分布式系统框架;
- mahout:算法库;
- storm:分布式实时计算框架;
- hbase:分布式实时列式存储数据库;
5.Hadoop架构和组件【YARN类似于内存】
![754acc4b722c1e52eb6b9847ab6367fb.png](https://i-blog.csdnimg.cn/blog_migrate/4741c853e8450d9812e105a2cbecc98c.png)
6.hdfs分布式文件系统
集群:很多人在一起干相同的活;分布式很多人在一起干不同的活;
![85e7e8e0a3464de4c9fa9c1cb2ac23db.png](https://i-blog.csdnimg.cn/blog_migrate/946455013701dfb511954c93265dcd37.png)
![07a3ceead090e0896aa6d9be6b60dd78.png](https://i-blog.csdnimg.cn/blog_migrate/fc4cc464a08dde3e66950f226539fac3.png)
![6d14ca8c45cf9cc87dd250d01b1fcc10.png](https://i-blog.csdnimg.cn/blog_migrate/bc4296062dc5f74693f38a5cac2f935e.jpeg)
7.hdfs核心设计【文件特别大时,比如:500T】
- 存在一块磁盘就爆掉了;将其拆分成很多块,写入不同服务器;读写时感觉不到被拆分了;
- block:对应磁盘的虚拟小单位;hdfs最小存储单元;
![0fd9b4f683dc856051c80b8b5098d8e6.png](https://i-blog.csdnimg.cn/blog_migrate/6256509bc3cfe2c4cedcc896d9fafcc1.png)
8.体系结构
![27ee092f38eaeb29360f56d34ff66e06.png](https://i-blog.csdnimg.cn/blog_migrate/5c4f8087ae0cada9b54a4302674d536d.jpeg)
- namenode:接受客户端的读写请求,存储元数据信息,接收DataNode的心跳报告,负载均衡【Hadoop主节点,Hadoop是主从模式;管理从节点并分配任务,存储DataNode上的一些信息(比如:数据大小、位置、任务说明)】;
- DataNode:从节点,真正干活的服务器,存储和计算发生在其中;
- namenode和DataNode三种机制:
1.心跳(namenode确定工作节点是否还活着,挂了就分配给其他人);每个DataNode有3小块,黑色表示备份,挂了相邻两个节点有备份;
2.负载均衡机制:相互之间压力互分担;
3.secondary namenode: 不是备份,是做辅助工作分担namenode压力的
![f1657e92542ca1431aa4750ac740ba6c.png](https://i-blog.csdnimg.cn/blog_migrate/e443d24bbae23f2aa0a4967d86e64070.png)
![3f3025c6dc8d82093f973236acb79a25.png](https://i-blog.csdnimg.cn/blog_migrate/c2e205dab7c8ad1028d9e854f89da8ff.png)
![5ea3b22a70a224f22fe9206925051fc7.png](https://i-blog.csdnimg.cn/blog_migrate/322ede65555021a1dad9c8ec11442c40.png)
例子:搜索热度【词频统计】:输入数据-分片-打上小标签(出现几次)-洗牌按字典排序-相同单词整理到一个分片中-输出最后结果