hadoop生态圈各个组件简介

hadoop生态圈各个组件简介1,HDFS(hadoop分布式文件系统)是hadoop体系中数据存储管理的基础。他是一个高度容错的系统,能检测和应对硬件故障。client:切分文件,访问HDFS,与那么弄得交互,获取文件位置信息,与DataNode交互,读取和写入数据。namenode:master节点,在hadoop1.x中只有一个,管理HDFS的名称空间和数据块映射信息,配置副本…

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

Hadoop 是一个能够对大量数据进行分布式处理的软件框架。具有可靠、高效、可伸缩的特点。

Hadoop 的核心是 HDFS 和 Mapreduce,HDFS 还包括 YARN。

1,HDFS(hadoop分布式文件系统)

是hadoop体系中数据存储管理的基础。他是一个高度容错的系统,能检测和应对硬件故障。

client:切分文件,访问HDFS,与namenode交互,获取文件位置信息,与DataNode交互,读取和写入数据。

 namenode:master节点,在hadoop1.x中只有一个,管理HDFS的名称空间和数据块映射信息,配置副本策略,处理客户 端请求。

 DataNode:slave节点,存储实际的数据,汇报存储信息给namenode。

 secondary namenode:辅助namenode,分担其工作量:定期合并fsimage和fsedits,推送给namenode;紧急情况下和辅助恢复namenode,但其并非namenode的热备。

2,mapreduce(分布式计算框架)

mapreduce是一种计算模型,用于处理大数据量的计算。其中map对应数据集上的独立元素进行指定的操作,生成键-值对形式中间,reduce则对中间结果中相同的键的所有值进行规约,以得到最终结果。

jobtracker:master节点,只有一个,管理所有作业,任务/作业的监控,错误处理等,将任务分解成一系列任务,并分派给tasktracker。

tacktracker:slave节点,运行 map task和reducetask;并与jobtracker交互,汇报任务状态。

map task:解析每条数据记录,传递给用户编写的map()并执行,将输出结果写入到本地磁盘(如果为map—only作业,则直接写入HDFS)。

reduce task:从map 它深刻地执行结果中,远程读取输入数据,对数据进行排序,将数据分组传递给用户编写的reduce函数执行。

3, hive(基于hadoop的数据仓库)

由Facebook开源,最初用于解决海量结构化的日志数据统计问题。

hive定于了一种类似sql的查询语言(hql)将sql转化为mapreduce任务在hadoop上执行。

4,hbase(分布式列存数据库)

hbase是一个针对结构化数据的可伸缩,高可靠,高性能,分布式和面向列的动态模式数据库。和传统关系型数据库不同,hbase采用了bigtable的数据模型:增强了稀疏排序映射表(key/value)。其中,键由行关键字,列关键字和时间戳构成,hbase提供了对大规模数据的随机,实时读写访问,同时,hbase中保存的数据可以使用mapreduce来处理,它将数据存储和并行计算完美结合在一起。

5,zookeeper(分布式协作服务)

解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。

6,sqoop(数据同步工具)

sqoop是sql-to-hadoop的缩写,主要用于传统数据库和hadoop之间传输数据。

数据的导入和导出本质上是mapreduce程序,充分利用了MR的并行化和容错性。

7,pig(基于hadoop的数据流系统)

定义了一种数据流语言-pig latin,将脚本转换为mapreduce任务在hadoop上执行。

通常用于离线分析。

8,mahout(数据挖掘算法库)

mahout的主要目标是创建一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。mahout现在已经包含了聚类,分类,推荐引擎(协同过滤)和频繁集挖掘等广泛使用的数据挖掘方法。除了算法是,mahout还包含了数据的输入/输出工具,与其他存储系统(如数据库,mongoDB或Cassandra)集成等数据挖掘支持架构。

9,flume(日志收集工具)

cloudera开源的日志收集系统,具有分布式,高可靠,高容错,易于定制和扩展的特点。他将数据从产生,传输,处理并写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在flume中定制数据发送方,从而支持收集各种不同协议数据。

10,资源管理器的简单介绍(YARN和mesos)

随着互联网的高速发展,基于数据 密集型应用 的计算框架不断出现,从支持离线处理的mapreduce,到支持在线处理的storm,从迭代式计算框架到 流式处理框架s4,…,在大部分互联网公司中,这几种框架可能都会采用,比如对于搜索引擎公司,可能的技术方法如下:网页建索引采用mapreduce框架,自然语言处理/数据挖掘采用spark,对性能要求到的数据挖掘算法用mpi等。公司一般将所有的这些框架部署到一个公共的集群中,让它们共享集群的资源,并对资源进行统一使用,这样便诞生了资源统一管理与调度平台,典型的代表是mesos和yarn。

 11,其他的一些开源组件:

 1)cloudrea impala:

  一个开源的查询引擎。与hive相同的元数据,SQL语法,ODBC驱动程序和用户接口,可以直接在HDFS上提供快速,交互式SQL查询。impala不再使用缓慢的hive+mapreduce批处理,而是通过与商用并行关系数据库中类似的分布式查询引擎。可以直接从HDFS或者Hbase中用select,join和统计函数查询数据,从而大大降低延迟。

 2)spark:

