大数据组件之Hadoop图文介绍

前言

在当今大数据时代,回顾技术发展历程,Hadoop作为一项具有里程碑意义的开源项目,在大数据存储和处理领域曾一度占据主导地位。诞生于2005年的Apache Hadoop,以其独特的分布式文件系统(HDFS)和高效的并行计算框架(MapReduce),为海量数据的高效存储、管理和分析提供了有力支持。

时至今日,当我们重新审视Hadoop这一经典组件时,有必要对其核心技术架构、功能特点以及在现代数据处理体系中的角色变化进行全面梳理,以便更好地理解其历史贡献及未来可能的发展方向。

发展历史

2004年,Doug Cutting受到Google发表的GFS(Google File System)和MapReduce论文启发,开始了Hadoop分布式文件系统(HDFS)和MapReduce计算框架的初步研发工作。

  • 2005年底,Hadoop作为一个独立项目从Nutch中剥离出来,并在Apache软件基金会成为顶级项目。
  • 同年,Hadoop在20个节点上稳定运行,展现出处理大规模数据的能力。

Hadoop的第一个稳定版于2011年发布,形成了以HDFS和MapReduce为核心的Hadoop 1.0版本。

随着Hadoop的发展,为了提高资源利用率和兼容更多的计算框架,Apache推出了Hadoop 2.0,引入了全新的资源管理器YARN(Yet Another Resource Negotiator),实现了更灵活的多租户和多种计算框架共存的架构。

之后几年间,围绕Hadoop形成了庞大的生态系统,包括Pig、Hive、HBase、ZooKeeper、Sqoop、Oozie等多种组件和服务,这些工具和服务极大地丰富了Hadoop的应用场景和能力范围。

生态介绍

这个生态最早被称作动物园:

Hadoop生态之所以被称为“动物园”,是因为在其发展早期,围绕Hadoop形成了一个包含众多以动物名称命名的项目和组件的生态系统。这些项目通常都有各自的动物图标,比如Hadoop本身(大象)、Hive(蜂巢)、Pig(猪)、HBase(海狸)、ZooKeeper(动物园管理员)、Flume(鹈鹕)、Chukwa(鹤)、Avro(鸟)、Kafka(猿猴)、Mahout(大象训练师,后来不再沿用动物名但最初也是)等等。

主要特性

  1. 资源利用率高,共享集群模式通过多种框架共享数据和硬件资源,减小数据移动成本;
  2. 运维成本低,共享模式少数管理员即可完成多个框架的统一管理;
  3. 良好的扩展性,可通过添加机器达到线性扩展集群能力的目的;
  4. 容错性,计算迁移或数据迁移等策略提高集群的可用性与容错性;
  5. 易于编程,简化分布式程序设计提高开发效率。
  6. YARN基于标签的调度解决的核心需求是实现部分资源的完全隔离,以及由此基础之上的各个资源池之间的资源互助,最终达到隔离并且弹性的计算形态。其作用是划分集群、指定标签资源百分比,分配给队列。

应用场景

数据密集型 并行计算 :数据量极大,但是计算相对简单的 并行处理 ,例如大规模 Web 信息搜索
计算密集型并行计算 :数据量相对不是很大,但是计算较为复杂的并行计算,例如气象预报,科学计算
数据密集与计算密集混合型的 并行计算

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/436498.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

遗传算法理解与代码实战(一)- demo(python手写代码)

遗传算法(Genetic Algorithm, GA)是模拟自然界中生物进化的机制来搜索最优解的方法。遗传算法属于进化计算的一部分,它借鉴了达尔文的自然选择和孟德尔的遗传学原理。 1、算法背景 遗传算法的灵感来源于生物进化过程。在自然界中&#xff0…

string 的模拟实现

string 的相关介绍:C:string相关内容的简单介绍-CSDN博客 成员变量: private:char* _strsize_t _sizesize_t _capacity 构造函数 string类的构造函数不仅需要完成空间的开辟,还需要再开辟的过程中完成字符串的拷贝,它…

ThreadLocal在实际开发中如何使用?

在实际开发中,ThreadLocal 是一个非常有用的工具,用于解决多线程环境下数据隔离和线程上下文数据的问题。以下是一个关于 ThreadLocal 在实际开发中使用的详细讲解,包括其工作原理、应用场景和实战例子。 1. 工作原理 ThreadLocal 类…

Mybatis从入门到CRUD到分页到日志到Lombok到动态SQL再到缓存

Mybatis 入门 1.导入maven依赖 <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>x.x.x</version> </dependency>2.配置核心文件 <?xml version"1.0" encoding"U…

FISCO BCOS区块链平台上的智能合约压力测试指南

引言 在当今的分布式系统中&#xff0c;区块链技术因其去中心化、安全性和透明性而备受关注。随着区块链应用的不断扩展&#xff0c;对其性能和稳定性的要求也越来越高。因此&#xff0c;对区块链网络进行压力测试显得尤为重要。 目录 引言 1. 配置FISCO BCOS节点 2. 安装和…

Linux内核源码分析(强烈推荐收藏!)

