Hadoop生态系统介绍「建议收藏」

Hadoop生态系统介绍「建议收藏」1、Hadoop生态系统概况Hadoop是一个能够对大量数据进行分布式处理的软件框架。具有可靠、高效、可伸缩的特点。Hadoop的核心是HDFS和Mapreduce,hadoop2.0还包括YARN。下图为hadoop的生态系统:2、HDFS(Hadoop分布式文件系统)源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版。是Hadoo

大家好,又见面了,我是你们的朋友全栈君。

1、Hadoop生态系统概况

Hadoop是一个能够对大量数据进行分布式处理的软件框架。具有
可靠、高效、可伸缩的特点。
Hadoop的核心是HDFS和Mapreduce,hadoop2.0还包括YARN。
下图为hadoop的生态系统:
Hadoop生态系统介绍「建议收藏」

2、HDFS(Hadoop分布式文件系统)

源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版。
是Hadoop体系中
数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。
Hadoop生态系统介绍「建议收藏」

Client
切分文件;访问HDFS;与NameNode交互,获取文件位置信息;与DataNode交互,读取和写入数据
NameNode:Master节点,在hadoop1.X中只有一个,管理HDFS的名称空间和数据块映射信息,配置副本策略,处理客户端请求。
DataNode:Slave节点,存储实际的数据,汇报存储信息给NameNode。
Secondary NameNode:辅助NameNode,分担其工作量;定期合并fsimage和fsedits,推送给NameNode;紧急情况下,可辅助恢复NameNode,但Secondary NameNode并非NameNode的热备。

3、Mapreduce(分布式计算框架)

源自于google的MapReduce论文,发表于2004年12月,Hadoop MapReduce是google MapReduce 克隆版。
源自于google的MapReduce论文
MapReduce是一种
计算模型,用以进行大数据量的计算。其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce这样的功能划分,非常适合在大量计算机组成的分布式并行环境里进行数据处理。
Hadoop生态系统介绍「建议收藏」

JobTracker:Master节点,只有一个,管理所有作业,作业/任务的监控、错误处理等;将任务分解成一系列任务,并分派给TaskTracker。
TaskTracker:Slave节点,运行Map Task和Reduce Task;并与JobTracker交互,汇报任务状态。
Map Task:解析每条数据记录,传递给用户编写的map(),并执行,将输出结果写入本地磁盘(如果为map-only作业,直接写入HDFS)。
Reducer Task:从Map Task的执行结果中,远程读取输入数据,对数据进行排序,将数据按照分组传递给用户编写的reduce函数执行。
Mapreduce处理流程,以wordCount为例:
Hadoop生态系统介绍「建议收藏」

4、Hive(基于Hadoop的数据仓库)

由facebook开源,最初用于解决海量结构化的日志数据统计问题。
Hive定义了一种类似SQL的查询语言(
HQL),
将SQL转化为MapReduce任务在Hadoop上执行
通常用于
离线分析。
Hadoop生态系统介绍「建议收藏」

5、Hbase(分布式列存数据库)

源自Google的Bigtable论文,发表于2006年11月,HBase是Google Bigtable克隆版
HBase是一个针对结构化数据的
可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。和传统关系数据库不同,HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce来处理,它将数据存储和并行计算完美地结合在一起。
数据模型:Schema–>Table–>Column Family–>Column–>RowKey–>TimeStamp–>Value
Hadoop生态系统介绍「建议收藏」

6、Zookeeper(分布式协作服务)

源自Google的Chubby论文,发表于2006年11月,Zookeeper是Chubby克隆版
解决分布式环境下的数据管理问题:
统一命名,状态同步,集群管理,配置同步等

7、Sqoop(数据同步工具)

Sqoop是SQL-to-Hadoop的缩写,主要用于
传统数据库和Hadoop之前传输数据
数据的导入和导出
本质上是Mapreduce程序,充分利用了MR的并行化和容错性。

8、Pig(基于Hadoop的数据流系统)

