当前位置: 首页 > news >正文

【大数据之Hadoop】三十四、Hadoop综合调优之小文件优化方法

1 Hadoop小文件弊端

  HDFS上每个文件都要在NameNode上创建对应的元数据,这个元数据的大小约为150byte,这样当小文件比较多的时候,就会产生很多的元数据文件,一方面会大量占用NameNode的内存空间,另一方面就是元数据文件过多,使得寻址索引速度变慢。

  小文件过多,在进行MR计算时,会生成过多切片,需要启动过多的MapTask。每个MapTask处理的数据量小,导致MapTask的处理时间比启动时间还小,白白消耗资源。

2 Hadoop小文件解决方案

(1)在数据采集的时候,就将小文件或小批数据合成大文件再上传HDFS(数据源头)

(2)Hadoop Archive(存储方向)
  是一个高效的将小文件放入HDFS块中的文件存档工具,能够将多个小文件打包成一个HAR文件,从而达到减少NameNode的内存使用

(3)CombineTextInputFormat(计算方向)
  CombineTextInputFormat用于将多个小文件在切片过程中生成一个单独的切片或者少量的切片(小文件放在一起统一进行切片)。

(4)开启uber模式,实现JVM重用(计算方向)
  当存在很多小文件的任务开启和结束关闭时间大于任务的执行时间时使用一个策略:将小文件的任务开启之后运行,运行完成也不结束。

  默认情况下,每个Task任务都需要启动一个JVM来运行,如果Task任务计算的数据量很小,可以让同一个Job的多个Task运行在一个JVM中,不必为每个Task都开启一个JVM。

  在没有开启uber模式下,对/input路径上上传的小文件执行wordcount程序,可用看到控制台上显示uber模式是关闭的,且http://hadoop103:8088/cluster中该任务开启的容器超过1个,不大于9个。

  开启uber模式,在mapred-site.xml中添加如下配置:

<!--  开启uber模式,默认关闭 -->
<property><name>mapreduce.job.ubertask.enable</name><value>true</value>
</property><!--uber模式中最大的mapTask数量,可向下修改  --> 
<property><name>mapreduce.job.ubertask.maxmaps</name><value>9</value>
</property>
<!--uber模式中最大的reduce数量,可向下修改 -->
<property><name>mapreduce.job.ubertask.maxreduces</name><value>1</value>
</property>
<!--uber模式中最大的输入数据量,默认使用dfs.blocksize 的值,可向下修改 -->
<property><name>mapreduce.job.ubertask.maxbytes</name><value></value>
</property>

  分发该文件,再次运行wordcount程序,观察到控制台显示uber模式开启,且http://hadoop103:8088/cluster中该任务开启的容器只有1个。

  只有一个容器的原因:开启uber模式,将小文件的任务开启之后运行,运行完成也不结束,减少开关任务的时间。

相关文章:

【大数据之Hadoop】三十四、Hadoop综合调优之小文件优化方法

1 Hadoop小文件弊端 HDFS上每个文件都要在NameNode上创建对应的元数据&#xff0c;这个元数据的大小约为150byte&#xff0c;这样当小文件比较多的时候&#xff0c;就会产生很多的元数据文件&#xff0c;一方面会大量占用NameNode的内存空间&#xff0c;另一方面就是元数据文件…...

周赛 Round#3 题解

又不能放图片&#xff0c;又不能写学校&#xff0c;你让我怎么办啊&#xff01;&#xff01; 系列文章目录 1.周赛 Round#1 2.周赛 Round#2 前言 这是周赛第三轮。//涉及隐私原因&#xff0c;博文里不放题目&#xff0c;要看的去http://0241:101:610:801.22222 划分字符串贪…...

详解HTTPS加密过程

目录 前言 HTTPS是什么 HTTPS的工作过程 引入对称加密 引入非对称加密 引入证书 总结 前言 对于HTTP上篇文章已经做了详细的解释了。众所周知&#xff0c;HTTPS要比HTTP要安全&#xff0c;但是为什么HTTPS要比HTTP安全呢&#xff1f; 这篇文章主要研究HTTPS的加密机制…...

聚观早报 | ChatGPT登顶美区iOS免费榜;库克不满苹果首款MR设备

今日要闻&#xff1a;ChatGPT登顶美区iOS免费榜&#xff1b;库克不满苹果首款MR设备&#xff1b;索尼正开发小尺寸折叠屏手机&#xff1b;万达辟谣大规模裁员&#xff1b;智能仿生手让截肢者重获手心的温度 ChatGPT登顶美区iOS免费榜 ChatGPT 在 iOS 美区免费 App 排行榜上位列…...

position:sticky-粘性吸附布局

一、描述 就是在一个滚动的容器里,将一个子元素设置为postion:sticky 在元素显示在可视区域内,显示的效果与position:relative 一致&#xff0c;当元素被滑动出可视区域外是,显示效果与position:fixed一致 二、注意事项 1、父元素需要存在滚动&#xff08;overflow:auto&…...

【MySQL】-【数据库的设计规范】

文章目录 为什么需要数据库设计范式范式简介范式都包括哪些键和相关属性的概念第一范式(1st NF)第二范式(2nd NF)第三范式(3rd NF) 反范式化概述应用举例反范式化的新问题反范式的适用场景 BCNF(巴斯范式)案例案例一案例二 第四范式案例案例一案例二 第五范式、域键范式范式的实…...

