分享好友 最新动态首页 最新动态分类 切换频道
大数据开发之Hadoop(优化&新特征)
2024-12-26 10:43

注意:采用三台服务器即可,恢复到Yarn开始的服务器快照。

3)退出安全模式条件
dfs.namenode.safemode.min.datanodes:最小可用datanode数量,默认0
dfs.namenode.safemode.threshold-pct:副本数达到最小要求的block占系统总block数的百分比,默认0.999f
dfs.namenode.safemode.extension:稳定时间,默认30000毫秒,即30秒
4)基本语法
集群处于安全模式,不能执行重要操作(写操作)。集群启动完成后,自动退出安全模式。

 
 
 

1、需求
NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode
2、故障模拟
1)kill -9 NameNode进程

 

2)删除NameNode存储的数据

 

3、问题解决
1)拷贝SecondaryNameNode中数据到原NameNode存储数据据目录

 

2)重新启动NameNode

 

3)向集群上传一个文件

案例1:启动集群进入安全模式
1、重新启动集群

 
 

案例2:磁盘修复
需求:数据库损失,进入安全模式,如何处理
1、分别进入hadoop102、103、104的/opt/module/hadoop-3.1.3/data/dfs/data/current/BP~/subdir0目录,统一删除某2个块信息

 

说明:hadoop103/hadoop104重复执行以上命令
2、重新启动集群

 
 

说明:安全模式已经打开,块的数量没有达到要求
4、离开安全模式

 
 
 

7、观察http://hadoop102:9870/dfshealth.html#tab-overview,集群已经正常
案例3
需求:模拟等待安全模式
1、查看当前模式

 

2、先进入安全模式

 

3、创建并执行下面的脚本
在opt/module/hadoop-3.1.3路径上,编辑一个脚本safemode.sh

 

4、再打开一个窗口,执行

 

5、再观察上一个窗口

 
 
 
 
 

2、具体配置如下
在hdfs-site.xml文件中添加如下内容

 

3、查看结果

 

4、向集群上传一个文件,再次观察两个文件夹里面的内容发现不一致(一个有数一个没数

 
 
 
 

2、执行均衡计划

 

3、查看当前均衡任务的执行情况

 

4、取消均衡任务

 
 
 

1、需求
随着公司业务的增长,数据量越来越大,原有的数据节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点
2、环境准备
1)在hadoop100主机上再克隆一台hadoop105主机
2)修改IP地址和主机名称

 

3)拷贝hadoop102的/opt/module目录和/etc/profile.d/my_env.sh到hadoop105

 

4)删除hadoop105上Hadoop的历史数据,data和log数据

 

5)配置hadoop102和hadoop103到hadoop105的ssh无密登录

 

3、服役新节点具体步骤
1)直接启动DataNode,即可关联到集群

 
 

4、在白名单中增加新服役的服务器
1)在白名单whitelist中增加hadoop104、105,并重启集群

 

修改如下内容

 

2)分发

 

3)刷新NameNode

 

5、在hadoop105上上传文件

 
 

思考:如果数据不均衡(hadoop105数据少,其它节点数据多,怎么处理

2、开启数据均衡命令

 

对于参数10,代表的是集群中各个节点的磁盘空间利用率相差不超过10%,可根据实际情况进行调整。
3、停止数据均衡命令

 

注意:由于HDFS需要启动单独的Rebalance Server来执行Rebalance操作,所以经量不要在NameNode上执行start-balancer.sh,而是找一台比较空闲的机器。

白名单:表示在白名单的主机IP地址可用,用来存储数据。
企业中:配置白名单,可用尽量防止黑客恶意访问攻击。
配置白名单步骤如下
1、在NameNode节点的/opt/~/hadoop目录下创建whitelist和blacklist文件
1)创建白名单

 

在whitelist中添加如下主机名称,加入集群正常工作的节点为102 103

 

2)创建黑名单

 

保持空的就可用
2、在hdfs-site.xml配置文件中增加dfs.hosts配置参数

 

3、分发配置文件whitelist、hdfs-site.xml

 

4、第一次添加白名单必须重启集群,不是第一次,只需要刷新NameNode节点即可

 

5、在web浏览器上查看DN,http://hadoop102:9870/dfshealth.html#tab-datanode
6、二次修改白名单,增加hadoop104

 

7、刷新NameNode

 

8、在web浏览器上查看DN,http://hadoop102:9870/dfshealth.html#tab-datanode

黑名单配置步骤如下
1、编辑/opt/module/had~/hadoop目录下的blacklist文件

 

