Hadoop家族的各个成员

hadoop这个词已经流行好多年了,一提到大数据就会想到hadoop,那么hadoop的作用是什么呢?

官方定义:hadoop是一个开发和运行处理大规模数据的软件平台。核心词语是平台,也就是说我们有大量的数据,又有好几个电脑,我们知道应该把处理数据的任务分解到各个电脑上,但是不知道怎样分配任务,怎样回收结果,hadoop大概就帮助我们做了这件事。

1、HDFS

我们首先应该考虑的是海量数据怎么保存,怎么管理。这就有了分布式文件系统,HDFS。

2、Map-Reduce

数据保存后,我们怎样处理这些数据呢,如果我处理的方法复杂,而不仅仅是排序,查找这样的操作怎么办?需要有一个能够提供编写代码的地方,让我们自己写出操作,它内部再进行分解,分配,回收数据等等。

3、Hive

能编代码是好的,但编代码太麻烦,而且数据库人员是熟悉SQL语句的,能用SQL语句处理,就不用Map-Reduce了吧,所以出现了Hive。而且大数据无论如何是离不开数据库,离不开表,Hive就能讲数据映射成数据表,然后再操作就方便了,它的缺点是速度较慢。

4、HBase

既然Hive的速度较慢,那么有没有较快的数据库呢?HBase就是,他为查询而生的,查询的速度很快。

5、Sqoop

以前不是有很多有名的数据库像MySQL,Oracle,我数据都是存在这里面的,怎么导入到HDFS中呢?Sqoop提供了关系型数据库和HDFS之间的相互转换。

6、Flume

在这么多电脑上工作,如果其中一台有点问题,或者上面哪个服务有点问题,怎样知道哪坏了呢?Flume提供了一个高可靠的日志采集系统。

7、Mahout

处理大数据很多是用来进行数据挖掘,有那几种常见的机器学习算法,既然算法都固定了而且就那几种,那就开发个叫Mahout的东西实现各种算法,开发人员就能更快捷的使用。

8、Zookeeper

ZooKeeper的目标是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。说白了就是动物园管理员,他是用来来管大象(Hadoop) 、 蜜蜂(Hive)的。

以上是Hadoop家族的主要成员,还有几个不常用的就不用介绍了,知道这些成员的作用后,对Hadoop整体能干什么就有了初步的认识,剩下的就是慢慢学习各个部分的原理和使用方法了。

9  Shuffle(洗牌)

当第一个map任务完成后,节点可能还要继续执行更多的map 任务,但这时候也开始把map任务的中间输出交换到需要它们的 reducer那里去,这个移动map输出到 reducer 的过程叫做shuffle。

10 Partition

每一个reduce节点会分派到中间输出的键集合中的一个不同的子集合,这些子集合(被称为“partitions”)是reduce任务的输入数据。每一个map任务生成的键值对可能会隶属于任意的partition,有着相同键的数值总是在一起被reduce,不管它是来自那个mapper的。因此,所有的map 节点必须就把不同的中间数据发往何处达成一致。Partitioner 类就是用来决定给定键值对的去向,默认的分类器(partitioner)会计算键的哈希值并基于这个结果来把键赋到相应的partition上。

11 排序(Sort)

每一个reduce任务负责归约(reduceing)关联到相同键上的所有数值,每一个节点收到的中间键集合在被送到具体的reducer那里前就已经自动被Hadoop排序过了。

12 Combiner:

前面展示的流水线忽略了一个可以优化MapReduce作业所使用带宽的步骤,这个过程叫Combiner,它在Mapper之后 Reducer之前运行。Combiner是可选的,如果这个过程适合于你的作业,Combiner 实例会在每一个运行map任务的节点上运行。Combiner会接收特定节点上的 Mapper 实例的输出作为输入,接着 Combiner 的输出会被发送到Reducer那里,而不是发送Mapper的输出。 Combiner是一个“迷你reduce”过程,它只处理单台机器生成的数据。

13 Reporter

是用于Map/Reduce应用程序报告进度,设定应用级别的状态消息, 更新Counters(计数器)的机制。

14 Mapper和Reducer的实现可以利用Reporter 来报告进度,或者仅是表明自己运行正常。在那种应用程序需要花很长时间处理个别键值对的场景中,这种机制是很关键的,因为框架可能会以为这个任务超时了,从而将它强行杀死。另一个避免这种情况发生的方式是,将配置参数mapred.task.timeout设置为一个足够高的值(或者干脆设置为零,则没有超时限制了)。 应用程序可以用Reporter来更新Counter(计数器)。

15 OutputCollector:

是一个Map/Reduce框架提供的用于收集 Mapper或Reducer输出数据的通用机制 (包括中间输出结果和作业的输出结果)。

-------------------------------------------------------------华丽的分割线-------------------------------------------------------------------------------------------------

hadoop的运行模式简介:

单机模式(standalone)

