![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hadoop
星空下的那个人影
不像程序员的程序猿
展开
-
如何基于MapReduce做Hadoop的优化的?
基于 MapReduce做 Hadoop 的优化原创 2022-06-04 22:59:19 · 179 阅读 · 0 评论 -
Hadoop 解决数据倾斜方法
一般发生在 reduce端,其他任务10s以内就执行完了,有一个任务执行了50分钟还没有执行完,程序卡在99%不动了,甚至爆出了内存溢出。原因分析:导致数据倾斜的 key 大量分布在相同的 mapper,map 端解决:提前在 map 进行 combine,减少传输的数据量。在 Mapper 加上 combiner 相当于提前进行 reduce,即把一个 Mapper 中的相同 key 进行了聚合,减少了 shuffle 过程中传输的数据量,以及 Reducer 端的计算量。导致数据倾斜原创 2022-05-26 12:42:01 · 376 阅读 · 1 评论 -
了解哪些Hadoop的参数优化
在 hdfs-site.xml 文件中配置多目录,最好提前配置好,否则更改目录需要重新启动集群;Namenode 有一个工作线程池,用来处理不同 DataNode 的并发心跳以及客户端并发的元数据操作dfs.namenode.handler.count=20*log2(cluster size)比如集群规模为10台,此参数设置为60编辑日志存储路径 dfs.namenode.edits.dir 设置与镜像文件存储路径 dfs.namenode.name,dir 尽量分开,达到最低写入..原创 2022-05-18 12:51:16 · 132 阅读 · 0 评论 -
介绍下Yarn默认的调度器,调度器分类,以及它们之间的区别
Hadoop 调度器主要分为三类:FIFO Scheduler:先进先出调度器:优先提交的,优先执行,后面提交的等待(生产环境不会使用);Capacity Scheduler:容量调度器:允许创建多个任务队列,每个队列使用所有资源的一部分。多个任务队列可以同时执行。但是一个队列内部还是先进先出。(Hadoop 2.7.2 默认的调度器);Fair Scheduler:公平调度器:第一个程序在启动时可以占用其他队列的资源(100%占用),当其他队列有任务提交时,占用资源的队列需要将资源还给该任务。还资原创 2022-05-17 18:43:52 · 913 阅读 · 0 评论 -
介绍一下Yarn的Job提交流程
client 向 RM 提交应用程序,其中包括该应用的 ApplicationMaster 的必须信息,例如 ApplicationMaster 程序、启动 ApplicationMaster 的命令、用户程序等;ResourceManager 启动一个 container 用于运行 ApplicationMaster;启动中的 ApplicationMaster 向 ResourceManager 注册自己,启动成功后与 ResourceManager 保持心跳;ApplicationMaste..原创 2022-05-11 11:23:53 · 268 阅读 · 0 评论 -
你是怎么处理Hadoop宕机的问题的?
如果是MapReduce造成的系统宕机,此时要控制Yarn同时运行的任务数,和每个任务申请的最大内存。调整参数:yarn.scheduler.maximum-allocation-mb(单个任务可申请的最多物理内存量,默认是8192MB)。如果是写入文件过量造成NameNode宕机,那么调高Kafka的存储大小,控制从Kafka到HDFS的写入速度,高峰期的时候用Kafka进行缓存,高峰期过去数据同步会自动跟上。...原创 2022-05-05 12:41:32 · 650 阅读 · 0 评论 -
Hadoop的基准测试
我们搭建完Hadoop集群后需要对HDFS读写性能和MR计算能力测试。测试jar包在hadoop的share文件夹下。原创 2022-05-04 23:01:27 · 596 阅读 · 0 评论 -
HDFS在上传文件的时候,如果其中一个DataNode突然挂掉了怎么办?
客户端上传文件时与DataNode建立pipeline管道,管道正向是客户端向DataNode发送的数据包,管道反向是DataNode向客户端发送ack确认,也就是正确接收到数据包之后发送一个已确认接收到的应答;当DataNode突然挂掉了,客户端接收不到这个DataNode发送到ack确认,客户端会通知NameNode,NameNode检查该块的副本与规定的不符,NameNode会通知DataNode去复制副本,并将挂掉的DataNode作下线处理,不再让它参与文件上传与下载。...原创 2022-04-29 10:16:41 · 2737 阅读 · 1 评论 -
Hadoop与Spark的不同
原创 2022-04-27 16:58:06 · 114 阅读 · 0 评论 -
MapReduce的shuffle过程
Map方法之后Reduce方法之前这段处理过程叫Shuffle;Map方法之后,数据首先进入到分区方法,把数据标记好分区,然后把数据发送到环形缓冲区;环形缓冲区默认大小100m,环形缓冲区达到80%,进行溢写;溢写之前对数据进行排序,排序按照对key的索引进行字典顺序排序,排序的手段是快排;溢写产生大量溢写文件,需要对溢写文件进行归并排序;对溢写文件也可以进行Combiner操作,前提是汇总操作,求平均值不行;最后将文件按照分区存储到磁盘,等待Reduce端拉取;每个Reduce拉取Ma...原创 2022-04-26 18:00:36 · 248 阅读 · 0 评论 -
hadoop常用的端口号
dfs.namenode.http-address:50070dfs.datanode.http-address:50075SecondaryNamenode:50090dfs.datanode.address:50090fs.defaultFS:8020或者9000yarn.resourcemanager.webapp.address:8088历史服务器web访问端口:19888原创 2022-04-16 22:17:26 · 2833 阅读 · 0 评论 -
什么是Hadoop?
Hadoop是一个能够对大量数据进行分布式处理的软件框架。以一种可靠、高效、可伸缩的方式进行数据处理。主要包括三部分内容:Hdfs、MapReduce、YarnHadoop在广义上指一个生态圈,泛指大数据技术相关的开源组件或产品。如Hive、HBase、Spark、Zookeeper、kafka、flume…...原创 2022-04-15 11:09:51 · 353 阅读 · 0 评论 -
HDFS读写流程
HDFS的写数据流程客户端通过Distributed FileSystem模块想Namenode请求上传文件,Namenode检查目标文件是否存在,父目录是否存在;Namenode返回是否可以上传文件;客户端请求第一个block上传到哪几个DataNode服务器上;Namenode返回3个DataNode节点,分别是dn1,dn2,dn3;客户端通过FSDataOutputSystem模块请求dn1上传数据,dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成;dn1原创 2022-04-14 12:30:46 · 272 阅读 · 0 评论 -
HDFS在读取文件的时候,如果其中一个块突然损坏了怎么办
客户端读取完DataNode上的块之后会进行checksum验证,也就是把客户端读取到的块和HDFS上的原始快进行校验,如果发现校验结果不一致,客户端会通知NameNode,然后再从下一个拥有该block的副本的DataName继续读。...原创 2022-04-13 21:16:53 · 845 阅读 · 0 评论 -
HDFS的组织架构
HDFS 是一个主从 Master/Slave 架构。一个 HDFS 集群包含一个 NameNode,这是一个 Master Server,用来管理文件系统的命名空间,以及调节客户端对文件的访问。一个 HDFS 集群还包括多个 DataNode,用来存储数据。namenode: 存储数据的元数据。a. 接收用户操作请求b. 维护文件系统的目录结构c. 管理文件与block之间关系,block与datanode之间关系datanode:a. 文件被分成block存储在磁盘上b. 为保证原创 2022-04-13 12:02:05 · 662 阅读 · 0 评论