由yahoo!开源,设计动机是提供一种基于MapReduce的ad-hoc(计算在query时发生)数据分析工具
定义了一种数据流语言—Pig Latin,将脚本转换为MapReduce任务在Hadoop上执行。
通常用于进行离线分析。

9、Mahout(数据挖掘算法库)

Mahout起源于2008年,最初是Apache Lucent的子项目,它在极短的时间内取得了长足的发展,现在是Apache的顶级项目。
Mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout现在已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。除了算法,Mahout还包含数据的输入/输出工具、与其他存储系统(如数据库、MongoDB 或Cassandra)集成等数据挖掘支持架构。

10、Flume(日志收集工具)

Cloudera开源的日志收集系统,具有分布式、高可靠、高容错、易于定制和扩展的特点。
它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各种不同协议数据。同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具有能够将日志写往各种数据目标(可定制)的能力。总的来说,Flume是一个可扩展、适合复杂环境的海量日志收集系统。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/144256.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • mysql连接数据库命令_linux进入mysql的命令

    mysql连接数据库命令_linux进入mysql的命令一、MySQL连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123”之间不能有空格)C:>mysql-hlocalhost-uroot-p123二、MySQL连接远程数据库(192.168.0.201),端口“3306”,用户名为“root”,密码“123”C:>mysql-h172.16.16.45-P3306-uroot-p123三、MySQL连接本地数据库,用户名为“root”,隐藏密码C:>mysql-hloc

  • 什么是Java分布式?

    什么是Java分布式?对于初学者来说,学习Java的根本动力就是分布式开发,特别是apache下面的hadoop、hdfs、hbase,这些基本是分布式开发的标配。那么这篇文章就来和大家一起聊聊分布式吧!一、什么是分布式系统?要理解分布式系统,主要需要明白一下2个方面:1、分布式系统一定是由多个节点组成的系统。其中,节点指的是计算机服务器,而且这些节点一般不是孤立的,而是互通的。2、这些连通的节点上部署了我们的节点,并且相互的操作会有协同。分布式系统对于用户而言,他们面对的就是一个服务器,提供用户需要的服

  • 11种将InputStream转换成String的方法以及性能分析[通俗易懂]

    从其他回答中总结出了11种能将InputStream转换成String的方法(如下),并且对所有方法进行了性能测试(对比结果如下):将InputStream转换成String的方法:1.使用IOUtils.toString(ApacheUtils)Stringresult=IOUtils.toString(inputStream,StandardCharse…

  • 基础 | batchnorm原理及代码详解

    基础 | batchnorm原理及代码详解Batchnorm原理详解前言:Batchnorm是深度网络中经常用到的加速神经网络训练,加速收敛速度及稳定性的算法,可以说是目前深度网络必不可少的一部分。本文旨在用通俗易懂的语言,对深度学习的常用算法–batchnorm的原理及其代码实现做一个详细的解读。本文主要包括以下几个部分。Batchnorm主要解决的问题Batchnorm原理解读Batchnorm的优点B

  • ssm框架过时了吗_ssm和mvc框架

    ssm框架过时了吗_ssm和mvc框架日志如果一个数据库操作,出现了异常,我们需要排错,日志就是最好的助手曾经:sout,debug现在:日志工厂掌握STDOUT_LOGGINGLOG4Jlog4j什么是Log4j?我们可以控制日志信息输送的目的地是控制台我们也可以控制每一条日志的输出格式通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。分页减少数据量selsect * from user limit startIndex,pageS

  • ettercap做arp欺骗和dns欺骗—–详细教程

    ettercap做arp欺骗和dns欺骗—–详细教程本教程仅供学习使用,不得用于非法途径,我概不负责!!!!!!一年前玩过ettercap做arp欺骗和dns欺骗的实验,都忘记怎么操作的了,哈哈,现在重新整理下资料,方便小伙伴学习。 工具介绍: Ettercap:刚开始只是作为一个网络嗅探器,但在开发过程中,它获得了越来越多的功能,在中间的攻击人方面,是一个强大而又灵活的工具。它支持很多种协议(即使是加密的)…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号