0.Hbase

Hbase和hive的区别
共同点:
1.hbase与hive都是架构在hadoop之上的。都是用hadoop作为底层存储

区别:
2.Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目 。
3.想象你在操作RMDB数据库,如果是全表扫描,就用Hive+Hadoop,如果是索引访问,就用HBase+Hadoop 。
4.Hive query就是MapReduce jobs可以从5分钟到数小时不止,HBase是非常高效的,肯定比Hive高效的多。
5.Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表纯逻辑。
6.hive借用hadoop的MapReduce来完成一些hive中的命令的执行
7.hbase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它来存储索引,方便查询操作。
8.hbase是列存储。
9.hdfs作为底层存储,hdfs是存放文件的系统,而Hbase负责组织文件。
10.hive需要用到hdfs存储文件,需要用到MapReduce计算框架。

1.MapReduce(磁盘计算模式Hadoop)

HDFS----Map----shuffle----Reduce-----HDFS

上图是论文里给出的MapReduce流程图。一切都是从最上方的user program开始的,user program链接了MapReduce库,实现了最基本的Map函数和Reduce函数。图中执行的顺序都用数字标记了。

(1)MapReduce库先把user program的输入文件划分为M份(M为用户定义),每一份通常有16MB到64MB,如图左方所示分成了split0~split4;然后使用fork将用户进程拷贝到集群内其它机器上。

(2)user program的副本中有一个称为master,其余称为worker,master是负责调度的,为空闲worker分配作业(Map作业或者Reduce作业),worker的数量也是可以由用户指定的。

(3)被分配了Map作业的worker,开始读取对应分片的输入数据,Map作业数量是由M决定的,和split一一对应;Map作业从输入数据中抽取出键值对,每一个键值对都作为参数传递给map函数,map函数产生的中间键值对被缓存在内存中(环形缓冲区kvBuffer)。

(4)缓存的中间键值对会被定期写入本地磁盘(spill),而且被分为R个区,R的大小是由用户定义的,将来每个区会对应一个Reduce作业;这些中间键值对的位置会被通报给master,master负责将信息转发给Reduce worker。

(5)master通知分配了Reduce作业的worker它负责的分区在什么位置(肯定不止一个地方,每个Map作业产生的中间键值对都可能映射到所有R个不同分区),当Reduce worker把所有它负责的中间键值对都读过来后,先对它们进行排序,使得相同键的键值对聚集在一起。因为不同的键可能会映射到同一个分区也就是同一个Reduce作业,所以排序是必须的。

(6)reduce worker遍历排序后的中间键值对,对于每个唯一的键,都将键与关联的值传递给reduce函数,reduce函数产生的输出会添加到这个分区的输出文件中。

(7)当所有的Map和Reduce作业都完成了,master唤醒正版的user program,MapReduce函数调用返回user program的代码。

所有执行完毕后,MapReduce输出放在了R个分区的输出文件中(分别对应一个Reduce作业)。用户通常并不需要合并这R个文件,而是将其作为输入交给另一个MapReduce程序处理。整个过程中,输入数据来自底层分布式文件系统(hdfs),中间数据是放在本地文件系统的,最终输出数据是写入hdfs的。注意Map/Reduce作业和map/reduce函数的区别:Map作业处理一个输入数据的分片,可能需要调用多次map函数来处理每个输入键值对;Reduce作业处理一个分区的中间键值对,期间要对每个不同的键调用一次reduce函数,Reduce作业最终也对应一个输出文件。

2.yarn(分布式资源管理系统)


这张图是YARN的经典任务执行流程图。可以发现上图中有5类角色:

Client
Resource Manager
Node Manager
Application Master
Container

先简单来梳理提交任务的流程。