添加如下主机名称(要退役的节点

 

注意:如果白名单中没有配置,需要在hdfs-site.xml配置文件中增加dfs.hosts配置参数

 

2、分发配置文件blacklist,hdfs-site.xml

 

3、第一次添加黑名单必须重启集群,不是第一次,只需要刷新NameNode节点即可

 
 
 
 

stopping datanode

 

stopping nodemanager
6、如果数据不均衡,可以用命令实现集群的再平衡

 
 
 

MapReduce优化方法主要从六个方面考虑:数据输入、Map阶段、Reduce阶段、IO传输、数据倾斜问题和常用的调优参数。

4.1.1 数据输入

1、合并小文件:在执行MR任务前将小文件进行合并,大量的小文件会产生大量的Map任务,增大Map任务装载次数,而任务的装载比较耗时,从而导致MR运行较慢。
2、采用CombineTextInputFormat来作为输入,解决输入端大量小文件场景。

4.1.2 Map阶段

1、减少溢出(Spill)次数:通过调整mapreduce.task.io.sort.mb及mapreduce.map.sort.spill.percent参数值,增大触发Spill的内存上限,减少Spill次数,从而减少IO。
2、减少合并(Merge)次数:通过调整mapreduce.task.io.sort.factor参数,增大Merge的文件数目,减少Merge的次数,从而缩短MR处理时间。
3、在Map之后,不影响业务逻辑前提下,先进行Combine处理,减少I/O。

4.1.3 Reduce阶段

1、合理设置Map和Reduce数:两个都不能设置太少,也不能设置太多。太少,会导致Task等待,延长处理时间;太多,会导致Map、Reduce任务间竞争资源,造成处理超时等错误。
2、设置Map、Reduce共存
调整mapreduce.job.reduce.slowstart.completedmaps参数,使Map运行到一定程度后,Reduce也开始运行,减少Reduce的等待时间。
3、规避使用Reduce:因为Reduce在用于连接数据集的时候将会产生大量的网络消耗。
4、合理设置Reduce端的Buffer:默认情况下,数据达到一个阈值的时候,Buffer中的数据就会写入磁盘,然后Reduce会从磁盘中获得所有的数据。也就是说,Buffer和Reduce是没有直接关联的,中间多次写磁盘-》读磁盘的过程,既然有这个弊端,那么就可以通过参数来配置,使得Buffer中的一部分数据直接输送到Reducec,从而减少IO开销:mapreduce.reduce.input.buffer.percent,默认为0.0。当值大于0的时候,会保留指定比例的内存读Buffer中的数据直接拿给Reduce使用。这样一来,设置Buffer需要内存,读取数据需要内存,Reduce计算也要内存,所以要根据作业的运行情况进行调整。

4.1.4 I/O传输

1、采用数据压缩的方式,减少网络IO的时间。安装Snappy和LZO压缩编码器。
2、使用SequenceFile二进制文件。

4.1.5 数据倾斜问题

1、数据倾斜现象
数据频率倾斜-某一个区域的数据量要远远大于其它区域
数据大小倾斜-部分记录的大小远远大于平均值
2、减少数据倾斜的方法
方法1:抽样和范围分区
可以通过对原始数据进行抽样得到的结果集来预设分区边界值。
方法2:自定义分区
基于输出键的背景知识进行自定义分区。例如,如果Map输出键的单词来源于一本书。且其中某几个专业词汇较多。那么就可以自定义分区将这些专业词汇发送给固定的一部分Reduce实例。而将其它的都发送给剩余的Reduce实例。
方法3:Combiner
使用Combiner可以大量地减少数据倾斜。在可能地情况下,Combine的目的就是聚合并精简数据。
方法4:采用Map Join,尽量避免Reduce Join。

4.4.1 Hadoop小文件弊端

HDFS上每个文件都要在NameNode上创建对应的元数据,这个元数据的大小约为150byte,这样当小文件比较多的时候,就会产生很多的元数据文件,一方面会大量占用NameNode的内存空间,另一方面就是元数据文件过多,使得寻址索引速度变慢。
小文件过多,在进行MR计算时,会生成过多切片,需要启动过多的MapTask。每个MapTask处理的数据量小,导致MapTask的处理时间比启动时间还小,白白浪费资源。

4.4.2 Hadoop小文件解决方案

1、小文件优化的方向
1)在数据采集的时候,就将小文件或小批数据合成大文件再上传HDFS。
2)在业务处理之前,在HDFS上使用MapReduce程序对小文件进行合并。
3)在MapReduce处理时,可采用CombineTextInputFormat提高效率。
4)开启uber模式,实现jvm重用。
2、Hadoop Archive
是一个高效的将小文件放入HDFS块中的文件存档工具,能够将小文件打包成一个HAR文件,从而达到减少NameNode的内存使用。
3、CombineTextInputFormat
CombineTextInputFormat用于将多个小文件在切片过程中生成一个单独的切片或者少量的切片。
4、开启uber模式,实现JVM重用。
默认情况下,每个Task任务都需要启动一个JVM来运行,如果Task任务计算的数据量很小,我们可以让同一个Job的多个Task运行在一个JVM中,不必为每个Task都开启一个JVM。
开启uber模式,在mapred-site.xml中添加如下配置

 
 
 

1、scp实现两个远程主机之间的文件复制

 

2、采用distcp命令实现两个Hadoop集群之间的递归数据复制

 
 

