大数据数据压缩和企业优化

MR数据压缩

MR支持的压缩编码

压缩格式是否可切片特点
DEFLATE
Gzip比较好用,存储方面比较优秀
Bzip2压缩的最小,速度最慢
LZO需要安装和建立索引
Snappy最好用,速度最快

数据压缩的位置

  • 输入端采用压缩:

    1. 数据量小于块大小,重点考虑压缩速度最快的snappy
    2. 数据量非常大,考虑是否可以支持切片,比如LZO
  • Mapper输出采用压缩:考虑压缩和解压缩的速度,比如snappy

  • Reducer输出采用压缩

    • 热数据一般不压缩或者选择压缩解压速度很块的
    • 冷数据考虑压缩比较高的,比如Bzip2和Gzip

使用压缩

  • hadoop checknative: 查看hadoop支持的压缩算法
  • 在Driver类中开启在Mapper输出进行压缩
  • 设置压缩算法的全类名为Bzip2, 这个压缩算法速度很慢,而且会占用CPU和内存
  • Driver类中在reducer输出端也可以开启压缩算法,也可以设置相应的压缩算法

企业开发优化

Map优化

  1. 输入时采用CombineTextInputFormat切片规则,合并小文件
  2. 自定义分区,实现Partitioner接口,重写getPartition方法,减少数据倾斜
  3. 减少溢写的次数
    • 提高环形缓冲区的大小,跟MapTask的内存空间保持1:10的关系
    • 提高环形缓冲区的阈值,提高到90%
  4. 增加每次Merge合并次数,默认是10,提高到20
  5. 在不影响业务结果的前提下,可以提前采用Combiner
    • 加法、乘法运算一般不影响
  6. 为了减少磁盘IO,可以采用snappy压缩
  7. 提高MapTask内存的 上限,默认是1G
  8. MapTask任务重试次数可以修改,但一般不修改,默认4次

Reducer优化

  1. Reducer拉取数据的并行度,默认是每次拉取5个,可以适当提高一点
  2. Buffer大小占Reduce可用内存的比例,默认是0.7,当内存增加时可以适当提高
  3. Buffer中数据达到多少比例开始写入磁盘,默认是0.66,比上一个参数小,可以提高一点
  4. 提高ReduceTask的内存上限,默认是1G,根据128M数据对应1G内存的原则,适当提高。
  5. MapTask完成的比例达到该值后才会为ReduceTask申请资源,默认是0.05.
  6. 设置Task卡死后的等待时间,默认是10分钟,可以调小一点,最小不能小于3分钟。

数据倾斜问题

  1. 数据倾斜现象: 某一个区域的数据量要远远大于其他区域
  2. 如何查看是否出现数据倾斜:
    • 进行抽样检查
    • 将数据进行wordcount
  3. 解决方案
    • 自定义分区,将倾斜数据分化,建议直接随机函数分区
    • 使用Combiner预聚合
    • 采用Map Join,尽量避免Reduce Join

大量小文件问题优化

小文件较多时,会产生很多的元数据文件,导致寻址索引速度变慢。
解决方案:

  1. 存储方面:Hadoop Archive文件归档
  2. 计算方面:使用CombinerText输入数据到Map

Hadoop扩展新特性

集群迁移

  • 老集群的NameNode位置为hadoop102
  • 新集群的NameNode位置为hadoop105
  • distcp hdfs://hadoop102:8020/* hdfs://hadoop105:8020/*

存档和压缩

存档只是将文件拼接在一起,没有压缩文件的大小。存档后需要生成对应的文件索引,可能比原文件还会大一点。

  • hadoop archive -archiveName input.har -p 原文件路径 归档后路径
  • hadoop fs -ls /small/small.har: 查看三个文件
  • hadoop fs -ls har:///small/small.har: 查看原文件目录
  • hadoop fs -cp har:///small/small.har /input : 拷贝后就会变回成归档前的文件

回收站

开启回收站功能,防止误删除,linux和HDFS默认是关闭的。
fs.trash.interval = 0, 表示文件的存活时间
fs.trash.checkpoint.interval=0, 检查回收站的间隔时间。必须小于文件的存活时间,否则文件的存活时间没有意义。

  1. 启用回收站,在core-site.xml文件中添加
