Hadoop 集群小文件归档 HAR、小文件优化 Uber 模式

这篇具有很好参考价值的文章主要介绍了Hadoop 集群小文件归档 HAR、小文件优化 Uber 模式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

小文件归档 HAR

小文件归档是指将大量小文件合并成较大的文件,从而减少存储开销、元数据管理的开销以及处理时的任务调度开销。

这里我们通过 Hadoop Archive (HAR) 来进行实现,它是一种归档格式,可以将多个小文件和目录归档成单个 HAR 文件。

在进行下面的操作前,请先启动集群。

对小文件进行归档

当前,在 /input 目录下存储了 3 个小文件,如下所示:

Hadoop 集群小文件归档 HAR、小文件优化 Uber 模式,hadoop,大数据,分布式,yarn,hdfs

现在我们对这三个文件进行归档,命令如下:

hadoop archive -archiveName input.har -p /input /result

这里将目录 /input 下的所有文件都进行归档,并保存在 /result 目录下,取名为 input.har

Hadoop 集群小文件归档 HAR、小文件优化 Uber 模式,hadoop,大数据,分布式,yarn,hdfs
进入归档结果目录中,可以发现归档文件的目录结构,其中 part-0 中存储的就是真正的文件内容,它包含了三个文件的所有内容;其余的文件都是归档相关的文件记录信息。

查看已经归档的文件

hadoop fs -ls har:///result/input.har

Hadoop 集群小文件归档 HAR、小文件优化 Uber 模式,hadoop,大数据,分布式,yarn,hdfs

解档文件

hadoop fs -cp har:///result/input.har/* /

Hadoop 集群小文件归档 HAR、小文件优化 Uber 模式,hadoop,大数据,分布式,yarn,hdfs

注意,解档指定的目录必须提前创建。

小文件优化 Uber 模式

什么是 Uber 模式?

“Uber 模式” 是指在 Hadoop 中运行 MapReduce 任务时,将所有的任务(Mapper 和 Reducer)都运行在一个单独的 JVM 进程中,而不是在集群的不同节点上分别启动多个 JVM 进程来运行任务。

这个模式的名称来自于 Uber 公司,他们在其 Hadoop 集群上采用了这种方式来运行任务。

优点

  • 减少资源开销: Uber 模式可以减少任务启动的开销,因为不需要为每个任务都启动一个单独的 JVM 进程,这样可以节省内存和CPU资源。

  • 提高局部性: 由于所有任务在同一个 JVM 中运行,数据的局部性更高,因为不需要在不同节点之间传输数据。

  • 避免任务调度开销: 在分布式环境中,任务的调度也会带来一定的开销,Uber 模式可以避免这些开销,从而提高任务的执行效率。

缺点

  • 单点故障: 如果运行任务的 JVM 发生故障,所有的任务都会受到影响,而不是像分布式模式下那样只影响一个节点上的任务。

  • 资源限制: 由于所有任务共享一个 JVM,可能会受到 JVM 内存限制的影响,特别是对于需要大量内存的任务。

  • 性能不适用于所有场景: Uber 模式在某些情况下可能会导致性能下降,特别是当任务需要大量的并行计算时,由于共享一个 JVM,可能无法充分利用多核处理器。

当开启 Uber 模式后,Hadoop 会根据一定的规则和条件来自动判断是否使用 Uber 模式运行任务,还是使用分布式模式。

Uber 模式的配置

编辑 Hadoop 中的 mapred-site.xml 配置文件,添加下列内容:

	<!--开启uber模式,默认关闭 -->
	<property>
	  	<name>mapreduce.job.ubertask.enable</name>
	  	<value>true</value>
	</property>
	
	<!-- 限制单个 JVM 中运行的 Map 任务数量,防止资源过度占用,最大 9  --> 
	<property>
	  	<name>mapreduce.job.ubertask.maxmaps</name>
	  	<value>9</value>
	</property>
	
	<!-- 限制单个 JVM 中运行的 Reduce 任务数量,最大 1 -->
	<property>
	  	<name>mapreduce.job.ubertask.maxreduces</name>
	  	<value>1</value>
	</property>
	
	<!-- 设置在 Uber 模式下最大的输入数据量,默认值为 dfs.blocksize 的值(128MB) -->
	<property>
	  	<name>mapreduce.job.ubertask.maxbytes</name>
	  	<value></value>
	</property>

分发文件同步配置到其它机器,无需重启集群。

测试

当前,在 /input 目录下存储了 3 个小文件,如下所示:

Hadoop 集群小文件归档 HAR、小文件优化 Uber 模式,hadoop,大数据,分布式,yarn,hdfs

我们来运行 Hadoop 官方案例 wordcount 来测试 Uber 模式是否设置成功。

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output

如果配置成功,在案例执行过程中会打印提示,正在使用 Uber 模式运行:

Hadoop 集群小文件归档 HAR、小文件优化 Uber 模式,hadoop,大数据,分布式,yarn,hdfs

我们进入 Yarn 中查看案例运行记录:

Hadoop 集群小文件归档 HAR、小文件优化 Uber 模式,hadoop,大数据,分布式,yarn,hdfs

可以看到只启动了 1 个容器进行处理,并且只花费了 8 秒,读者可以关闭 Uber 模式来对比前后的速度差别。

未开启 Uber 模式执行效率

Hadoop 集群小文件归档 HAR、小文件优化 Uber 模式,hadoop,大数据,分布式,yarn,hdfs

