hadoop调优
hadoop调优
1 HDFS核心参数
1.1 NameNode内存生产配置
1.1.1 NameNode内存计算
每个文件块大概占用150byte,如果一台服务器128G,能存储的文件块如下
128 (G)* 1024(MB) * 1024(KB) * 1024(Byte) / 150 Byte = 9.1 亿
1.1.2 Hadoop2.x
在Hadoop2.x中,NameNode内存默认2000m,如果服务器内存4G,NameNode内存可以配置3G
在hadoop-env.sh中配置
HADOOP_NAMENODE_OPTS=-Xmx3072m
1.1.3 Hadoop3.x
在Hadoop3.x中,NameNode和DataNode占用的内存都是自动分配的,并且相等
可以自己进行更改
配置hadoop-env.sh
export HDFS_NAMENODE_OPTS="-Dhadoop.security.logger=INFO,RFAS -
Xmx1024m"
export HDFS_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,RFAS
-Xmx1024m"
1.2 NameNode心跳并发配置
NameNode有一个工作线程池,用来处理不同的DataNode的并发心跳以及客户端并发的元数据操作
默认值为10
<property><name>dfs.namenode.handler.count</name><value>21</value>
</property>
1.3 回收站配置
回收站可以蒋删除的文件在不超时的情况下恢复原数据,起到防止误操作、备份的作用
1.3.1 工作机制
1.3.2 参数说明
- 默认值fs.trash.interval = 0,表示禁用回收站
- fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。该值为0,表示和fs.trash.interval 参数相同
- 要求 fs.trash.checkpoint.interval <= fs.trash.interval。
1.3.3 启动回收站
修改core-site.xml,配置垃圾回收时间为1min
<property><name>fs.trash.interval</name><value>1</value>
</property>
通过网站删除的文件不会进入到回收站
经过程序删除的文件不会经过回收站,需要调用moveToTrash()才能进入回收站
Trash trash = New Trash(conf);
trash.moveToTrash(path);
在命令行使用hadoop fs -rm命令删除的文件才会走回收站
2 HDFS集群压测
HDFS的读写性能只要收到网络和磁盘的影响
2.1 HDFS写性能
向HDFS写10个128M文件
[jx@hadoop102 mapreduce]$ hadoop jar /opt/module/hadoop3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-clientjobclient-3.1.3-tests.jar TestDFSIO -write -nrFiles 10 -
fileSize 128MB
2021-02-09 10:43:16,853 INFO fs.TestDFSIO: ----- TestDFSIO ----- : write
2021-02-09 10:43:16,854 INFO fs.TestDFSIO: Date & time: Tue Feb
09 10:43:16 CST 2021
2021-02-09 10:43:16,854 INFO fs.TestDFSIO: Number of files: 10
2021-02-09 10:43:16,854 INFO fs.TestDFSIO: Total MBytes processed: 1280
2021-02-09 10:43:16,854 INFO fs.TestDFSIO: Throughput mb/sec: 1.61
2021-02-09 10:43:16,854 INFO fs.TestDFSIO: Average IO rate mb/sec: 1.9
2021-02-09 10:43:16,854 INFO fs.TestDFSIO: IO rate std deviation: 0.76
2021-02-09 10:43:16,854 INFO fs.TestDFSIO: Test exec time sec: 133.05
2021-02-09 10:43:16,854 INFO fs.TestDFSIO:
Number of files : 生成的MapTask的数量
Total MBytes processed : 单个map处理文件的大小
Throughput mb/sec:单个mapTask的吞吐量
计算方式:处理总文件的大小 / 每个mapTask写数据的时间累加
集群整体的吞吐量 : 生成的mapTask数量 * 单个mapTask的吞吐量
Average IO rate mb/sec:平均每个mapTask的吞吐量
如果测试速度远小于网络,可以考虑增加固态硬盘或者增加磁盘个数
3 HDFS多目录配置
3. 1 NameNode多目录配置
为了提高HDFS的可靠性和性能,可以在NameNode上配置多个目录来存储NameNode的元数据信息。每个目录存放内容相同,增加了可靠性
配置NameNode多目录的步骤:
- 创建多个目录:在NameNode所在的机器上创建多个目录用于存储NameNode元数据信息。可以在本地磁盘、网络存储设备或者分布式文件系统上创建这些目录。
- 设置hdfs-site.xml文件:在hdfs-site.xml文件中添加以下配置:
<property><name>dfs.namenode.name.dir</name><value>/path/to/first/directory,/path/to/second/directory</value>
</property>
其中,/path/to/first/directory
和/path/to/second/directory
是创建的多个目录的路径,多个目录之间用逗号分隔。
-
将元数据信息复制到新目录:在NameNode启动之前,需要将原来的元数据信息复制到新目录中。可以使用命令
hdfs dfsadmin -refreshNodes
来刷新NameNode节点,并将元数据信息复制到新目录中。 -
启动NameNode:启动NameNode后,它将自动读取hdfs-site.xml文件中的配置,并将元数据信息存储到多个目录中。
3.2 DataNode多目录配置
DataNode 可以配置成多个目录,每个目录存储的数据不一样
配置DataNode多目录的步骤:
- 创建多个目录:在DataNode所在的机器上创建多个目录用于存储数据块。可以在本地磁盘、网络存储设备或者分布式文件系统上创建这些目录。
- 设置hdfs-site.xml文件:在hdfs-site.xml文件中添加以下配置:
phpCopy code<property><name>dfs.datanode.data.dir</name><value>/path/to/first/directory,/path/to/second/directory</value>
</property>
其中,/path/to/first/directory
和/path/to/second/directory
是创建的多个目录的路径,多个目录之间用逗号分隔。
- 启动DataNode:启动DataNode后,它将自动读取hdfs-site.xml文件中的配置,并将数据块存储到多个目录中。
3.3 磁盘间数据均衡
在HDFS中,数据块默认会被存储在集群中的不同DataNode上,以提高数据的可靠性和性能。但是,由于不同DataNode的磁盘容量和使用情况不同,可能会导致磁盘空间不平衡的问题,进而影响HDFS的性能。为了解决这个问题,可以使用Hadoop提供的数据均衡工具来平衡不同DataNode的磁盘空间使用情况。
下面是使用数据均衡工具来平衡不同DataNode的磁盘空间使用情况的步骤:
- 启用数据均衡工具:在hdfs-site.xml文件中添加以下配置,启用数据均衡工具:
<property><name>dfs.balancer.enabled</name><value>true</value>
</property>
- 配置数据均衡工具:可以在命令行中使用hdfs balancer命令配置数据均衡工具。例如,可以使用以下命令来配置数据均衡工具,使得每个DataNode的磁盘空间使用率不超过90%:
Copy code
hdfs balancer -threshold 90
- 运行数据均衡工具:可以在命令行中使用hdfs balancer命令来运行数据均衡工具。例如,可以使用以下命令来运行数据均衡工具:
Copy code
hdfs balancer
数据均衡工具将自动检测集群中的不同DataNode的磁盘空间使用情况,并移动数据块来平衡磁盘空间使用情况。
4 HDFS集群的扩容
4.1 添加白名单
HDFS白名单是指在HDFS中配置一组允许访问HDFS文件系统的IP地址列表,其他IP地址将被禁止访问。这种配置可以增强HDFS集群的安全性,防止未经授权的访问。
HDFS白名单的配置可以通过以下步骤实现:
-
编辑hdfs-site.xml文件,添加以下配置:
code<property><name>dfs.hosts</name><value>/etc/hadoop/conf/dfs.hosts</value> </property>
-
在dfs.hosts文件中列出允许访问HDFS文件系统的IP地址列表,格式如下:
hadoop102 hadoop103 hadoop104
-
重启HDFS服务,使配置生效。
在HDFS白名单配置生效后,只有列出的IP地址可以访问HDFS文件系统,其他IP地址将被禁止访问。需要注意的是,dfs.hosts文件必须在所有的DataNode节点和NameNode节点上都存在,否则HDFS将无法启动。
4.2服务器间数据均衡
数据均衡是指在分布式存储系统中,通过重新分配存储节点之间的数据块来平衡不同节点之间的数据负载,以提高存储系统的性能和可靠性。Hadoop自带了数据均衡机制,当某个节点的数据负载过高或过低时,会自动将数据块从一个节点移动到另一个节点以实现负载均衡。
以下是Hadoop中常用的数据均衡方法:
- 周期性数据均衡:Hadoop默认情况下会每隔一段时间(默认为一周)对数据进行均衡。当数据节点之间的负载差异超过一定的阈值时,Hadoop会自动启动数据均衡过程。
- 手动数据均衡:管理员也可以手动启动数据均衡过程,可以通过hadoop dfsadmin -balancer命令来手动触发数据均衡。该命令将重新分配数据块,使得所有节点之间的负载均衡。
- 配置数据均衡策略:Hadoop中还提供了配置数据均衡策略的方法。例如,可以配置阈值,当负载差异超过阈值时触发数据均衡;可以配置最大移动数据块数量,以避免数据均衡过程过于耗时等。
需要注意的是,数据均衡会占用网络带宽和磁盘IO资源,并且在数据均衡过程中,Hadoop集群的性能可能会受到影响。因此,在进行数据均衡时,需要根据集群的负载情况和运行时间进行调度和计划,以确保数据均衡过程对Hadoop集群的影响最小。
由于 HDFS 需要启动单独的 Rebalance Server 来执行 Rebalance 操作,所以尽量 不要在 NameNode 上执行 start-balancer.sh,而是找一台比较空闲的机器。
4.3 黑名单退役服务器
,黑名单退役服务器是指已经从集群中移除的服务器或节点。通常,当一个服务器或节点出现故障或需要升级时,管理员会将其加入黑名单并从集群中移除。这样可以避免故障节点对整个集群造成影响,同时也可以保证集群的稳定性和高可用性。
对于黑名单退役服务器中的数据,Hadoop提供了多种方式来处理:
- 数据重复存储:管理员可以通过配置副本数来实现数据的冗余存储。如果黑名单退役服务器上的数据已经有副本存储在其他服务器上,那么数据不会丢失。Hadoop会自动将数据块复制到其他服务器上,以保证数据的可靠性和可用性。
- 数据迁移:如果黑名单退役服务器上的数据没有副本存储在其他服务器上,那么管理员需要手动将数据迁移到其他服务器上。可以使用hadoop fs -get命令将数据下载到本地,然后使用hadoop fs -put命令将数据上传到其他服务器。
- 数据删除:如果黑名单退役服务器上的数据已经没有用处,可以使用hadoop fs -rm命令将其删除。删除数据之前需要进行备份,以免误删造成数据丢失。
5 HDFS 存储优化
5.1 纠删码
5.1.1 纠删码原理
HDFS纠删码是一种数据保护机制,通过在数据块之间添加冗余信息来提高数据的可靠性和可用性。在HDFS中,将原始数据分割成多个数据块,并在这些数据块之间添加冗余信息以保护数据的完整性。
与传统的数据备份方式相比,纠删码具有更高的存储效率和更好的可靠性。它可以将原始数据切分成多个数据块,然后通过添加冗余信息来保护数据的完整性。与备份方式相比,纠删码可以在保护数据的同时减少数据存储的成本。
HDFS纠删码可以提高数据的可靠性和可用性,同时也可以减少数据存储的成本。但是,它也会增加数据处理的复杂度和计算成本。在使用HDFS纠删码时,需要根据具体应用场景进行选择,并合理配置纠删码参数以达到最佳的性能和效果。
5.1.2 纠删码策略
RS-3-2-1024k::使用 RS 编码,每 3 个数据单元,生成 2 个校验单元,共 5 个单元,只要有任意的 3 个单元存在,就可以得到原始数据
RS-10-4-1024k:使用 RS 编码,每 10 个数据单元(cell),生成 4 个校验单元,共 14 个单元,只要有任意的 10 个单元存在),就可以得到原始数据
XOR-2-1-1024k:使用 XOR 编码(速度比 RS 编码快),每 2 个数据单元,生成 1 个校 验单元,共 3 个单元,只要有任意的 2 个单元存在,就可以得到原始数据
5.2 异构存储(冷热数据分离)
HDFS异构存储是指在HDFS中使用不同类型的存储介质来存储数据,例如硬盘、固态硬盘、闪存、内存等。异构存储可以提高存储系统的性能和可用性,同时也可以降低存储成本。
相关文章:
hadoop调优
hadoop调优 1 HDFS核心参数 1.1 NameNode内存生产配置 1.1.1 NameNode内存计算 每个文件块大概占用150byte,如果一台服务器128G,能存储的文件块如下 128 (G)* 1024(MB) * 1024(KB) * 1024(Byte) / 150 Byte 9.1 亿 1.1.2 Hadoop2.x 在Hadoop2.x中…...
EM@三角函数诱导公式
文章目录诱导公式单位圆坐标和三角函数记忆口诀符号看象限奇变偶不变例常用诱导公式🎈常用部分(5对)倒数关系六种三角函数间的转换关系小结ReflectionsShifts and periodicity诱导公式 诱导公式 - 维基百科,自由的百科全书 (wikipedia.org) 单位圆坐标…...
是不是只能学IT互联网技术才有发展前途?
当然不是,三百六十行,行行出状元。 但我们需要认清一个现实是,我们正处于一个信息爆炸的时代,掌握紧跟潮流的技术,才可以让我们更自信地面对每天的生活,才有多余的精力、财力来享受生活。“人生在世&#…...
Linux 进程:exit和_exit的辨析
目录1.接口与函数2.缓冲区3.exit 与 _exit(1)_exit(2)exit这里来认识exit函数和 _exit接口 ,它们的作用是类似的,都是在调用后退出程序,可以在程序的任何地方调用。 1.接口与函数 exit函数和_exit接口,一个函数,一个…...
智能电子标签——商超版价签
2.1英寸TFT黑白电子价签 ★ 快速变价,高效运营 ★ 市场实用,布局物联网未来 ★ 更好客户体验 ★ 降低系统成本,具备竞争力 ★ 2.1英寸黑白红电子价签 ★ 电池低能耗,常规使用三年 ★ 穿透力强不慣障碍 ★ 2.4G载波&#x…...
计算机网络自检
1 计网体系结构 因特网结构: 计网三个组成成分: 工作方式-其中2个部分: 功能-两个子网: 5个XAN分别是: 传输技术,两者的主要区别: 4种基本网络拓扑结构: 3种交换技术: 协…...
DC真实数据都有哪些?Filecoin为DC数据存储的解决方案又是什么?
对于生活在数字时代的我们而言,数据或许就和平日呼吸的空气一样,已经不需要我们再去思考其概念。我们的日常生活中无时无刻都有数据的身影,日常的购物消费、出行、学习、记录,当我们每天生活有数字化加持的小区里,工作…...
解决vscode无法自动更新
一.前言 要在vscode里面安装插件,被提示版本不匹配,然后得更新,然后我发现我的'帮助'菜单栏下没有检查更新,然后我去&…...
315线上知识竞赛答题活动方案及模板分享
315线上知识竞赛答题活动方案及模板分享在315国际消费者权益日来临之际, 很多单位推出有奖知识竞答, 希望大家在了解专业知识的同时, 还可以拿到自己喜欢的奖品!这是消费者委员会和监管局联合举办的“315消费知识在线有奖竞答”活…...
论文复现-2:代码部分
以CONLL03数据集为例 文章目录1 整体框架2 数据结构2.1 原始数据集2.2 处理之后的数据集3 代码部分3.0 模型参数3.1 数据预处理3.2 模型方法3.1.1 定义表示的学习权重项的学习双塔模型3.2.2 forward3.3 损失函数3.4 训练与推理Ablation study训练实例1 整体框架 任务是实体识别…...
Linux开放的端口太多了?教你一招找出所有开放的端口,然后直接干掉!
基于服务器安全性维护的目的,查看所有开放的端口是通常采取的第一步,从中检查出可疑或者不必要的端口并将其关掉。关于查看开放的端口,方法不止一种,比如lsof 命令,还可以使用 ss 命令。 查看开放的端口 今天我们就介…...
mysql集群简介
集群的好处 高可用性:故障检测及迁移,多节点备份。 可伸缩性:新增数据库节点便利,方便扩容。 负载均衡:切换某服务访问某节点,分摊单个节点的数据库压力。 集群要考虑的风险 网络分裂:群集还…...
装饰器模式
概述 当我们编写软件时,有时我们会遇到需要在不修改现有代码的情况下添加新功能的情况。这时,我们可以使用装饰器模式。 装饰器模式是一种结构性设计模式,它允许我们在不改变对象接口的情况下动态地向对象添加功能。装饰器模式通过创建一个…...
21 Nacos客户端本地缓存及故障转移
Nacos客户端本地缓存及故障转移 在Nacos本地缓存的时候有的时候必然会出现一些故障,这些故障就需要进行处理,涉及到的核心类为ServiceInfoHolder和FailoverReactor。 本地缓存有两方面,第一方面是从注册中心获得实例信息会缓存在内存当中&a…...
遍历读取文件夹下的所有文件
遍历读取文件夹下的所有文件 例如,读取文件夹下,子文件夹的所有的jpg文件: import glob path "./database/20230302/night/*/*.jpg"#设置自己的文件夹路径以及文件 image_files glob.glob(path, recursiveTrue)for image_file …...
nexus安装与入门
安装 nexus-3.31.1-01-unix.tar.gz 链接:https://pan.baidu.com/s/1YrJMwpGxmu8N2d7XMl6fSg 提取码:kfeh 上传到服务器,解压 tar -zvxf nexus-3.31.1-01-unix.tar.gz进入bin目录,启动 ./nexus start查看状态 ./nexus status默…...
Flink SQL Checkpoint 学习总结
前言 学习总结Flink SQL Checkpoint的使用,主要目的是为了验证Flink SQL流式任务挂掉后,重启时还可以继续从上次的运行状态恢复。 验证方式 Flink SQL流式增量读取Hudi表然后sink MySQL表,任务启动后处于running状态,先查看sin…...
2023年“楚怡杯“湖南省职业院校技能竞赛“网络安全”竞赛任务书
2023年“楚怡杯“湖南省职业院校技能竞赛“网络安全”竞赛任务书 一、竞赛时间 总计:360分钟 竞赛阶段竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A模块 A-1 登录安全加固 180分钟 200分 A-2 本地安全策略配置 A-3 流量完整性保护 A-4 事件监控 …...
MyBatis中主键回填的两种实现方式
主键回填其实是一个非常常见的需求,特别是在数据添加的过程中,我们经常需要添加完数据之后,需要获取刚刚添加的数据 id,无论是 Jdbc 还是各种各样的数据库框架都对此提供了相关的支持,本文我就来和和大家分享下数据库主…...
Windows11如何打开ie浏览器
目录1.背景:2.方法一:在 edge 中配置使用 ie 模式3.方法二:通过 Internet 选项 打开1.背景: 昨天电脑自动从win10升级为win11了,突然发现电脑找不到ie浏览器了,打开全都是直接跳转到 edge 浏览器࿰…...
Linux:进程间通信
目录 进程间通信目的 进程间通信分类 管道 System V IPC POSIX IPC 什么是管道 站在文件描述符角度-深度理解管道 管道使用 管道通信的四种情况 管道通信的特点 进程池管理 命名管道 创建一个命名管道 命名管道的打开规则 命名管道通信实例 匿名管道与命名管道的…...
【java】将LAC改造成Elasticsearch分词插件
目录 为什么要将LAC改造成ES插件? 怎么将LAC改造成ES插件? 确认LAC java接口能work 搭建ES插件开发调试环境 编写插件 生成插件 安装、运行插件 linux版本的动态链接库生成 总结 参考文档 为什么要将LAC改造成ES插件? ES是著名的非…...
TPM 2.0实例探索3 —— LUKS磁盘加密(5)
接前文:TPM 2.0实例探索3 —— LUKS磁盘加密(4) 本文大部分内容参考: Code Sample: Protecting secret data and keys using Intel Platform... 二、LUKS磁盘加密实例 4. 将密码存储于TPM的PCR 现在将TPM非易失性存储器中保护…...
mybatisplus复习(黑马)
学习目标能够基于MyBatisPlus完成标准Dao开发能够掌握MyBatisPlus的条件查询能够掌握MyBatisPlus的字段映射与表名映射能够掌握id生成策略控制能够理解代码生成器的相关配置一、MyBatisPlus简介MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工…...
【数据聚类|深度聚类】Deep Comprehensive Correlation Mining for Image Clustering(DCCM)论文研读
Abstract 翻译 最近出现的深度无监督方法使我们能够联合学习表示和对未标记数据进行聚类。这些深度聚类方法主要关注样本之间的相关性,例如选择高精度对来逐步调整特征表示,而忽略了其他有用的相关性。本文提出了一种新的聚类框架,称为深度全面相关挖掘(DCCM),从三个方面…...
CE认证机构有哪些机构?
CE认证机构有哪些机构? 所有出口欧盟的产品都需要办理CE证明,而电子电器以及玩具是强制性要做CE认证。很多人以为只有办理欧盟NB公告机构的CE认证才可以被承认,实际上并不是。那么,除了NB公告上的机构,还有哪些认证机…...
MYSQL5.7:Access denied for user ‘root‘@‘localhost‘ (using password:YES)解决方法
一、打开MySQL目录下的my.ini文件,在文件的[mysqld]下面添加一行 skip-grant-tables,保存并关闭文件;skip-grant-tables :跳过密码登录,登录时无需密码。my.ini :一般在和bin同目录下,如果没有的话可自己创…...
单目运算符、双目运算符、三目运算符
单目运算符是什么 单目运算符是指运算所需变量为一个的运算符 又叫一元运算符,其中有逻辑非运算符:!、按位取 反运算符:~、自增自减运算符:,-等。 逻辑非运算符【!】、按位取反运算符【~】、 自…...
离线数据仓库项目搭建——准备篇
文章目录(一)什么是数据仓库(二)数据仓库基础知识(三)数据仓库建模方式(1)星行模型(2)雪花模型(3)星型模型 VS 雪花模型(四…...
十七、本地方法接口的理解
什么是本地方法? 1.简单来讲,一个Ntive method 就是一个Java调用非Java代码的接口.一个Native Method 是这样一个Java方法:该方法的实现由非Java语言实现,比如C,这个特征并非Java所特有,很多其他的编程语言都由这一机制,比如在C中…...
做企业的网站都要准备什么手续/淘宝关键词优化软件
文章目录一、正则表达式1.1正则表达式的定义1.2 grep1.3基础正则表达式1.4 扩展正则表达式1.5 元字符操作案例二、文本处理器2.1 cut:列截取工具2.2 sort :排序工具2.3 uniq:去除连续的重复行2.4 tr :替换工具一、正则表达式 1.1…...
个人网站建设方案书模板/营销技巧有哪些
如果你忘记了mysql密码几乎是没有什么好办法可以直接修改密码了,但我们可以在my.ini把加上skip-grant-tables,然后重启mysql就不需要密码了,这时我们再修改root密码,最后再把skip-grant-tables删除重启即可。 首先,很…...
室内设计3d效果图用什么软件/贵州seo技术查询
摘要:《计算机网络:自顶向下方法(原书第4版)》是当前世界上最为流行的计算机网络教科书之一,采用了作者独创的自顶向下的方法来讲授计算机网络的原理及其协议,即从应用层协议开始沿协议栈向下讲解,强调应用层范例和应用编程接口,使读者尽快进入每天使用的应用程序环…...
wap网站 开发/百度用户服务中心
Python for 循环语句 Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。 语法:...
知名营销网站/如何让别人在百度上搜到自己公司
在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。一个排列中所有逆序总数叫做这个排列的逆序数。也就是说,对于n个不同的元素&am…...
h5响应式网站/长沙营销型网站建设
在5G的大势所趋之下,手机厂商也逐渐展露了各自在5G上的布局,其中华为与OPPO两大头部厂商也都推出了自家的5G手机:华为Mate30 Pro 5G和OPPO Reno3 Pro。这两部双模5G手机可以说都是“黑科技”于一身,旨在为消费者带去更好的体验&am…...