spark是个开源的数据 分析集群计算框架,最初由加州大学伯克利分校AMPLab,建立于HDFS之上。spark与hadoop一样,用于构建大规模,延迟低的数据分析应用。spark采用Scala语言实现,使用Scala作为应用框架。

spark采用基于内存的分布式数据集,优化了迭代式的工作负载以及交互式查询。

与hadoop不同的是,spark与Scala紧密集成,Scala象管理本地collective对象那样管理分布式数据集。spark支持分布式数据集上的迭代式任务,实际上可以在hadoop文件系统上与hadoop一起运行(通过YARN,MESOS等实现)。

3)storm

storm是一个分布式的,容错的计算系统,storm属于流处理平台,多用于实时计算并更新数据库。storm也可被用于“连续计算”,对数据流做连续查询,在计算时将结果一流的形式输出给用户。他还可被用于“分布式RPC”,以并行的方式运行昂贵的运算。

4)kafka

 kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息

5)redis

 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

 hadoop生态圈各个组件简介

Hadoop生态圈主要应用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143122.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月22日 上午10:40
下一篇 2022年5月22日 上午10:40


相关推荐

  • 嵌套事务回滚策略_内部事务回滚会导致外部事务回滚

    嵌套事务回滚策略_内部事务回滚会导致外部事务回滚嵌套事务回滚策略

    2022年10月7日
    8
  • 《中学数学》排列组合问题之:错位重排(python实现)

    《中学数学》排列组合问题之:错位重排(python实现)问题引出 编号为 1 N 的 N 个小球 装入编号为 1 N 的 N 个盒子 要求每个盒子装一个小球 并且盒子和小球的编号不相同 问有几种排法 假设 N 个小球有 D N 种排法 易得 D 1 0 D 2 1 D 3 2 容易推导关系式 D n n 1 D n 1 D n 2 其中 n gt 3

    2026年2月5日
    2
  • java定义字符串_Java定义字符串(2种方式)

    java定义字符串_Java定义字符串(2种方式)1 直接定义字符串 直接定义字符串是指使用双引号表示字符串中的内容 例如 HelloJava Java 编程 等 Stringstr HelloJava Stringstr str Youareinmyhe 注意 字符串变量必须经过初始化才能使用 2 使用 String 类定义 String 初始化一个新创建的 String 对象 表示一个空字符序列 Str

    2026年3月19日
    2
  • 蓝牙的自适应跳频技术

    蓝牙的自适应跳频技术蓝牙技术是工作在 2 4GHz 免费工业频段上的短距离无线通信技术 同时工作在 2 4G 频率上的还有其他无线通信标准 例如 802 11 我们知道如果两种频率同时工作在同一个频率段 那么就会产生相互干扰 造成数据传输质量降低 因此早期的蓝牙设计者考虑了这些问题后 决定采用调频的技术避免和 802 11 的频率竞争 即在每一个固定的频率上只驻留很短的时间然后在换一个频率进行数据的通信 但其实早期的蓝牙与 802 11 之间的干扰非常的严重 足以毁掉双方的通信 造成了双方无法共存的局面 于是蓝牙采用了自适应跳频技术

    2026年3月19日
    4
  • JS拼接字符串的效率

    JS拼接字符串的效率JS 拼接字符串的方式 1 最常见的是 2 还可以先将字符串转化为数组 然后调用 Join 实现字符串拼接 arr push str returnarr join 效率分为运行速度和内存消耗问题 网上查了相关资料 结论就是 join 在字符串字节很大时 百万级以上 用 join 会明显快于用 实现的字符串拼接 用 耗时大概时 10 秒 用 join 大概是几百毫秒 当字节数很

    2026年3月20日
    3
  • 什么是python的内置函数_python 内置函数

    什么是python的内置函数_python 内置函数一 什么是内置函数内置函数就是 python 给你提供的 拿来直接用的函数 截至到 python 版本 3 6 2python 一共提供了 68 个内置函数 他们就是 python 直接提供给我们的 作用域相关 locals 返回当前作用域中的名字 globals 返回全局作用域中的名字迭代器相关 range 生成数据 next 迭代器向下执行一次 内部实际使用了 next 返回迭代器的下一

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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