1、HDFS存储小文件弊端
每个文件均按块存储,每个块的元数据存储在NameNode的内存中,因此HDFS存储小文件会非常低效。因为大量的小文件会消耗NameNode中的大部分内存。但注意,存储小文件所需要的磁盘容量和数据库的大小无关。例如,一个1MB的文件设置为128MB的块存储,实际使用的是1MB的磁盘空间,而不是128MB。
2、解决存储小文件办法之一
HDFS存档文件或HAR文件,是一个更高效的文件存档工具,它将文件存入HDFS块,在减少NameNode内存使用的同时,允许对文件进行透明的访问。具体来说,HDFS存档文件对内还是一个一个独立文件,对NameNode而言却是一个整体,减少了NameNode的内存。
1、实例
1)需要启动YARN进程

 

2)归档文件
把/user/atguigu/input目录里面的所有文件归档成一个交input.har的归档文件,并把归档后文件存储到/user/atguigu/output路径下

 

3)查看归档

 

4)解归档文件

 
 
 
 

3、查看回收站
回收站目录在hdfs集群的路径:/user/atguigu/.Trash/…
4、通过程序删除的文件不会经过回收站,需要调用moveToTrash()才进入回收站

 

5、同故宫网页上直接删除的文件也不会走回收站。
6、只有在命令行利用hadoop fs -rm命令删除的文件才会走回收站

 

7、恢复回收站数据

最新文章
12月16日,星期一, 每日60秒读懂全世界!
新闻来源:百度热搜榜1. 董明珠问雷军:你给股民分了多少钱?近日,董明珠在节目中再次回应与雷军的“10亿赌约”。董明珠质疑雷军对股民的回报,问道:“你给股民分了多少钱?”2. 央视曝光先享后付套路多近日,央视记者曝光杭州市一美容店
APEX英雄新手入门简易教程英雄推荐,新手快速上手指南
APEX作为现在全球最火的大逃杀类型的游戏之类,在国内也是有非常庞大的玩家群体,APEX英雄也是听说将会在Wegame平台上线,目前steam在线玩家人数排行常年第三,不少小伙伴肯定都看过apex的直播或者录播,对这款游戏产生兴趣,笔者为大伙整
2024免费gm手游盒子排行榜 十大gm手游盒子app推荐合集
,2024免费gm手游盒子排行榜,今天小编为大家介绍几个比较火爆的gm手游平台,这些平台为玩家提供了丰富的游戏资源,感兴趣的话就来一起看看吧!,1. 指环手游盒子海量BT手游资源:指环手游盒子汇集了众多BT手游资源,玩家可以轻松找到并下载
Kimi、豆包发力AI搜索入口,打响轻量化之争
文 | 伯虎财经,作者 | 楷楷价格战的烽烟终究是吹到了OpenAI,取代GPT-3.5的GPT-4o mini正式上线,每100万Token的输入/输出分别是15美分/60美分。而在此之前,国内的大模型厂商已经把大模型的体验成本降低到了几乎免费。继百模大战后,越来
AI-鼠绘餐饮品牌王多鱼卡通logo设计
1.本课【重点】:卡通形象的动画设计,如何蹭热点;本课【难点】:合理配色及选择色彩基调。
B、量子恒道-店铺经做标题优化和直通车选词:
【量子恒道-店铺经】原名量子恒道统计,它是淘宝网为卖家们经营店铺量身打造的唯一官方专业数据统计分析工具。
2019世界人工智能大会回顾与前瞻,璀璨篇章及未来展望
本文目录导读:背景重要事件影响在特定领域或时代中的地位随着科技的飞速发展,人工智能(AI)已逐渐成为新时代的标志,引领着全球的创新与发展浪潮,在这样的背景下,2019年世界人工智能大会应运而生,这次大会是全球人工智能领域规模最大
2500-3000价位:iQOO Neo9S Pro+
​​又是一年开学季,每年的开学季都会迎来一波手机换机潮,2024年的手机市场迎来了许多创新技术,各大厂商都纷纷推出了极具竞争力的新款旗舰机型,包括更先进的处理器、更出色的摄像头系统、更长的电池寿命等。 对于许多即将步入大学校园
2024年运维最全Linux系统性能监控工具Glances_linux 性能监控 python 开源
Glances 有 4 种颜色标记,分别表示不同的紧急程度: 绿色:OK 蓝色:CAREFUL 紫色:WARNING 红色:CRITICALglances 是一个命令行工具包括如下命令选项:另外 glances 可以使用交互式的方式运行
2025年中考语文必得高分的三个复习方法,外附赠27篇范文(干货满满)
亲爱的同学们和家长们,最近这两天老师在外面出差,所以这两天的资料主要还是方法总结为主,同时为大家推出几篇优秀范文,大家可以翻看前面的文章,都是干货,希望大家喜欢。复习中学语文是提升语文能力和考试成绩的重要环节。一个有效的复
相关文章
推荐文章
发表评论
0评