大数据生态圈
文章平均质量分 88
Hadoop
斯沃福德
这个作者很懒,什么都没留下…
展开
-
HDFS源码分析——DataNode启动流程
NameNode启动时,主要的几个步骤分别是:1. `initDataXceiver` 初始化服务线程,用于接收Client和其他DataNode发来的数据2. `startInfoServer` 初始化HTTP服务3. `initIpcServer` 初始化RPC服务端4. refreshNameNodes→doRefreshNamenodes→`createBPOS` 创建BPOS服务 ;→startAll→`connectToNNAndHadnshake`→`registerDatanod原创 2022-10-08 19:14:55 · 2277 阅读 · 2 评论 -
HDFS源码分析——NameNode启动流程
NameNode启动时,主要的几个步骤分别是:1. `startHttpServer` 启动9870端口服务;2. `loadNamesystem` 从磁盘加载镜像文件fsimage和edits编辑日志;3. `createRpcServer` 创建RPC服务端 4. `checkAvailableResources` 检查磁盘空间是否充足5. `blockManager.activate` 心跳超时判断6. `bmSafeMode.avtive` 安全模式原创 2022-10-03 21:01:19 · 1708 阅读 · 2 评论 -
Spark Streaming 总结
Spark Streaming 是什么**SparkStreaming**就是将连续的数据 **持久化**,**离散化**,然后进行**批量处理**的框架;**SparkStreaming**是**准实时**(秒级别)、**微批次**的数据处理框架;原创 2022-09-12 15:44:16 · 1946 阅读 · 0 评论 -
Hive 分桶表及作用
**分区**提供一个隔离数据和优化查询的便利方式。不过,并非所有的数据集都可形成合理的分区。对于一张表或者分区,Hive 可以进一步组织成 ,也就是更为细粒度的数据范围划分;原创 2022-09-08 23:55:03 · 3343 阅读 · 1 评论 -
SparkSQL 总结
Spark SQL 是Spark 用于结构化数据(structured data)处理的 Spark 模块。原创 2022-09-08 17:08:09 · 1870 阅读 · 6 评论 -
简述 Spark中的 Shuffle
Shuffle,中文的意思就是洗牌。将所有分区的数据重新打散,然后根据某种特征 汇聚到不同节点的过程就是Shuffle;原创 2022-09-07 20:57:50 · 1193 阅读 · 0 评论 -
Hive中的基本优化 + 索引优化 + 数据倾斜优化
运行的过程当中,有多个Reduce,每个Reduce拿到的数据不均匀,其中有一个或几个拿到的数据远远大于其他reduce拿到的数量,此时任务出现了数据倾斜;原创 2022-09-01 21:21:33 · 840 阅读 · 0 评论 -
如何在Hive中更新拉链表
拉链表有start_time和end_time字段用来记录每条数据的生命周期;用来记录历史数据,记录一个事物从开始一直到当前状态的所有变化的信息。使用union all 进行上下合并(union会去重);即只需要更新的数据处理,让数据过期;目的是将需要更新的数据置为过期;不等于‘9999-12-31’:包含新增和更新的数据。..................原创 2022-08-28 21:55:25 · 1588 阅读 · 0 评论 -
SparkCore 总结
Hadoop 用户向 YARN 集群提交应用程序时,提交程序中应该包含ApplicationMaster,用于向资源调度器申请执行任务的资源容器 Container,运行用户自己的程序任务 job,监控整个任务的执行,跟踪整个任务的状态,处理任务失败等异常情况。Spark启动时,Executor节点同时被启动,并且始终伴随整个Spark应用的生命周期,如果发生故障,Spark应用也可以继续执行,会将出错节点上的任务调度到其他Executor节点上继续执行。...............原创 2022-08-21 15:29:38 · 1152 阅读 · 0 评论 -
Yarn 总结
NodeManager上面会运行AppMaster, 其实ApplicationMaster就是一个特殊的Container, Job提交后会先创建一个ApplicationMaster的container, 之后通过这个ApplicationMaster Container去协调整个Job的运行。如果第一个节点的资源不够,可以由ResourceMnager分配其他节点的资源供第一个节点的任务去运行。4.资源的分配与调度:即可以将比较紧张的节点的任务,发给比较闲的节点。(RM):整个集群资源的分配者。..原创 2022-08-08 17:05:25 · 563 阅读 · 0 评论 -
MapReduce总结
序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。.......................................原创 2022-08-05 16:29:41 · 2495 阅读 · 2 评论 -
HDFS总结
HDFS(HadoopDistributedFileSystem)是一个分布式文件系统;使用场景适合一次写入,多次读出的场景。一个文件经过创建、写入和关闭之后就不需要改变。1)高容错性数据自动保存多个副本。它通过增加副本的形式,提高容错性。某一个副本丢失以后,它可以自动恢复。2)适合处理大数据数据规模能够处理数据规模达到GB、TB、甚至PB级别的数据;文件规模能够处理百万规模以上的文件数量,数量相当之大。3)可构建在廉价机器上,通过多副本机制,提高可靠性。小文件;..................原创 2022-08-02 17:10:13 · 1162 阅读 · 0 评论 -
Hive 总结(未完待续)
1)用户接口:Client2)元数据:Metastore (hive和HDFS之间的映射关系),包括:表名、表所属的数据库、字段等· 元数据将hive中的表和HDFS中的路径做一个映射。· 默认存储在自带的 derby 数据库(erby默认只能单用户)中,推荐使用 MySQL 存储 Metastore;3)Hadoop使用 HDFS 进行存储,使用 MapReduce 进行计算。4)驱动器:Driver ★(1)解析器:将 SQL 转换成MR的任务需要的对应的元数据等准备工作;.....原创 2022-07-27 12:02:35 · 549 阅读 · 0 评论 -
RDD的执行流程(简略)
从计算的角度来讲,数据处理过程中需要计算资源(内存 & CPU)和计算模型(逻辑)。执行时,需要将计算资源和计算模型进行协调和整合。流程概括:①准备资源②创建Driver和Executor节点②然后将应用程序的数据处理逻辑分解成一个一个的计算任务task。③然后将任务task发到已经分配资源的计算节点executor上, 按照指定的计算模型进行数据计算。最后得到计Driver和Executor都是运行在NodeManager上面的 !ResourceManager是用于管理的,所以真正运行任务原创 2022-06-23 22:03:09 · 1415 阅读 · 0 评论 -
Hadoop和Spark的对比
Hadoop和Spark都是并行计算,Hadoop一个作业称为一个Job,Job里面分为Map Task和Reduce Task阶段,每个Task都在自己的进程中运行,当Task结束时,进程也会随之结束;好处在于进程之间是互相独立的,每个task独享进程资源,没有互相干扰,监控方便,但是问题在于task之间不方便共享数据,执行效率比较低。比如多个map task读取不同数据源文件需要将数据源加载到每个map task中,造成重复加载和浪费内存。Spark的任务称为application,一个applic原创 2022-06-15 22:25:04 · 6314 阅读 · 0 评论 -
Yarn的工作机制
(一)作业提交:1.MR程序提交到客户端所在的节点上,产生一个YarnRunner ,(如果是本地则产生localRunner)2.YarnRunner客户端向 ResourceManager 申请运行程序。ResourceManager 会将程序提交的资源路径和job id返回给客户端。3.客户端将运行程序所需要的资源(配置文件XML、切片信息split、jar包)提交到指定的资源提交路径。4.客户端提交完资源后,向ResourceManager 申请运行 MRAppMaster(单个job的老.原创 2022-03-06 12:06:03 · 362 阅读 · 1 评论 -
MapTask和ReduceTask的工作机制
一. MapTask工作机制(0)提交Job阶段步骤4之前为Job的提交流程,Inputformat组件通过getSplits方法对文件进行切片得到splits,有多少个Splits就启动多少MapTask。(切片对应MapTask ,分区对应ReduceTask)(1)Read阶段客户端向Yarn提交信息,Yarn开启Mrappmaster在MrAppMaster启动后,读取切片信息,开启对应的MapTask(切片个数对应MapTask的数量),才是真正的MapTask过程 。开启MapT.原创 2022-03-03 10:49:55 · 2189 阅读 · 0 评论 -
DataNode工作机制
*(1)register:当DataNode启动的时候,DataNode将自身信息告诉NameNode。作用是使得这个DataNode成为HDFS集群中的成员。注:一个数据块在 DataNode 上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据,(包括数据块的长度,块数据的校验和,以及时间戳)上面是DataNode 实际存储的文件内容 ,XXX.meta存储的是块相关的数据长度、校验和、时间戳(2)blockreport: DataNode向 NameNode注册通过后,会周期原创 2022-01-11 13:01:27 · 1170 阅读 · 0 评论 -
NameNode中元数据存储问题及工作机制
一. NameNode中的元数据存在哪?答:如果存储在 NameNode 节点的磁盘中,因为经常需要进行随机访问,还有响应客户请求,必然是效率过低。因此,元数据需要存放在内存中。但如果只存在内存中,一旦断电,元数据丢失,整个集群就无法工作了。因此产生在磁盘中备份元数据的Fsimage。这样又会带来新的问题,当在内存中的元数据更新时,如果同时更新 Fsimage,就会导致效率过低,但如果不更新,就会发生一致性问题,一旦 NameNode 节点断电,就会产生数据丢失。因此,引入Edits文件(不进行计算,原创 2022-01-10 12:05:47 · 2538 阅读 · 0 评论 -
HDFS的读写过程
一.向HDFS写数据的过程1.客户端通过 Distributed FileSystem 模块向 NameNode 发起RPC请求,NameNode 检查用户权限以及目标文件、目录是否存在。NameNode 返回是否可以上传。3.客户端对文件切分,并向namenode发送第一个 Block 上传到哪些 DataNode 服务器的请求。NameNode 会根据网络拓扑和机架感知机制进行文件分配,给客户端返回可以存储的3 个 DataNode 节点,分别为 dn1、dn2、dn3。存储策略:第一个副原创 2022-01-06 15:53:47 · 1300 阅读 · 0 评论