要将应用程序(MapReduce/Spark/Flink)程序运行在YARN集群上,先得有一个用于将任务提交到作业的客户端,也就是client。它向Resource Manager(RM)发起请求,RM会为提交的作业生成一个JOB ID。此时,JOB的状态是:NEW
客户端继续将JOB的详细信息提交给RM,RM将作业的详细信息保存。此时,JOB的状态是:SUBMIT
RM继续将作业信息提交给scheduler(调度器),调度器会检查client的权限,并检查要运行Application Master(AM)对应的queue(默认:default queue)是否有足够的资源。此时,JOB的状态是ACCEPT。
接下来RM开始为要运行AM的Container资源,并在Container上启动AM。此时,JOB的状态是RUNNING
AM启动成功后,开始与RM协调,并向RM申请要运行程序的资源,并定期检查状态。
如果JOB按照预期完成。此时,JOB的状态为FINISHED。如果运行过程中出现故障,此时,JOB的状态为FAILED。如果客户端主动kill掉作业,此时,JOB的状态为KILLED。

3.Spark

4.hadoop生态


1)高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障也不会导致数据的丢失

(一个集群节点只有一个副本,多了没用)

2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。

3)高效性:在Mapreduce 的思想下,Hadoop是并行工作的,以加快任务处理速度

4)高容错性:能够自动的将失败的任务重新分配

5.HDFS(Hadoop分布式文件管理系统)

5.1HDFS前言
设计思想
分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析;

在大数据系统中作用:
为各类分布式运算框架(如:mapreduce,spark,tez,……)提供数据存储服务

重点概念:文件切块,副本存放,元数据
补充:
hdfs是架在本地文件系统上面的分布式文件系统,它就是个软件,也就是用一套代码把底下所有机器的硬盘变成一个软件下的目录,和mysql没有什么区别,思想一样。
mysql 本质是一个解析器,把sql变成io去读文件,再把数据转换出来给用户,存文件的底层就是使用linux或者windows的文件系统,文件名就是表名,目录名就是库名。

5.2HDFS的概念和特性
首先,它是一个文件系统,用于存储文件,通过统一的命名空间——目录树来定位文件

其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色;

重要特性如下:
(1)HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数( dfs.blocksize)来规定,默认大小在hadoop2.x版本中是128M,老版本中是64M

(2)HDFS文件系统会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data

(3)**目录结构及文件分块信息(元数据)**的管理由namenode节点承担
——namenode是HDFS集群主节点,负责维护整个hdfs文件系统的目录树,以及每一个路径(文件)所对应的block块信息(block的id,及所在的datanode服务器)

(4)文件的各个block的存储管理由datanode节点承担
---- datanode是HDFS集群从节点,每一个block都可以在多个datanode上存储多个副本(副本数量也可以通过参数设置dfs.replication)
补充:同一个block不会存储多份(大于1)在同一个datanode上,因为这样没有意义。

(5)HDFS是设计成适应一次写入,多次读出的场景,且不支持文件的修改

(注:适合用来做数据分析,并不适合用来做网盘应用,因为,不便修改,延迟大,网络开销大,成本太高)

6.Hive(类似MySQL)

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
6.1为什么要用Hive呢?
1.) 直接使用hadoop所面临的问题
人员学习成本太高
项目周期要求太短
MapReduce实现复杂查询逻辑开发难度太大
2.)操作接口采用类SQL语法,提供快速开发的能力。
避免了去写MapReduce,减少开发人员的学习成本。
扩展功能很方便。

6.2Hive与Hadoop的关系
Hive利用HDFS存储数据,利用MapReduce查询数据

6.3 Hive与传统数据库对比

总结:hive具有sql数据库的外表,但应用场景完全不同,hive只适合用来做批量数据统计分析