一&#xff0c;前言 Linux内核是一个操作系统&#xff08;OS&#xff09;内核&#xff0c;本质上定义为类Unix。它用于不同的操作系统&#xff0c;主要是以不同的Linux发行版的形式。Linux内核是第一个真正完整且突出的免费和开源软件示例。Linux 内核是第一个真正完整且突出的…

Mysql - is marked as crashed and should be repaired

概述 上周发生了一个Mysql报错的问题&#xff0c;今天有时间整理一下产生的原因和来龙去脉&#xff0c;Mysql的版本是5.5,发生错误的表存储引擎都是MyISAM,产生的报错信息是Table xxxxxx is marked as crashed and should be repaired。 定位问题 产生的后果是Nginx服务没有…

MT6771 android13 自定义背光曲线

一. Android系统源码中的参数配置 MTK6771平台自己重写了背光曲线的参数&#xff0c;路径在s0_vnd/vendor/mediatek/proprietary/packages/overlay/vendor/FrameworkResOverlayExt/brightness_adaptive_support/res/values/config.xml 不过MTK的其他平台可能不是在这个路径 来看…

Linux Ubuntu部署SVN服务端结合内网穿透实现客户端公网访问

文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…

WordPress建站入门教程:如何上传安装WordPress主题?

我们成功搭建WordPress网站后&#xff0c;默认使用的是自带的最新主题&#xff0c;但是这个是国外主题&#xff0c;可能会引用一些国外的资源文件&#xff0c;所以为了让我们的WordPress网站访问速度更快&#xff0c;强烈建议大家使用国产优秀的WordPress主题。 今天boke112百…

javascript中字符串处理,常用的方法汇总

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;前端泛海 景天的主页&#xff1a;景天科技苑 文章目录 字符串对象的的相关方法1.获取字符串长度 length2.通过索引获取元素 …

让娃学习效率更高的“可视化”时间管理器

如果要问&#xff0c;老母亲在娃开学后&#xff0c;蕞着急孩子哪一种坏习惯&#xff0c;那时间管理肯定榜上有名&#xff01; 做作业的时候&#xff0c;才写了5分钟&#xff0c;已经没有耐心了&#xff0c;东摸摸西看看&#xff0c;一会说肚子疼想上厕所&#xff0c;一会又拿出…

Linux中线程的实现,线程的接口相关函数pthread_create、pthread_join、pthread_exit

目录 一.线程的概念 二.操作系统中线程的实现 三.Linux中线程的实现 四.进程与线程的区别 五.线程的接口相关函数 5.1 pthread_create 5.2 pthread_join 5.3 pthread_exit 六.代码演示 七.如何解决上述问题&#xff1f; 方案1. 方案2. 方案3. 一.线程的概念 进程是…

【数据结构】矩阵的压缩存储

矩阵的压缩存储 5.1 普通矩阵的存储 用二维数组存储 分为行优先和列优先&#xff1a; 行优先&#xff1a;优先存放一行的数据。 列优先&#xff1a;优先存放一列的数据。 注意下标是从0还是1开始的&#xff01; 5.2 对称矩阵的存储 对称矩阵定义 若n阶方阵中任意一个元素 a i …

Allure小白下载安装

1、下载官网地址&#xff1a;https://github.com/allure-framework/allure2/releases 2、下载安装包后需要解压到一个非中文名称路径下 3、配置环境变量 D:\Allure\allure-2.27.0\bin 我的电脑右键选择属性&#xff0c;高级系统设置&#xff0c;环境变量 4、CMD查看安装all…

Java | Java的输入与输出

文章目录 Java输出1、System.out.println()2、System.out.printf()3、System.out.print() Java输入1、使用Scanner类的对象获取输入&#xff08;1&#xff09;一般类型输入&#xff08;2&#xff09;字符串类型输入&#xff08;3&#xff09;char类型输入 2、使用System.in.rea…

挑战杯 基于深度学习的目标检测算法

文章目录 1 简介2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 1 简介 &#x1f5…

Android APP性能指标(二)

文章目录 一、响应时间1.1 数据获取1.2 响应时间指标测试点1.3 启动速度测试点1.4 响应时间测试解决方法 二、流量2.1 数据获取2.2 流量测试关注点2.3 测试标准 三、电量3.1 连接手机3.2 数据获取3.3 获取APP的UID3.3 重置电池数据收集数据3.4 电量指标测试 四、温度五、性能测…

Pyaudio的安装以及报错解决

Pyaudio是一个可以用麦克风录入声音的库&#xff0c;但我在安装时发现无论是在cmd中pip安装还是在Pycharm中安装&#xff0c;都会报一堆错误。因此写一篇我最终的解决方案&#xff0c;我的解决办法是采用离线安装的方式&#xff0c;安装pyaudio库。 一.下载离线安装包 离线安…

超详细——动态内存分配+柔性数组

☃️个人主页&#xff1a;fighting小泽 &#x1f338;作者简介&#xff1a;目前正在学习C语言和数据结构 &#x1f33c;博客专栏&#xff1a;C语言学习 &#x1f3f5;️欢迎关注&#xff1a;评论&#x1f44a;&#x1f3fb;点赞&#x1f44d;&#x1f3fb;留言&#x1f4aa;&am…