<property><name>fs.trash.interval</name><value>1</value>
</property>
  1. 注意,回收站权限仅限命令行使用,网页界面删除不会经过回收站。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/76605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

道路积水监测-路面积水监测系统

随着城市化的不断发展&#xff0c;城市面临着越来越多的交通挑战&#xff0c;其中之一就是道路积水问题。道路积水不仅影响了交通安全&#xff0c;还会引发交通堵塞、交通事故和城市洪涝等问题。因此&#xff0c;开展道路积水监测是十分必要的。 城市排水、供水、燃气、供热、桥…

基于大规模MIMO通信系统的半盲信道估计算法matlab性能仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 %EM算法收敛所需的迭代 nIter 1; Yp Y(:,1:L_polit,:); %与导频序列相对应的部分 q…

建议收藏!TCP协议面试灵魂12 问

先亮出这篇文章的思维导图: TCP 作为传输层的协议&#xff0c;是一个IT工程师素养的体现&#xff0c;也是面试中经常被问到的知识点。在此&#xff0c;我将 TCP 核心的一些问题梳理了一下&#xff0c;希望能帮到各位。 001. 能不能说一说 TCP 和 UDP 的区别&#xff1f; 首先…

继续 Linux 中的命令并举例

continue是一个命令,用于跳过 for、while 和 Until 循环中的当前迭代。它用在脚本语言和 shell 脚本中来控制执行流程。它还需要一个参数[N],如果提到 N 则从第 n 个封闭循环继续。 Linux 中“继续”命令的语法 继续 还是 继续[N]continue or continue [N] `Continue` 命令…

如何查询成绩或工资

为什么每次查询成绩或者工资的时候都觉得麻烦又耗时呢&#xff1f;在过去&#xff0c;我们可能需要去学校或公司的相关部门&#xff0c;填写繁琐的表格&#xff0c;然后等待工作人员进行查询和处理。这不仅浪费了我们宝贵的时间&#xff0c;还可能出现查询结果不准确或者遗漏的…

芯科蓝牙BG27开发笔记4-SSV5 IDE的使用

1. 如何转移工作区的项目文件到新的文件夹&#xff0c;并且可以继续使用ssv5编辑、编译&#xff1f; 从默认的工作区将目标工程整体拷贝出来 目标文件夹&#xff1a; 进入ssv5点击导入工程&#xff0c;并选择目标文件夹 继续下一步&#xff0c;修改项目文件夹所在位置为其源码…

tcp与udp

tcp 服务端回复完SYNACK之后&#xff0c;就建立连接 1.为什么是三次&#xff0c;而不是两次&#xff1f;服务端回复完SYNACK之后&#xff0c;就建立连接 这是为了防止因为已失效的请求报文&#xff0c;突然又传到服务器引起错误 意思就是&#xff1a;假设采用两次握手建立连…

ardupilot开发 --- MAVSDK 篇

概述 MAVSDK是各种编程语言的库集合&#xff0c;用于与MAVLink系统&#xff08;如无人机、相机或地面系统&#xff09;接口。这些库提供了一个简单的API&#xff0c;用于管理一个或多个车辆&#xff0c;提供对车辆信息和遥测的程序访问&#xff0c;以及对任务、移动和其他操作…

聚观早报|华为Mate 60 Pro支持面容支付;特斯拉重回底特律车展

【聚观365】9月8日消息 华为Mate 60 Pro已支持面容支付 特斯拉将重回底特律车展 iPhone在美国有1.67亿用户 韩国半导体8月份出口85.6亿美元 比亚迪元PLUS冠军版将于9月15日上市 华为Mate 60 Pro已支持面容支付 毫无预热的华为Mate 60 Pro突然在华为商城首批开售&#xf…

kafka增加磁盘或者分区,topic重分区

场景&#xff1a;kafka配置文件log.dirs增加了几个目录&#xff0c;但是新目录没有分区数据写入&#xff0c;所以打算进行重分区一下。 1.生成迁移计划 进入kafka/bin目录 新建 topic-reassign.json,把要重分区的topic按下面格式写。 { "topics": [{ …

css中只使用vue的变量