大数据常见专有名词解释相关推荐

  1. 208个最新最全大数据/人工智能专有名词术语 中英对照(强烈推荐收藏)

    一个产业的蓬勃发展离不开基础知识点的整理与沉淀. 我们相信这一份「208个关于大数据和人工智能的专用名词术语」中英文对照版 ;会成为大家以后日常工作中常用的工具,无论是你在翻译.写产品文档.写论文.又 ...

  2. 208个最新最全大数据/人工智能专有名词术语 中英对照

    一个产业的蓬勃发展离不开基础知识点的整理与沉淀. 我们相信这一份「208个关于大数据和人工智能的专用名词术语」中英文对照版 ;会成为大家以后日常工作中常用的工具,无论是你在翻译.写产品文档.写论文.又 ...

  3. 大数据技术之名词解释

    分布式系统 分布式系统(distributed system)是建立在网络之上的软件系统.正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性.因此,网络和分布式系统之间的区别更多的在于高层软件 ...

  4. 熟读《阿里巴巴java开发手册》(六、工程结构,七、 设计规约,专有名词解释)

    目录 六.工程结构 (一) 应用分层 (二) 二方库依赖 (三) 服务器 七. 设计规约 附 2: 专有名词解释 六.工程结构 (一) 应用分层 1. [推荐] 图中默认上层依赖于下层,箭头关系表示可 ...

  5. Java中常见的名词解释

    java 学习笔记指路 基础知识 Python转java补充知识 Java中常见的名词解释 前端 [黑马程序员pink老师前端]HTML [黑马程序员pink老师前端]JavaScript基础大总结 ...

  6. python考试名词解释_python公开课|python专有名词居然有这么多,python专有名词解释已做好...

    [摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注py ...

  7. 大数据常见英文词汇(二)(待续)

    大数据常见英文词汇(二)(待续) 以下单词是本人在学习大数据过程中遇到的生疏单词词汇.单词均在百度翻译中得到的释义,可能有失偏颇,望读者指正! 原文 译文 ACK 确认.命令正确应答 Advanced ...

  8. 2021年全网最详细大数据常见端口汇总❤️【建议收藏】❤️

    目录 大数据常见端口汇总 一.Hadoop 二.Zookeeper 三.Hbase 四.Hive 五.Spark 六.Kafka 七.Flink 八.Flume 九.Redis 十.CDH 十一.HU ...

  9. 大数据常见错误及解决方案

    大数据常见错误及解决方案(转载) 1.用./bin/spark-shell启动spark时遇到异常:java.net.BindException: Can't assign requested add ...

  10. 大数据常见英文词汇(待更新)

    大数据常见英文词汇(待更新) words(单词) resilient 有弹性的 parallelize 并行化 procedure 过程 process 进程.处理 program 程序 schedu ...

最新文章

  1. async/await工作机制探究--NodeJS
  2. 新浪是如何分析处理32亿条实时日志的?
  3. Java爬虫之利用Jsoup自制简单的搜索引擎
  4. php真随机数,php 的伪随机数与真随机数实例详解
  5. LayoutInflater——inflate方法不同参数的区别
  6. java重装机兵机甲咆哮_重装机兵之机甲咆哮流程攻略
  7. 20200225:最小路径和(leetcode64)
  8. 淘宝现重大BUG,是程序员报复?官方回应
  9. 三相坐标变换CLARK变换PARK变换
  10. matlab程序 直线插补,用Matlab实现直线插补计算程序
  11. 数据分析岗位需求分析
  12. Adobe Spark试用手记
  13. 解决基于html5video标签多个视频同时播放的问题
  14. 表达式运算(包含大整数加减乘)
  15. ArcGIS10.6表统计数据
  16. Deepin 2014.2正式版发布 - 自由·独特·前卫
  17. JEECG Excel 工具类
  18. VirtualBox安装虚拟机全过程
  19. EndnoteX9下载及教程
  20. Eclipse运行速度优化

热门文章

  1. 菜肴百度百科html,法式菜肴
  2. 阻尼牛顿法_python
  3. 永恒之蓝——windows server 2003 漏洞
  4. 10月24日程序员HTML5,【通知】10月24日程序员节放假1天
  5. 66个求职应聘技巧性问答(六)
  6. Android 模块化开发
  7. ttl传输种过期_ttl传输中过期是什么意思怎么解决
  8. 程序员常用的这十个电子书下载网站,你值得拥有
  9. window7系统搭建FTP服务端,使用FileZilla FTP客户端测试
  10. IT江湖之怎样成为IT界的西门吹雪和独孤求败