全面解析缓存应用经典问题

1、前言 随着互联网从简单的单向浏览请求&#xff0c;发展为基于用户个性信息的定制化以及社交化的请求&#xff0c;这要求产品需要做到以用户和关系为基础&#xff0c;对海量数据进行分析和计算。对于后端服务来说&#xff0c;意味着用户的每次请求都需要查询用户的个人信息和…...

Java版本企业电子招采系统源码——信息数智化招采系统

信息数智化招采系统 服务框架&#xff1a;Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security 前端架构&#xff1a;VUE、Uniapp、Layui、Bootstrap、H5、CSS3 涉及技术&#xff1a;Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、Stre…...

Rust每日一练(Leetday0005) 罗马数字、公共前缀、三数之和

目录 13. 罗马数字转整数 Roman to Integer &#x1f31f; 14. 最长公共前缀 Longest Common Prefix &#x1f31f; 15. 三数之和 3Sum &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golang每日一练 专栏 Python每日…...

【告别校园,迎接未来】

作为一个曾经的大学生&#xff0c;我的四年大学时光充满了起伏和挑战。回顾这段时光&#xff0c;我深刻认识到了自己的不足&#xff0c;同时也感悟了一些珍贵的人生经验和收获。 我是一个比较内向的人&#xff0c;进入大学后感觉有些孤独&#xff0c;难以适应新的环境和生活方…...

SaaS系统用户权限设计

SaaS系统用户权限设计 学习目标&#xff1a; 理解RBAC模型的基本概念及设计思路 了解SAAS-HRM中权限控制的需求及表结构分析完成组织机构的基本CRUD操作 完成用户管理的基本CRUD操作完成角色管理的基本CRUD操作 组织机构管理 需求分析 需求分析 实现企业组织结构管理&#xff0…...

我们为什么还要学习Altium Designer?

Altium Designe&#xff08;简称“AD”&#xff09;是电子设计领域中备受推崇的软件工具之一&#xff0c;拥有强大的功能和灵活的设计环境&#xff0c;也是要用最广泛的EDA工具之一&#xff0c;为电子工程师提供了无限可能&#xff0c;但很多工程师学完AD基本操作就转投其他EDA…...

Q1业绩整体回暖,影视行业找到增长新路径

凛冬已过&#xff0c;影视行业恢复了生机。 数据显示&#xff0c;今年一季度&#xff0c;影视院线板块全部上市公司分别实现营收、归母净利111.86亿元、10.15亿元&#xff0c;同比增幅为1.44%和53.76%。在经济复苏的背景下&#xff0c;影视行业实现了扭亏为盈和跨越式增长。 …...

Zabbix

概述 作为一个运维&#xff0c;需要会使用监控系统查看服务器系统性能、应用服务状态和网站流量指标等&#xff0c;利用监控系统的数据去了解网站上线发布的结果和健康状态。 利用一个优秀的监控软件&#xff0c;我们可以: ●通过一个友好的界面进行浏览整个网站所有的服务器…...

OpenHarmony支持HDMI接口声卡适配说明

高清多媒体接口&#xff08;High Definition Multimedia Interface&#xff0c;HDMI &#xff09;是一种全数字化视频和声音发送接口&#xff0c;可以发送未压缩的音频及视频信号。HDMI可用于机顶盒、DVD播放机、个人计算机、电视、游戏主机、综合扩大机、数字音响与电视机等设…...

AtCoder Beginner Contest 300G - P-smooth number解题报告

AtCoder Beginner Contest 300G - P-smooth number解题报告 1 题目链接 传送门 2 题目大意 题目&#xff1a;P-光滑数的数量 题目大意&#xff1a; 在 1 1 1 到 n n n 中&#xff0c;有多少个数的所有质因数均不超过 p ( p ≤ 100 ) p\ (p\leq100) p (p≤100)。 3 解…...

数据分析与预处理常用的图和代码

1.训练集和测试集统计数据描述之间的差异作图&#xff1a; def diff_color(x):color red if x<0 else (green if x > 0 else black)return fcolor: {color}(train.describe() - test.describe())[features].T.iloc[:,1:].style\.bar(subset[mean, std], alignmid, colo…...

Http与Https 比较

目录 1、HTTP&#xff08;HyperText Transfer Protocol&#xff1a;超文本传输协议&#xff09; 2、HTTPS&#xff08;Hypertext Transfer Protocol Secure&#xff1a;超文本传输安全协议&#xff09; 3、HTTP 与 HTTPS 区别 4、HTTPS 的工作原理 1、HTTP&#xff08;HyperTex…...

02 面向对象( 继承,抽象类)

强调&#xff1a;一定用自己的话总结&#xff0c;避免抄文档&#xff0c;否则视为作业未完成。 this关键字的作用 为了解决成员变量和局部变量所存在的二义性,适用于有参构造时使用 示例 private String name;private int age;public person(){}public person(String name,i…...

[C++]22种设计模式的C++实现大纲

前言 最近看遍全网&#xff0c;准备整理一套较好上手的设计模式文章&#xff0c;以便后续复习到处翻找&#xff0c;在此记录一下&#xff0c;如有侵权可以联系删除, 每天更新一篇&#xff0c;直到更新完 前置知识 UML类图与面向对象编程C UML类图详解软件设计原则与SOLID原则…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...