启动了 5 个容器进行处理,花费了 15 秒。文章来源地址https://www.toymoban.com/news/detail-685327.html

到了这里,关于Hadoop 集群小文件归档 HAR、小文件优化 Uber 模式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hadoop集群部署(完全分布式模式、hadoop2.7.3+安装包)

    目录 一、上传、解压配置 (一)上传 (二)解压 (三)配置hadoop系统环境变量 1.配置hadoop环境变量 2.让环境变量生效 3.验证hadoop系统环境变量 二、修改配置文件  (一)前置介绍 (二)更改配置文件 1.配置Hadoop集群主机点 2.修改core-site.xml文件 3.修改hdfs-site.xml文件 4.修改

    2024年04月25日
    浏览(56)
  • HadoopHA模式(由于Hadoop的HA模式是在Hadoop完全分布式基础上,利用zookeeper等协调工具配置的高可用的Hadoop集群模式)

    目录 1.前期准备 1.1.hadoop-3.1.3.tar.gz,jdk-8u212-linux-x64.tar.gz,apache-zookeeper-3.5.7-bin.tar.gz三个包提取码:k5y6 2.解压安装包,配置环境变量 3. 将三个节点分别命名为master、slave1、slave2并做免密登录 免密在前面Hadoop完全分布式搭建说过,这里不再赘述 4.搭建zookeeper集群  根据配置的

    2024年02月04日
    浏览(40)
  • 2-1.Hadoop大数据集群搭建之---本地模式

    Hadoop运行模式主要包括三种:本地模式、伪分布式模式以及完全分布式模式。 1. 本地模式(Local/Standalone Mode) :在这种模式下,Hadoop作为一个独立的系统运行,不依赖于外部资源或网络连接。它可以在单个服务器上运行,数据通常存储在本地的HDFS(Hadoop Distributed FileSystem)

    2024年02月19日
    浏览(38)
  • 虚拟机安装hadoop,hbase(单机伪集群模式)

    工作中遇到了大数据方面的一些技术栈,没有退路可言,只能去学习掌握它,就像当初做爬虫一样(虽然很简单),在数据爆发的现在,传统的数据库mysql,oracle显然在处理大数据量级的数据时显得力不从心,所以有些特定的业务需要引进能够处理大数据量的数据库,hadoop提

    2024年02月04日
    浏览(37)
  • Linux修改hadoop配置文件及启动hadoop集群详细步骤

    目录 一、配置Hadoop环境 1.查看Hadoop解压位置 2.配置环境变量 3.编辑环境变量 4.重启环境变量 5.查看Hadoop版本,查看成功就表示Hadoop安装成功了 二、修改配置文件 1.检查三台虚拟机: 2.切换到配置文件目录 3.修改 hadoop-env.sh 文件 4.修改 core-site.xml 文件 5.修改 mapred-site.xml 文件

    2024年02月03日
    浏览(60)
  • Hadoop 集群一直处于安全模式,强制退出后出现数据丢失警告。解决方法

    安全模式相关命令 等待安全模式,通常情况下在脚本中使用,当集群退出安全模式后,立马执行相关操作。 分析集群为什么一直处于安全模式 集群启动后,发现一直处于安全模式中,进入 WEB 界面查看,还有一大段提示,如下: 系统报告称,共有 6288 个数据块,还需要额外

    2024年02月11日
    浏览(53)
  • 23、hadoop集群中yarn运行mapreduce的内存、CPU分配调度计算与优化

    1、hadoop3.1.4简单介绍及部署、简单验证 2、HDFS操作 - shell客户端 3、HDFS的使用(读写、上传、下载、遍历、查找文件、整个目录拷贝、只拷贝文件、列出文件夹下文件、删除文件及目录、获取文件及文件夹属性等)-java 4、HDFS-java操作类HDFSUtil及junit测试(HDFS的常见操作以及H

    2024年02月07日
    浏览(51)
  • Hadoop 集群中使用 S3(对象存储)文件系统

    Hadoop 自带 S3 依赖,位置如下: 但是这些依赖包默认不在 hadoop classpath 下面。可以使用以下两种方法引入这两个包: 修改hadoop的core-site.xml文件: s3的配置模板(记得修改成自己的 secret key 与 access key ) 更改完毕并重启集群后 测试hdfs dfs -ls s3a://hive0614/ 等命令操作 S3 中的文件

    2024年02月06日
    浏览(43)
  • 格式化文件系统和启动和关闭Hadoop集群

    初次启动HDFS集群时,须对主节点进行格式化处理,执行:hdfs   namenode  -format 格式化成功信息: 1. 一起启动hdfs和yarn服务 ,执行:start-all.sh 1. 单独启动hdfs服务 ,执行:start-dfs.sh 题外:关于jdk版本太高,启动hdfs和yarn会有警报这种,可以降低jdk版本,进行解决 具体可以参照

    2024年02月07日
    浏览(47)
  • 【Hadoop-OBS-Hive】利用华为云存储对象 OBS 作为两个集群的中间栈 load 文件到 Hive

    本次需求:想将一个集群上的 csv 文件 load 到另一个集群的 Hive 表中,由于两个集群的网络不通,所以利用华为云存储对象 OBS 作为中间栈,从而实现。 服务器A上 /home/test/ 目录下找到测试文件进行压缩,实际生产中不排除单个文件很大,导致上传至存储对象速度慢,所以压缩

    2024年02月02日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包