深入解析Hadoop生态核心组件:HDFS、MapReduce和YARN
这里写目录标题
- 01HDFS
- 02Yarn
- 03Hive
- 04HBase
- 1.特点
- 2.存储
- 05Spark及Spark Streaming
- 关于作者:
- 推荐理由:
- 作者直播推荐:
一篇讲明白 Hadoop 生态的三大部件
进入大数据阶段就意味着进入NoSQL阶段,更多的是面向OLAP场景,即数据仓库、BI应用等。
大数据技术的发展并不是偶然的,它的背后是对于成本的考量。集中式数据库或者基于MPP架构的分布数据库往往采用的都是性能稳定但价格较为昂贵的小型机、一体机或者P C服务器等,扩展性相对较差;而大数据计算框架可以基于价格低廉的普通的硬件服务器构建,并且理论上支持无限扩展以支撑应用服务。
在大数据领域中最有名的就是 Hadoop 生态,总体来看,它主要由三部分构成:底层文件存储系统 HDFS(Hadoop Distributed File System,Hadoop 分布式文件系统)、资源调度计算框架 Yarn(Yet Another Resource Negotiator,又一个资源协调者)以及基于 HDFS 与 Yarn的上层应用组件,例如 HBase、Hive 等。一个典型的基于 Hadoop 的应用如下图所示。
一个典型的 Hadoop 应用
01HDFS
HDFS 被设计成适合运行在通用硬件(Commodity Hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点,例如典型的 Master-Slave 架构(这里不准备展开介绍),也有不同点,HDFS 是一个具有高度容错性的系统,适合部署在廉价的机器上。关于HDFS 这里主要想说两点,默认副本数的设置以及机架感知(Rack Awareness)。
HDFS 默认副本数是 3,这是因为 Hadoop 有着高度的容错性,从数据冗余以及分布的角度来看,需要在同一机房不同机柜以及跨数据中心进行数据存储以保证数据最大可用。因此,为了达到上述目的,数据块需要至少存放在同一机房的不同机架(2 份)以及跨数据中心的某一机架(1 份)中,共 3 份数据。
机架感知的目的是在计算中尽量让不同节点之间的通信能够发生在同一个机架之 内,而不是跨机架,进而减少分布式计算中数据在不同的网络之间的传输,减少网络带 宽资源的消耗。例如当集群发生数据读取的时候,客户端按照由近到远的优先次序决定 哪个数据节点向客户端发送数据,因为在分布式框架中,网络 I/O 已经成为主要的性能瓶颈。
只有深刻理解了这两点,才能理解为什么 Hadoop 有着高度的容错性。高度容错性是Hadoop 可以在通用硬件上运行的基础。
02Yarn
Yarn 是继 Common、HDFS、MapReduce 之 后 Hadoop 的又一个子项目, 它是在MapReduceV2 中提出的。
在 Hadoop1.0 中,JobTracker 由资源管理器(由 TaskScheduler 模块实现)和作业控制 (由 JobTracker 中多个模块共同实现)两部分组成。
在 Hadoop1.0 中,JobTracker 没有将资源管理相关功能与应用程序相关功能拆分开,逐 渐成为集群的瓶颈,进而导致集群出现可扩展性变差、资源利用率下降以及多框架支持不 足等多方面的问题。
在 MapReduceV2 中,Yarn 负责管理 MapReduce 中的资源(内存、CPU 等)并且将其 打包成 Container。这样可以使 MapReduce 专注于它擅长的数据处理任务,而不需要考虑资源调度。这种松耦合的架构方式实现了 Hadoop 整体框架的灵活性。
03Hive
Hive 是基于Hadoop 的数据仓库基础构架,它利用简单的 SQL 语句(简称 HQL)来查询、分析存储在 HDFS 中的数据,并把 SQL 语句转换成 MapReduce 程序来进行数据的处理。Hive与传统的关系型数据库的主要区别体现在以下几点。
1)存储的位置, Hive 的数据存储在 HDFS 或者 HBase 中,而后者的数据一般存储在裸设备或者本地的文件系统中,由于 Hive 是基于 HDFS 构建的,那么依赖 HDFS 的容错特性,Hive 中的数据表天然具有冗余的特点。
2)数据库更新, Hive 是不支持更新的,一般是一次写入多次读写(这部分从 Hive 0.14之后开始支持事务操作,但是约束比较多),但是由于 Hive 是基于 HDFS 作为底层存储的, 而 HDFS 的读写不支持事务特性,因此 Hive 的事务支持必然需要拆分数据文件以及日志文 件才能支持事务的特性。
3)执行 SQL 的延迟,Hive 的延迟相对较高,因为每次执行都需要将 SQL 语句解析成MapReduce 程序。
4)数据的规模上,Hive 一般是 TB 级别,而后者规模相对较小。
5)可扩展性上,Hive 支持 UDF、UDAF、UDTF,后者相对来说可扩展性较差。
04HBase
HBase(Hadoop Database)是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。它底层的文件系统使用 HDFS, 使用ZooKeeper 来管理集群的 HMaster 和各RegionServer 之间的通信,监控各RegionServer 的状态,存储各 Region 的入口地址等。
1.特点
HBase 是 Key-Value 形式的数据库(类比 Java 中的 Map)。既然是数据库那肯定就有 表,HBase 中的表大概有以下几个特点。
1)大:一个表可以有上亿行,上百万列(列多时,插入变慢)。
2)面向列:面向列(族)的存储和权限控制,列(族)独立检索。
3)稀疏:对于空(null)的列,并不占用存储空间,因此,表可以设计得非常稀疏。
4)每个单元格中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入 时的时间戳。
5)HBase 中的数据都是字节,没有类型定义具体的数据对象(因为系统需要适应不同 类型的数据格式和数据源,不能预先严格定义模式)。
这里需要注意的是,HBase 也是基于 HDFS,所以也具有默认 3 个副本、数据冗余的特 点。此外 HBase 也是利用 WAL 的特点来保证数据读写的一致性。
2.存储
HBase 采用列式存储方式进行数据的存储。传统的关系型数据库主要是采用行式存储 的方式进行数据的存储,数据读取的特点是按照行的粒度从磁盘上读取数据记录,然后根 据实际需要的字段数据进行处理,如果表的字段数量较多,但是需要处理的字段较少(特 别是聚合场景),由于行式存储的底层原理,仍然需要以行(全字段)的方式进行数据的查 询。在这个过程中,应用程序所产生的磁盘 I/O、内存要求以及网络 I/O 等都会造成一定的 浪费;而列式存储的数据读取方式主要是按照列的粒度进行数据的读取,这种按需读取的 方式减少了应用程序在数据查询时所产生的磁盘 I/O、内存要求以及网络 I/O。
此外,由于相同类型的数据被统一存储,因此在数据压缩的过程中压缩算法的选用以 及效率将会进一步加强,这也进一步降低了分布式计算中对于资源的要求。
列式存储的方式更适合 OLAP 型的应用场景,因为这类场景具有数据量较大以及查询字段较少(往往都是聚合类函数)的特点。例如最近比较火的 ClickHouse 也是使用列式存储的方式进行数据的存储。
05Spark及Spark Streaming
Spark 由 Twitter 公司开发并开源,解决了海量数据流式分析的问题。Spark 首先将数据 导入 Spark 集群,然后通过基于内存的管理方式对数据进行快速扫描,通过迭代算法实现 全局 I/O 操作的最小化,达到提升整体处理性能的目的。这与 Hadoop 从“计算”找“数据” 的实现思路是类似的,通常适用于一次写入多次查询分析的场景。
Spark Streaming 是基于 Spark 的一个流式计算框架,它针对实时数据进行处理和控制, 并可以将计算之后的结果写入 HDFS。它与当下比较火的实时计算框架 Flink 类似,但是二者在本质上是有区别的,因为 Spark Streaming 是基于微批量(Micro-Batch)的方式进行数据处理,而非一行一行地进行数据处理。
关于作者:
李杨,资深数据架构师,在数据相关领域有10年以上工作经验。头部保险资管公司科技平台交易系统团队开发组负责人,负责多个应用以及数据平台的建设、优化以及迁移工作。曾担任某数据公司技术合伙人,负责多个金融机构的数据仓库或数据平台相关的工作。《企业级数据架构:核心要素、架构模型、数据管理与平台搭建》作者。
推荐理由:
一部从企业架构视角系统讲解企业级数据架构的著作,系统梳理和阐述了企业架构的基础知识,以及数据架构的组成要素、架构模型、数据治理和数据资产管理的理论知识。
作者直播推荐:
相关文章:
深入解析Hadoop生态核心组件:HDFS、MapReduce和YARN
这里写目录标题 01HDFS02Yarn03Hive04HBase1.特点2.存储 05Spark及Spark Streaming关于作者:推荐理由:作者直播推荐: 一篇讲明白 Hadoop 生态的三大部件 进入大数据阶段就意味着进入NoSQL阶段,更多的是面向…...
【chatGPT】我:在Cadence Genus软件中,出现如下问题:......【1】
我 在Cadence Genus中,出现如下问题:Error:A command argument did not match any of the acceptable command option. [TUI-170] [set_db] :‘/’ is not a legal option for the command. 该如何解决 ChatGPT Cadence Genus的错误消息 “…...
面试题:JVM 调优
一、JVM 参数设置 1. tomcat 的设置 vm 参数 修改 TOMCAT_HOME/bin/catalina.sh 文件,如下图 JAVA_OPTS"-Xms512m -Xmx1024m" 2. springboot 项目 jar 文件启动 通常在linux系统下直接加参数启动springboot项目 nohup java -Xms512m -Xmx1024m -jar…...
PS从入门到精通视频各类教程整理全集,包含素材、作业等(8)
PS从入门到精通视频各类教程整理全集,包含素材、作业等 最新PS以及插件合集,可在我以往文章中找到 由于阿里云盘有分享次受限制和文件大小限制,今天先分享到这里,后续持续更新 B站-PS异闻录:萌新系统入门课课程视频 …...
VSCode安装及Python、Jupyter插件安装使用
VSCode 介绍 Visual Studio Code(简称VSCode)是一个由微软开发的免费、开源的代码编辑器。VSCode是一个轻量级但是非常强大的代码编辑器,它支持多种编程语言(如C,C#,Java,Python,PHP࿰…...
JMeter+Grafana+influxdb 配置出现transaction无数据情况解决办法
JMeterGrafanainfluxdb 配置出现transaction无数据情况解决办法 一、问题描述二、解决方法 一、问题描述 如下图所示出现application有数据但是transaction无数据情况 二、解决方法 需要做如下设置 打开变量设置如下图打开两个选项 然后再进行后端监听器的设置 如下图所…...
Acrobat Pro DC 2023 for Mac PDF编辑管理软件
Acrobat Pro DC 2023 for Mac是一款功能强大的PDF编辑和管理软件,旨在帮助用户轻松处理PDF文件。它提供了丰富的工具和功能,使用户可以创建、编辑、转换和注释PDF文件,以及填写和签署PDF表单。 软件下载:Acrobat Pro DC 2023 for …...
Python大型数据集(GPU)可视化和Pillow解释性视觉推理及材料粒子凝聚
🎯要点 Python图像处理Pillow库:🎯打开图像、保存图像、保存期间的压缩方式、读取方法、创建缩略图、创建图像查看器。🎯获取 RGB 值,从图像中获取颜色,更改像素颜色,转换为黑…...
1、快速上手Docker:入门指南
文章目录 Linux中安装docker防火墙端口配置web项目需要的环境安装yarn安装nodejs安装脚手架并准备项目 构建镜像启动镜像查看日志管理镜像推送镜像 发布项目准备服务器环境部署项目: PS:扩展一点小知识 这篇文章只是docker入门的第一个Docker项目&#x…...
通用开发技能系列:Authentication、OAuth、JWT 认证策略
云原生学习路线导航页(持续更新中) 本文是 通用开发技能系列 文章,主要对编程通用技能 Authentication、OAuth、JWT 认证策略 进行学习 1.Basic Authentication认证 每个请求都需要将 用户名密码 进行base64编码后,放在请求头的A…...
【Leetcode】【240404】1614. Maximum Nesting Depth of the Parentheses
BGM(?):圣堂之门-阿沁《梵谷的左耳》 Description A string is a valid parentheses string (denoted VPS) if it meets one of the following: It is an empty string “”, or a single character not equal to “(” or “)…...
联通iccid 19转20 使用luhn 算法的计算公式
联通iccid 19转20 使用luhn 算法的计算公式 第一次对接iccid 才知道 使用的是luhn 算法 19转20位 文章来源于 文章来源 当时也是一脸懵逼 的状态,然后各种chatgpt 寻找,怎么找都发现不对,最后看到这片java的文章实验是正确的,因…...
I.MX6ULL的MAC网络外设设备树实现说明一
一. 简介 IMX6ULL芯片内部集成了两个 10/100M 的网络 MAC 外设,所以,ALPHA开发板上的有线网络的硬件方案是: SOC内部集成网络MAC外设 PHY网络芯片方案。 本文来说明一下MAC网络外设的设备节点信息的实现。 因此, I.MX6ULL 网络…...
vue弹出的添加信息组件中 el-radio 单选框无法点击问题
情景描述:在弹出的添加信息的组件中的form中有一个单选框,单选框无法进行点击切换 原因如下: 单选框要求有个默认值,因为添加和更新操作复用同一个组件,所以我在初始化时对相关进行了判定,如果为空则赋初始值 结果这样虽然实现了初始值的展示,但是就是如此造成了单选框的无法切…...
蓝桥杯刷题day13——玩游戏【算法赛】
一、问题描述 小 A 和小 B 两个人在海边找到了 n 个石子,准备开始进行一些游戏,具体规则如下:小 B 首先将 n 个石子分成若干堆,接下来从小 A 开始小 A 和小 B 轮流取石子,每次可以任选一堆石子取走任意个,…...
Three.js——scene场景、几何体位置旋转缩放、正射投影相机、透视投影相机
个人简介 👀个人主页: 前端杂货铺 🙋♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…...
springboot集成rabbitmq
一 添加pom <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency>二,配置yml spring:rabbitmq:host: 192.168.56.200port: 5672username: adminpasswor…...
腾讯云轻量4核8G12M应用服务器性能测评和优惠价格表
腾讯云4核8G服务器价格:轻量4核8G12M优惠价格646元15个月、CVM S5服务器4核8G配置1437元买1年送3个月。腾讯云4核8G服务器支持多少人同时在线?支持30个并发数,可容纳日均1万IP人数访问。腾讯云百科txybk.com整理4核8G服务器支持多少人同时在线…...
判断点在多边形内的算法
在计算几何中,判定点是否在多边形内,是个非常有趣的问题。通常有两种方法: 一、Crossing Number(交叉数) 它计算从点P开始的射线穿过多边形边界的次数。当“交叉数”是偶数时,点在外面;当它是奇数时&…...
Network AIS Receiver R400N
目录 Introduction OVERVIEW BASIC FEATURES APPLICATIONS SPECIFICATIONS Introduction OVERVIEW The R400N provides a method of monitoring the position, speed and heading of AIS vessels within VHF range. It can decode of Class A, Class B, Aids to Navigat…...
JavaScript循环
JavaScript的循环有两种,一种是for循环,通过初始条件、结束条件和递增条件来循环执行语句块: var x 0; var i; for (i1; i<10000; i) { x x i; } x; // 50005000 for循环的3个条件都是可以省略的,如果没有退出循环的判断条件…...
9Proxy,跨境电商一站式解决方案
文章目录 跨境电商什么是跨境电商跨境电商的机遇跨境电商技术支撑 海外代理IP什么是海外代理IP海外代理IP的作用如何选择海外代理IP 9Proxy9Proxy的优势9Proxy的解决方案价格汇总搜索引擎优化市场调查多重核算数据抓取广告技术 价格上手体验注册登录下载安装数据采集 总结福利 …...
ObjectiveC-08-OOP面向对象程序设计-类的分离与组合
本节用一简短的文章来说下是ObjectiveC中的类。类其实是OOP中的一个概念,概念上简单来讲类是它是一组关系密切属性的集合,所谓的关系就是对现实事物的抽象。 上面提到的关系包括很多种,比如has a, is a,has some等&…...
Qt 总结
由于工作需要用到Qt。把过程中学习到的东西记录下来,希望能帮到他人和将来的自己。 由于需要快速实现需求,所以对Qt只是使用,并没有对原理的深入理解。 故此文只适合入门,不适合深入学习Qt。 文章目录 安装&维护示例&教…...
中间件复习之-RPC框架
什么是RPC框架? RPC(Remote Procedure Call):远程过程调用。当多个应用部署在多个服务器上时,由于他们不在一个内存空间上,因此需要网络来进行通信,而RPC允许它像调用本地方法一样调用远程服务。 RPC原理 服务消费方通过RPC客户…...
AcWing 787. 归并排序——算法基础课题解
AcWing 787. 归并排序 文章目录 题目描述CGo模板 题目描述 给定你一个长度为 n 的整数数列。 请你使用归并排序对这个数列按照从小到大进行排序。 并将排好序的数列按顺序输出。 输入格式 输入共两行,第一行包含整数 n。 第二行包含 n 个整数(所有…...
力扣1379---找出克隆二叉树的相同节点(Java、DFS、简单题)
目录 题目描述: 思路描述: 代码: (1): (2): 题目描述: 给你两棵二叉树,原始树 original 和克隆树 cloned,以及一个位于原始树 ori…...
FLink学习(三)-DataStream
一、DataStream 1,支持序列化的类型有 基本类型,即 String、Long、Integer、Boolean、Array复合类型:Tuples、POJOs 和 Scala case classes Tuples Flink 自带有 Tuple0 到 Tuple25 类型 Tuple2<String, Integer> person Tuple2.…...
Failed to resolve import “Home/components/HomeNew.vue“. Does the file exist?
错误信息 [plugin:vite:import-analysis] Failed to resolve import "/apis/home.js" from "src/views/Home/components/HomeNew.vue". Does the file exist? 错误原因 路径错误 解决方法...
《价值》-张磊-高瓴资本-3-建立人脉和信任;顺应趋势,把握机遇;
第三章 价值投资初试炼 2005.6.1 创办高瓴资本 许多人问我为什么一直在创业,其实我倒没想到自己非要创业成功不可,只是觉得一定要做点事,做点有意义的事。归根到底,可能是“爱折腾,不满足现状,爱挑战自己”…...
阿里巴巴武汉网站建设/适合奖励自己的网站免费
一直对时间函数有点兴趣,今天打开time.h看了一下.发现内容也不是太多.于是看了看.这是c库里的.C的,改日再看.一边看一边写了总结,呵呵,效果不错. 在 time.h 文件中。首先我们可以看到 typedef long time_t; 这就可以明确地知道 time_t是一个long型 而为什么要这样做呢ÿ…...
绥化市建设工程网站招投标/网络营销课程培训课程
福建社区工作者考试网提供社区工作者行测的掌握是部分地区社区招聘的重点考察内容,因此掌握社区行测的知识技巧也是十分必要的,中公教育社区工作者考试网根据社区工作招聘行测特点,为大家整理了一下内容,供大家参考学习。一. 等差…...
怎么自己做优惠券网站/百度长尾关键词挖掘
一、 安装教程:http://itbbs.pconline.com.cn/soft/50602805.html?qq-pf-topcqq.c2c 二、 网络配置:在“虚拟机设置” 中将网络连接设置为 “NAT模式,共享主机的IP地址”。 完~ 转载于:https://www.cnblogs.com/zhimingcow/p/4252481.html...
网站建设公司怎么选/外贸网站搭建推广
【当当、京东、天猫、亚马逊、新华书店等均有销售】目 录第一部分:线程并发基础第1章 概念部分 11.1 CPU核心数、线程数 (主流cpu。线程数的大体情况说一下) 11.2 CPU时间片轮转机制 21.3 什么是进程和什么是线程 41.4 进程和线程的比較 51.5 什么是并…...
法律顾问 网站 源码/网站提交入口大全
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!无论是开发GPS设备硬件还是开发应用软件&…...
化妆品网站建设策划书/郑州网站策划
很多朋友想开始用手机拍视频,可能不知道如何剪辑!本文将给大家介绍几款好用又方便的手机剪辑短视频工具,即便是零基础,用下面这些工具,你就可以轻松开始剪辑短视频。选择一款实用好用的剪辑工具很重要,工具…...