参考&#xff1a;https://blog.csdn.net/FellAsleep/article/details/130617163 1、必须作用在用一个div上 2、变量必须有双横杠“–” <spanclass"bb" :style"spanStyle">11</span>data() {return {spanStyle: {"--color": #bfa /…

云原生Kubernetes:Kubeadm部署K8S单Master架构

目录 一、理论 1.kubeadm 2.Kubeadm部署K8S单Master架构 3.环境部署 4.所有节点安装docker 5.所有节点安装kubeadm&#xff0c;kubelet和kubectl 6.部署K8S集群 7.安装dashboard 8.安装Harbor私有仓库 9.内核参数优化方案 二、实验 1.Kubeadm部署K8S单Master架构 …

三维模型3DTile格式轻量化压缩处理效率提高的技术方浅析

三维模型3DTile格式轻量化压缩处理效率提高的技术方浅析 随着三维模型在各个领域的广泛应用&#xff0c;对于其格式的轻量化压缩处理和效率提高的需求也越发迫切。本文将介绍一些技术方法&#xff0c;帮助实现三维模型3DTile格式的轻量化压缩处理并提高处理效率。 首先&#x…

Python + Jmeter 实现自动化性能压测

Step01: Python脚本开发 文件路径&#xff1a;D://wl//testproject//Fone-grpc//project1//test_client.py Python 脚本作用&#xff1a; 1.通过 grpc 调用底层 c 的接口&#xff0c;做数据库的数据插入与查询操作&#xff0c;然后将返回的结果进行拼接与输出。 2.代码里面…

Java调用ChatGPT的API接口实现对话与图片生成

文章目录 步骤1&#xff1a;配置代理步骤2&#xff1a;添加依赖步骤3&#xff1a;编写Constants类步骤4&#xff1a;实现问答交互步骤5&#xff1a;实现图片生成 步骤1&#xff1a;配置代理 有些魔法是需要做配置的。否则无法正确实现代码测试。这里以我使用的工具为例说明。 …

华为OD七日集训第4期 - 按算法分类,由易到难,循序渐进,玩转OD

目录 一、适合人群二、本期训练时间三、如何参加四、7日集训第4期五、精心挑选21道高频100分经典题目&#xff0c;作为入门。第1天、数据结构第2天、滑动窗口第3天、贪心算法第4天、二分查找第5天、分治递归第6天、深度优先搜索dfs算法第7天、宽度优选算法&#xff0c;回溯法 六…

14.Xaml ProgressBar控件 进度条控件

1.运行效果 2.运行源码 a.Xaml源码 <Grid Name="Grid1"><!--Orientation="Horizontal" 进度条的方向 水平的还是垂直的Value="40" 进度的数值Minimum="0" 最小值Maximum

自然语言处理学习笔记(九)———— OVV Recall Rate与 IV Recall Rate

目录 1.OVV Recall Rate 2. IV Recall Rate 1.OVV Recall Rate OOV指的是“未登录词”&#xff08;Out Of Vocabulary&#xff09;&#xff0c;或者俗称的“新词”&#xff0c;也即词典未收录的词汇。如何准确切分00V&#xff0c;乃至识别其语义&#xff0c;是整个NLP领域的核…

2023最新计算机信息管理毕设选题分享

文章目录 0 前言1 java web 管理系统 毕设选题2 java web 平台/业务系统 毕设选题3 游戏设计、动画设计类 毕设选题 (适合数媒的同学)4 算法开发5 数据挖掘 毕设选题6 大数据处理、云计算、区块链 毕设选题7 网络安全 毕设选题8 通信类/网络工程 毕设选题9 嵌入式 毕设选题10 开…

【大数据】基于 Flink CDC 高效构建入湖通道

基于 Flink CDC 高效构建入湖通道 1.Flink CDC 核心技术解析2.CDC 数据入湖入仓的挑战2.1 CDC 数据入湖架构2.2 CDC 数据 ETL 架构 3.基于 Flink CDC 的入湖入仓方案3.1 Flink CDC 入湖入仓架构3.2 Flink CDC ETL 分析3.3 存储友好的写入设计3.4 Flink CDC 实现异构数据源集成3…