
hadoop
文章平均质量分 71
阿宁呀
大数据,数据挖掘。
展开
-
【大数据之Hadoop】三十七、Hadoop HA高可用
实现高可用最关键的策略是消除单点故障。HA分成各个组件的HA机制:HDFS的HA和YARN的HA。Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF)。NameNode主要在以下两个方面影响HDFS集群:(1)NameNode机器发生意外,如宕机,集群将无法使用,直到管理员重启。(2)NameNode机器需要升级,包括软件、硬件升级,此时集群也将无法使用。原创 2023-07-03 22:49:12 · 9170 阅读 · 0 评论 -
【大数据之Hadoop】三十六、Hadoop综合调优之企业开发场景案例
需求:从0.5G数据中,统计每个单词出现次数。服务器3台,每台配置2G内存,1核CPU,2线程。需求分析:0.5G/128m=4个MapTask;1个ReduceTask;1个MrAppMaster平均每个节点运行6个 / 3台 = 2个任务(2 2 2)原创 2023-05-23 22:45:00 · 93 阅读 · 0 评论 -
【大数据之Hadoop】三十五、Hadoop综合调优之测试MapReduce计算性能(压测)
使用Sort程序评测MapReduce。(3)验证数据是否真正排好序了。原创 2023-05-22 10:30:00 · 314 阅读 · 0 评论 -
【大数据之Hadoop】三十四、Hadoop综合调优之小文件优化方法
HDFS上每个文件都要在NameNode上创建对应的元数据,这个元数据的大小约为150byte,这样当小文件比较多的时候,就会产生很多的元数据文件,一方面会大量占用NameNode的内存空间,另一方面就是元数据文件过多,使得寻址索引速度变慢。在没有开启uber模式下,对/input路径上上传的小文件执行wordcount程序,可用看到控制台上显示uber模式是关闭的,且http://hadoop103:8088/cluster中该任务开启的容器超过1个,不大于9个。原创 2023-05-19 23:15:00 · 623 阅读 · 0 评论 -
【大数据之Hadoop】三十三、Yarn生产经验
(1)Resourcemanager相关。(2)Nodemanager相关。(3)Container容器相关。原创 2023-05-18 19:45:00 · 95 阅读 · 0 评论 -
【大数据之Hadoop】三十二、MapReduce生产经验
*(2)能在map阶段提前处理,最好先在Map阶段处理。**如:Combiner、MapJoin。生产环境,可以直接过滤掉空值;如果想保留空值,就自定义分区,将空值加随机数打散。大部分任务运行结束,只有部分任务还在运行,且时间很长。通常数据倾斜发生在Reduce阶段。数据频率倾斜——某一个区域的数据量要远远大于其他区域。(2)Map运行时间太长,导致Reduce等待过久。数据大小倾斜——部分记录的大小远远大于平均值。1)计算机性能:CPU、内存、磁盘、网络。原创 2023-05-17 12:00:00 · 382 阅读 · 0 评论 -
【大数据之Hadoop】三十一、HDFS集群迁移之Apache和Apache集群间数据拷贝
数据迁移场景:冷热集群数据分类存储;集群数据整体迁移;数据的准实时同步,目的在于数据的双备份可用。数据迁移需要考虑的因素:带宽、性能、增量同步(原始数据文件进行了追加写、被删除或重命名)、数据迁移的同步性。原创 2023-05-15 09:15:00 · 472 阅读 · 0 评论 -
【大数据之Hadoop】三十、HDFS故障排除
使用3台服务器,恢复yarn快照。原创 2023-05-11 23:00:00 · 819 阅读 · 0 评论 -
【大数据之Hadoop】二十九、HDFS存储优化
纠删码和异构存储测试需要5台虚拟机。准备另外一套5台服务器集群。(1)克隆hadoop105为hadoop106,修改ip地址和hostname,然后重启。(2)关闭集群,删除所有服务器Hadoop的data和logs文件。(3)在hadoop102上修改xsync和jpsall文件,把hadoop105和hadoop106加上。xsync存储地址:/bin,在root下修改,然后后分发xsync:xsync xsync。原创 2023-05-10 19:15:00 · 1076 阅读 · 0 评论 -
【大数据之Hadoop】二十八、生产调优-HDFS集群扩容及缩容
增加或缩减服务器,注意不允许白名单和黑名单同时出现同一个主机。原创 2023-05-09 21:00:00 · 1282 阅读 · 0 评论 -
【大数据之Hadoop】二十七、生产调优-HDFS多目录
DataNode配置多个目录,每个目录存储的数据不一样(且数据不是副本),可以用于增加磁盘、硬盘,磁盘新增之后就会出现负载不均衡的问题。当硬盘空间不足时增加一块硬盘后,新加的硬盘是没有数据的,通过执行磁盘数据均衡命令使得磁盘负载均衡。在hdfs-site.xml中添加,每台服务器节点的磁盘不同,可以选择不分发。NameNode本地目录可以配置多个,每个目录存放内容相同,增加可靠性。关闭集群,删除三台节点的data和logs文件,最后再格式化重启集群。向一个集群上传文件,可以看到两个文件夹内容不一致。原创 2023-05-08 10:30:00 · 620 阅读 · 0 评论 -
【大数据之Hadoop】二十六、生产调优-HDFS集群压测
测试上传数据到集群和拉取数据的时间。HDFS的读写性能主要受网络和磁盘影响比较大。为了方便测试,将hadoop102、hadoop103、hadoop104虚拟机网络的带宽都设置为100Mbps。原创 2023-05-07 23:45:00 · 1106 阅读 · 0 评论 -
【大数据之Hadoop】二十五、生产调优-HDFS核心参数
根据经验:dfs.namenode.handler.count=20xln(集群规模,即DataNode台数),比如此时台数为3,则应该设置20xln3=21。(2)检查回收站的间隔时间fs.trash.checkpoint.interval,默认为0即该值与文件存活时间fs.trash.interval 相等。(3)要求:检查回收站的时间间隔要<=文件存活时间,即fs.trash.checkpoint.interval <= fs.trash.interval。恢复回收站的数据:把回收站里的文件移出来。原创 2023-05-06 15:30:00 · 952 阅读 · 0 评论 -
【大数据之Hadoop】二十三、Yarn命令行操作及生产环境下的配置
容量调度器,支持任务优先级的配置,在资源紧张时,优先级高的任务将优先获取资源。默认情况,Yarn将所有任务的优先级限制为0,若想使用任务的优先级功能,须开放该限制。(1)default队列占总内存的40%,最大资源容量占总资源60%,hive队列占总内存的60%,最大资源容量占总资源80%。(2)像双十一、618在资源紧张时期保证任务队列资源充足,给任务设置优先级,优先级高的先处理,即对任务进行降级使用。服务器3台,每台配置2G内存,1核CPU,2线程。平均每个节点运行6/3=2个任务(2,2,2)原创 2023-05-04 09:06:35 · 2782 阅读 · 0 评论 -
【大数据之Hadoop】二十四、Yarn的tool接口
传入的参数的数组元素有3个,分别是-Dmapreduce.job.queuename=root.test、/inpu、 /output,而程序里的输入输出路径为传入数组的第一第二个元素,所以需要编写Yarn的Tool接口动态修改参数。(6)进到jar包的存放目录,向集群提交jar文件执行,此时为3个参数,第一个用于生成特定的Tool,第二个和第三个为输入输出目录,显示正常运行。(7)在wordcount后面添加参数,也就是4个参数。(2)新建包名com.study.yarn。原创 2023-05-05 09:45:00 · 186 阅读 · 0 评论 -
【大数据之Hadoop】二十二、Yarn调度器和调度算法
Hadoop作业调度器主要有三种:FIFO、容量(Capacity Scheduler)和公平(Fair Scheduler)。Apache Hadoop默认的资源调度器:容量调度器Capacity Scheduler。CDH框架默认调度器是Fair Scheduler。原创 2023-04-28 17:30:00 · 1480 阅读 · 0 评论 -
【大数据之Hadoop】二十一、MapReduce、HDFS、Yarn配合工作(作业提交全过程)
(20)缓冲区内部对数据分区存储,当数据进入到环形缓冲区时就进行分区标记(会根据分区进入到不同的reduce),缓冲区一侧存数据,一侧存索引,当数据达到80%时进行反向溢写。(3)该程序将运行所需资源提交到HDFS集群路径上,包括split切片信息(控制开启MapTask的数量)、配置参数文件xml(控制任务按照xml里的参数运行)以及jar包(程序代码)。(16)DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验),客户端以Packet为单位接收,先在本地缓存。原创 2023-04-27 23:00:00 · 742 阅读 · 0 评论 -
【大数据之Hadoop】二十、Yarn基础框架及工作机制
(10)RM将运行MapTask任务分配给NodeManager,NodeManager领取任务并创建容器(MapTask对应的容器有可能在同一个NodeManager节点上),并拷贝cpu、ram和jar包资源。(3)该程序将运行所需资源提交到HDFS集群路径上,包括split切片信息(控制开启MapTask的数量)、配置参数文件xml(控制任务按照xml里的参数运行)以及jar包(程序代码)。(5)RM将用户的请求初始化成一个Task任务,然后放到任务队列中排队(任务队列默认是容器)。原创 2023-04-25 18:30:00 · 477 阅读 · 0 评论 -
【大数据之Hadoop】十三、MapReduce之WritableComparable排序
MapReduce框架必须进行排序,MapTask和ReduceTask都会对key按字典顺序排序,是默认的行为(默认使用快速排序),有利于提高效率。MapTask把处理结果暂时放到环形缓冲区,当环形缓冲区的使用率达到一定阈值(80%)时,对其进行一次快速排序,然后将有序数据写到磁盘上。(1)部分排序:MapReduce根据输入的键进行排序,保证输出的每个文件内部的有序。如果磁盘上的文件数目达到一定阈值时,则进行一次归并排序,生成更大的文件。当数据处理完后,磁盘上的所有文件再进行一次快速排序。原创 2023-04-13 14:45:00 · 458 阅读 · 0 评论 -
【大数据之Hadoop】十一、MapReduce之Shuffle、MapTask、ReduceTask工作机制
在远程拷贝数据的同时,ReduceTask启动了两个后台线程对内存和磁盘上的文件进行合并,以防止内存使用过多或磁盘上文件过多。(默认使用TextInputFormat)调用RecorderReader的reader()读取数据,数据格式:(k,v)=(偏移量,数据的一行内容)。MapTask把处理结果暂时放到环形缓冲区,当环形缓冲区的使用率达到一定阈值(80%)时,对其进行一次快速排序,然后将有序数据写到磁盘上。),并针对某一片数据,如果其大小超过一定阈值,则写到磁盘上,否则直接放到内存中。原创 2023-04-10 14:23:39 · 857 阅读 · 0 评论 -
【大数据之Hadoop】十九、MapReduce总结
job的提交流程:待读写的源数据由客户端进行切片划分,划分完成之后提交(切片信息、jar包、xml配置文件)给yarn,yarn开启MrAppMaster,MrAppMaster读取切片信息,根据切片个数决定开启MapTask的个数。的方式进行存储,当数据进入到环形缓冲区时就进行分区标记(会根据分区进入到不同的reduce),缓冲区一侧存数据,一侧存索引,当数据达到80%时进行反向溢写。将数据写入本地磁盘之前,先要对数据进行一次本地排序,并在必要时对数据进行合并、压缩等操作。原创 2023-04-24 15:15:33 · 650 阅读 · 0 评论 -
【大数据之Hadoop】十八、MapReduce之压缩
优点:减少磁盘IO、减少磁盘存储空间。缺点:因为压缩解压缩都需要cpu处理,所以增加CPU开销。原则:运算密集型的Job,少用压缩;IO密集型的Job,多用压缩。原创 2023-04-23 16:00:00 · 579 阅读 · 0 评论 -
【大数据之Hadoop】十七、MapReduce之数据清洗ETL
ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将分散、零乱、标准不统一的数据整合到一起,为决策提供分析依据。ETL的设计分三部分:数据抽取、数据的清洗转换、数据的加载。原创 2023-04-21 11:15:00 · 2329 阅读 · 0 评论 -
【大数据之Hadoop】十六、MapReduce之Join
通过将关联条件作为Map输出的key,将两表满足Join条件的数据并携带数据所来源的文件信息,发往同一个ReduceTask,在Reduce中进行数据的串联。解决:在Map阶段进行数据合并操作,缓存多张表,提前处理业务逻辑,增加Map端业务,减少Reduce端数据的压力,尽可能的减少数据倾斜。在Reduce阶段极易产生数据倾斜,原因是大量数据在Reduce阶段进行合并处理过多的表,Map阶段负载低,资源利用率不高。Map Join适用于一张表很小(小表缓存到内存中)、一张表很大的场景(大表用于逐行遍历)。原创 2023-04-19 22:00:00 · 846 阅读 · 1 评论 -
【大数据之Hadoop】十五、MapReduce之输出数据OutputFormat
OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了OutputFormat接口。默认输出格式TextOutputFormat。应用与输出数据到指定的存储框架中存储。如:MySQL、HBase等。原创 2023-04-18 18:30:00 · 237 阅读 · 0 评论 -
【大数据之Hadoop】十四、MapReduce之Combiner合并
方法二、把WordcountReducer作为Combiner在WordcountDriver驱动类中指定。Combiner是Mapper和Reducer之间的组件,其组件的父类是Reducer。,且Combiner的输出kv对应Reducer输入kv。Reducer则是接收全局是Mapper的输出结果。是运行在每一个MapTask所在的节点,即。方法一、自定义Combiner。原创 2023-04-17 18:57:29 · 507 阅读 · 0 评论 -
【大数据之Hadoop】十二、MapReduce之Partition分区
(3)如果ReduceTask的数量==1,则不管MapTask端输出多少分区文件,最终结果都交给一个 ReduceTask,即使用默认分区,只产生一个结果文件。(2)如果 1 < ReduceTask的数量 < getPartition的结果数,则有部分分区数据无处存储,会抛出IO异常。(3)自定义Partition后,根据自定义的逻辑设置相应数量的ReduceTask。不设置时默认为1,则使用默认分区。(1)如果ReduceTask的数量 > getPartition的结果数,则会多产生几个空文件。原创 2023-04-11 17:00:00 · 319 阅读 · 0 评论 -
【大数据之Hadoop】十、MapReduce中job提交流程源码分析
源码中:job提交三个信息(jar包,xml,切片信息),在本地不需要提交jar包,只有在集群上才需要提交。原创 2023-04-07 22:45:00 · 409 阅读 · 0 评论 -
【大数据之Hadoop】九、MapReduce核心框架原理之输入数据InputFormat
InputFormat用于控制数据的输入然后交给Mapper进行处理。Reduce阶段主动拉取Mapper阶段的数据(中间经过Shuffle过程,Shuffle可以进行排序、分区、压缩、合并等)。OutputFormat用于控制Reduce的输出数据,以及输出的位置。原创 2023-04-05 14:45:00 · 389 阅读 · 0 评论 -
【大数据之Hadoop】八、MapReduce之序列化
序列化:把内存中的对象,转换成字节序列(或其他数据传输协议),以便于存储到磁盘(持久化)和网络传输。反序列化:将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。序列化原因:服务器间不能传递内存中的对象,对象只能在本地的进程中使用;所以通过将内存中的对象序列化和反序列化的方式进行传递。原创 2023-04-03 19:52:04 · 314 阅读 · 0 评论 -
【大数据之Hadoop】七、MapReduce概述
MapReduce是分布式计算的编码框架。核心功能是把用户的业务逻辑代码和自带默认组件整合为分布式运算程序,并发运行在Hadoop集群上。原创 2023-03-31 10:45:00 · 236 阅读 · 0 评论 -
【大数据之Hadoop】六、HDFS之NameNode、Secondary NameNode和DataNode的内部工作原理
(3)NameNode记录操作日志,更新滚动日志。(先记录日志再更改内存,如果先更改内存再记录,在更改内存后遇到断电,则不会记录此次更改的记录,导致内存丢失)(5)若一定的时间NameNode没有收到DataNode信息,则任务该节点不可用(即NameNode不允许客户端向DataNode读写数据)。(4)DataNode和NameNode有周期性(3s)的互通信息,确保DataNode还是活动状态。(3)DataNode每隔一个周期(6h)向NameNode汇报所有块的信息,保证数据的可靠性。原创 2023-03-29 17:45:00 · 342 阅读 · 0 评论 -
【大数据之Hadoop】五、HDFS的读写流程
(7)客户端开始往dn1上传第一个块Block(先从磁盘读取数据放到一个本地内存缓存),以Packet为单位,dn1收到一个Packet就会传给dn2,dn2传给dn3;(5)客户端创建流,通过FSDataOutputStream流请求第一个DataNode节点上传数据),dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成。(3)客户端创建流,通过流对象挑选一台DataNode服务器,请求读取数据(串行读取)。(5)客户端以Packet为单位接收,先在本地缓存,然后写入目标文件。原创 2023-03-26 13:15:00 · 397 阅读 · 0 评论 -
【大数据之Hadoop】四、HDFS的Shell相关操作
先启动集群。原创 2023-03-24 22:45:00 · 492 阅读 · 0 评论 -
【大数据之Hadoop】三、HDFS概述及组成框架
解决海量数据的存储问题,是分布式的文件存储系统,通过目录树来定位文件,适合一次写入多次读出的场景。(1)高容错性: 数据自动保存多个副本,,某副本丢失后可以自动恢复。(2)适合处理大数据,包括数据规模和文件数量。(1)不适合 低延时的数据访问。(2)无法高效对大量小文件进行存储:因为存储大量小文件时,会消耗很多存储空间用于NameNode节点来存储文件目录和文件块信息;并且小文件的寻址时间会超过读取时间。(3)不支持并发写入、文件随机修改:一个文件只能有一个写,不允许多个线程同时写;原创 2023-03-24 09:15:00 · 208 阅读 · 0 评论 -
【大数据之Hadoop】二、Hadoop生产集群搭建之完全分布式集群
运行wordcount程序:hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /input /output。配置workers:vim /opt/module/hadoop-3.3.1/etc/hadoop/workers 文件中添加的内容结尾不允许有空格,文件中不允许有空行。同步配置文件:xsync /opt/module/hadoop-3.3.1/etc。原创 2023-03-23 14:11:45 · 604 阅读 · 0 评论 -
【大数据之Hadoop】一、Hadoop概念、优势和组成
NameNode(nn):存储文件的元数据,如文件名、文件目录结构、文件属性,以及每个文件的块列表和块所在的DataNode等。(告知数据存储在哪些块上)DataNode(dn):具体存储在本地文件系统的存储文件块数据,以及块数据的校验和。(数据的实际存储)Secondary NameNode(2nn):每隔一段时间对NameNode元数据进行备份。(防止nn挂掉,所以2nn会备份数据,用于恢复nn一部分工作)Yarn是集群资源协调者,是Hadoop的资源管理器。任务执行在容器上。原创 2023-03-21 09:00:24 · 517 阅读 · 0 评论