单机模式是Hadoop的默认模式。当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置。在这种默认模式下所有3个XML文件均为空。当配置文件为空时,Hadoop会完全运行在本地。因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑。

伪分布模式(Pseudo-Distributed Mode)

伪分布模式在“单节点集群”上运行Hadoop,其中所有的守护进程都运行在同一台机器上。该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。

hadoop各个名词的理解的更多相关文章

  1. Hadoop专有名词

    Hadoop专有名词 一. HDFS 二. MapReduce 1.MRAppMaster:MapReduce Application Master 负责整个过程调度和协调的 2.MapTask:在M ...

  2. spring aop一些名词的理解

    最近想深入了解spring,已经使用spring一段时间,但是对spring的理解一直很肤浅,先把几个常见的名词理解一下. 比如一个ssh架构的电商系统上面有用户模块,商品模块,订单模块,支付模块等, ...

  3. 对hadoop之RPC的理解

    因为公司hadoop集群出现了一些瓶颈,在机器不增加的情况下需要进行优化,不管是存储还是处理性能,更合理的利用现有集群的资源,所以来学习了一波hadoop的rpc相关的知识和hdfs方面的知识,以及y ...

  4. github上对一些名词的理解(之如fork)

    fork: Fork 的本义是 叉子(名词) . 比较自然的引申成 分叉(动词) ,就像上面叉子,从左到从右,一条线变成多条了. Git/GitHub 用户下面的图 来表达 Fork:分叉.克隆 出一 ...

  5. Hadoop 对MapReduce的理解

    对MapReduce的理解 客户端启动一个作业 向JobTraker请求一个JobId 将资源文件复制到HDFS上,包括Jar文件,配置文件,输入划分信息等 接收作业后,进入作业队列,根据输入划分信息 ...

  6. 网上查了点关于windows注册表的知识,发现基本名词没理解好,于是整理这篇笔记(可能个别地方不准确,先这么理解吧),有了这个理解,再去看网上的文章,就差不读了

    打开注册表编辑器,左边窗格中显示的是“注册表项”,右边窗格中显示的是“注册表项的项值” 子项:子项是相对父项而言的,在某一个项(父项)下面出现的项(子项) 值项:一个项可以有一个或多个项值,当前被使用 ...

  7. hadoop以及相关组件介绍以及个人理解

    前言 本人是由java后端转型大数据方向,目前也有近一年半时间了,不过我平时的开发平台是阿里云的Maxcompute,通过这么长时间的开发,对数据仓库也有了一定的理解,ETL这些经验还算比较丰富.但是 ...

  8. 正确理解hadoop 2.x 的环形缓冲区: (一) MR环形缓冲区的结构

    转载:http://blog.csdn.net/HADOOP_83425744/article/details/49560583 http://bigdatadecode.club/MapReduce ...

  9. 大数据学习-2 认识Hadoop

    一.什么是Hadoop? Hadoop可以简单的理解为一个数据存储和数据分析分布式系统.随着互联网的普及产生的数据是非常的庞大的,那么我们怎么去处理这么大量的数据呢?传统的单一计算机肯定是完成不了的, ...

随机推荐

  1. zookeeper原理介绍

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt354 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它 ...

  2. 定时调度框架:Quartz.net

    Quartz.net相关概念 经常出现场景:定时轮询数据库同步,定时邮件通知,定时处理数据等 Scheduler (计划者或调度器) Job (工作对象):将要定时执行的任务代码写到实现Ijob接口的 ...

  3. System.Globalization.CultureInfo.InvariantCulture 解决不同地域字符串格式不同问题

    同样的DateTime.ToShortDateString()   在不同的地域输出格式不同 如在美国的 日期格式为 :  月-日-年 如在中国的 日期格式为 :  年-月-日 一些时候,这个格式就会 ...

  4. Java Object中的equals和hashCode

    Java的Object对象中有两个方法比较有意思,一个是equals(),一个是hashCode(),那么这两个的作用有些同学可能还不是很清楚,那么同学们现在就进一步了解一下吧. 下面咱们写一个简单的 ...

  5. CCNP-3.vlan间路由及三层交换机的配置

  6. 团队作业8——Beta 阶段冲刺3rd day

    一.当天站立式会议 二.每个人的工作 (1)昨天已完成的工作(具体在表格中) 添加了订单功能,并且对订单功能进行了测试 (2)今天计划完成的工作(具体如下) 添加支付功能 (3) 工作中遇到的困难(在 ...

  7. Python[小甲鱼-002用Python设计第一个游戏]

    –Code——————————————————————- print("----------第一个小游戏----------") temp = input("猜一下我现在 ...

  8. 201521123121 《Java程序设计》第10周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 进程:每个进程都有独立的代码和数据空间,进程间的切换会有较大的开销,一个进程包含1--n个线程. 线程:同一 ...

  9. Java第十二周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...

  10. 201521123099 《Java程序设计》第13周学习总结

    本周学习总结 书面作业 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? 1.2 telnet bbs. ...