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

宁波宇丰建设有限公司网站2016最新wordpress模板

宁波宇丰建设有限公司网站,2016最新wordpress模板,北京中交建设工程咨询有限公司网站,腾讯云win建设网站Compaction是MOR表的一项核心机制#xff0c;Hudi利用Compaction将MOR表产生的Log File合并到新的Base File中。本文我们会通过Notebook介绍并演示Compaction的运行机制#xff0c;帮助您理解其工作原理和相关配置。 1. 运行 Notebook 本文使用的Notebook是#xff1a;《A…Compaction是MOR表的一项核心机制Hudi利用Compaction将MOR表产生的Log File合并到新的Base File中。本文我们会通过Notebook介绍并演示Compaction的运行机制帮助您理解其工作原理和相关配置。 1. 运行 Notebook 本文使用的Notebook是《Apache Hudi Core Conceptions (4) - MOR: Compaction》对应文件是4-mor-compaction.ipynb请先修改Notebook中的环境变量S3_BUCKET将其设为您自己的S3桶并确保用于数据准备的Notebook《Apache Hudi Core Conceptions (1) - Data Preparation》已经至少执行过一次。Notebook使用的Hudi版本是0.12.1Spark集群建议配置32 vCore / 128 GB及以上。 2. 核心概念 Compaction负责定期将一个File Slice里的Base File和从属于它的所有Log File一起合并写入到一个新的Base File中产生新的File Slice唯有如此MOR表的日志文件才不至于无限膨胀下去。以下是与Compaction有关的几项重要配置在后面的介绍中我们会逐一介绍它们的作用 配置项默认值hoodie.compact.inlinefalsehoodie.compact.schedule.inlinefalsehoodie.compact.inline.max.delta.commits5 2.1. 排期与执行 Compaction的运行机制包括排期Schedule和执行Execute两个阶段。排期阶段的主要工作是划定哪些File Slices将参与Compaction然后生成一个计划Compaction Plan保存到Timeline里此时在Timeline里会出现一个名为compaction的Instant状态是REQUESTED执行阶段的主要工作是读取这个计划Compaction Plan并执行它执行完毕后Timeline中的compaction就会变成COMPLETED状态。 2.2. 同步与异步 从运行模式上看Compaction又分同步、异步以及半异步三种模式“半异步”模式是本文使用的一种叫法为的是和同步、异步两种模式的称谓对齐Hudi官方文档对这一模式有介绍但没有给出命名它们之间的差异主要体现在从达到规定阈值的某次提交Commit到排期Schedule再到执行Execute三个阶段的推进方式上。在Hudi的官方文档中交替使用了Sync/Async和Inline/Offline两组词汇来描述推进方式这两组词汇是有微妙差异的为了表述严谨我们使用同步/异步和立即/另行这两组中文术语与之对应。以下是Compaction三种运行模式的详细介绍 同步模式Inline ScheduleInline Execute 同步模式可概括为立即排期立即执行Inline ScheduleInline Execute。在该模式下当累积的增量提交deltacommit次数到达一个阈值时会立即触发Compaction的排期与执行排期和执行是连在一起的这个阈值是由配置项 hoodie.compact.inline.max.delta.commits 控制的默认值是5即默认情况下每5次增量提交就会触发并执行一次Compaction。锁定同步模式的配置是 配置项设定值hoodie.compact.inlinetruehoodie.compact.schedule.inlinefalse 异步模式Offline ScheduleOffline Execute 异步模式可概括为另行排期另行执行Offline ScheduleOffline Execute。在该模式下任何提交都不会直接触发和执行Compaction除非使用了支持异步Compaction的Writer否则用户需要自己保证有一个独立的进程或线程负责定期执行Compaction操作。Hudi提供了四种运行异步Compaction的方式 通过hudi-cli或提交Spark作业驱动异步Compaction提交Flink作业驱动异步Compaction在HoodieDeltaStreamer中配置并运行异步Compaction在Spark Structured Streaming中配置并运行异步Compaction 在后面的测试用例中我们将使用第一种方式演示如何进行异步的Compaction排期与执行。和同步模式一样在异步模式下同样是当增量提交deltacommit次数达到一定的阈值时才会触发排期这个阈值依然是hoodie.compact.inline.max.delta.commits。 异步模式面临的场景要比同步模式复杂一些同步模式下每次提交时都会检查累积的提交次数是否已达规定阈值所以在同步模式下每次排期涵盖的增量提交数量基本是固定的就是阈值设定的次数但是在异步模式下由于发起排期和增量提交之间没有必然的协同关系所以在发起排期时Timeline中可能尚未积累到足够数量的增量提交或者增量提交数量已经超过了规定阈值如果是前者不会产生排期计划如果是后者排期计划会将所有累积的增量提交涵盖进来。锁定异步模式的配置是 配置项设定值hoodie.compact.inlinefalsehoodie.compact.schedule.inlinefalse 半异步模式Inline ScheduleOffline Execute 半异步模式可概括为立即排期另行执行Inline ScheduleOffline Execute即排期会伴随增量提交deltacommit自动触发但执行还是通过前面介绍的四种异步方式之一去完成。锁定半异步模式的配置是 配置项设定值hoodie.compact.inlinefalsehoodie.compact.schedule.inlinetrue 3. 同步Compaction 3.1. 关键配置 《Apache Hudi Core Conceptions (4) - MOR: Compaction》的第1个测试用例演示了同步Compaction的运行机制。测试用的数据表有如下几项关键配置 配置项默认值设定值hoodie.compact.inlinefalsetruehoodie.compact.schedule.inlinefalsefalsehoodie.compact.inline.max.delta.commits53hoodie.copyonwrite.record.size.estimate1024175 这些配置项在介绍概念时都已提及通过这个测试用例将会看到它们组合起来的整体效果。 3.2. 测试计划 该测试用例会先后插入或更新三批数据然后进行同步的Compaction排期和执行过程中将重点观察时间线和文件布局的变化整体测试计划如下表所示 步骤操作数据量单分区文件系统1Insert96MB1 Base File2Update788KB1 Log File3Update1.2MB1 Log File 1 Compacted Base File 提示我们将使用色块标识当前批次的Instant和对应存储文件每一种颜色代表一个独立的File Slice。 3.3. 第1批次 第1批次单分区写入96MB数据Hudi将其写入到一个Parquet文件中第一个File Group随之产生它也是后续 Log File的Base File。需要注意的一个细节是对于MOR表来说只有进行Compaction的那次提交才会被称为“commit”在Compaction之前的历次提交都被称作“deltacommit”即使对于新建Base File写入数据的那次提交也是如此就如同这里一样。 3.4. 第2批次 第2批次更新了一小部分数据Hudi将更新数据写入到了Log文件中大小788KBfileVersion是1它从属于上一步生成的Parquet文件即Parquet文件是它的Base File 这个Log文件的fileId和尾部的时间戳baseCommitTime与Parquet文件是一样的。当前的Parquet文件和Log文件组成了一个File Slice。 3.5. 第3批次 第3批次再次更新了一小部分数据Hudi将更新数据又写入到一个Log文件中大小1.2MBfileVersion是2。与上一个Log文件一样fileId和尾部的时间戳baseCommitTime与Parquet文件一致所以它也是Parquet文件的Delta Log且按Timeline排在上一个Log文件之后。当前的File Slice多了一个新的Log文件。但是不同于第2批次第3批次的故事到这里还没有结束在该测试用例中当前测试表的设置是每三次deltacommit会触发一次Compaction因此第3次操作后就触发了第1次的Compaction操作: 于是在Timeline上出现了一个commitNo.3同时在文件系统上生成了一个新的96MB的Parquet文件它是第一个Parquet文件连同它的两个Log文件重新压缩后得到的这个新的Parquet文件fileId没变但是instantTime变成了Compaction对应的commit时间于是在当前File Group里第二个File Slice产生了目前它还只有一个Base File没有Log File。 3.6. 复盘 最后让我们将此前的全部操作汇总在一起重新看一下整体的时间线和最后的文件布局 4. 异步Compaction 4.1. 关键配置 《Apache Hudi Core Conceptions (4) - MOR: Compaction》的第2个测试用例演示了异步Compaction的运行机制。测试用的数据表有如下几项关键配置 配置项默认值设定值hoodie.compact.inlinefalsefalsehoodie.compact.schedule.inlinefalsefalsehoodie.compact.inline.max.delta.commits53hoodie.copyonwrite.record.size.estimate1024175 这些配置项在介绍概念时都已提及通过这个测试用例将会看到它们组合起来的整体效果。 4.2. 测试计划 该测试用例会先后插入或更新三批数据然后进行异步的Compaction排期和执行过程中将重点观察时间线和文件布局的变化整体测试计划如下表所示 步骤操作数据量单分区文件系统1Insert96MB1 Base File2Update788KB1 Log File3Update1.2MB1 Log File4Offline ScheduleN/AN/A5Offline Execute96.15MB1 Compacted Base File 由于该测试用例的前三步操作与第3节第1个测试用例完全一致所以不再赘述我们会从第4步操作Notebook的3.8节开始解读。 4.3. 异步排期 在完成了和第3节完全一样的前三批操作后时间线和文件系统的情形如下 这和3.5节执行后的状况非常不同没有发生Compaction连排期也没有看到因为我们关闭了hoodie.compact.inline。于是在接下来的第4步操作中Notebook的3.8节我们通过spark-submit手动发起了一个排期作业--mode schedule sudo -u hadoop spark-submit \--jars /usr/lib/hudi/hudi-spark-bundle.jar \--class org.apache.hudi.utilities.HoodieCompactor \/usr/lib/hudi/hudi-utilities-bundle.jar \--spark-memory 4g \--mode schedule \--base-path s3://${S3_BUCKET}/${TABLE_NAME} \--table-name $TABLE_NAME \--hoodie-conf hoodie.compact.inline.max.delta.commits3执行后文件布局没有变化但是在时间线中出现了一个状态为REQUESTED的compaction 4.4. 异步执行 第5步操作Notebook的3.9节通过spark-submit手动发起了一个执行作业--mode execute sudo -u hadoop spark-submit \--jars /usr/lib/hudi/hudi-spark-bundle.jar \--class org.apache.hudi.utilities.HoodieCompactor \/usr/lib/hudi/hudi-utilities-bundle.jar \--spark-memory 4g \--mode execute \--base-path s3://${S3_BUCKET}/${TABLE_NAME} \--table-name $TABLE_NAME执行后原compaction状态由REQUESTED变为COMPLETED原Base File和两个Log File被合并打包成一个新的Base File文件大小96MB 4.5. 异步排期 异步执行 异步的排期和执行可以通过一个命令一步完成《Apache Hudi Core Conceptions (4) - MOR: Compaction》的第3个测试用例演示了这一操作。它的前三步操作与第2个测试用例一样在第四步时使用了“Schedule Execute”一起执行的方式--mode scheduleAndExecute一步完成了Compaction操作命令如下 sudo -u hadoop spark-submit \--jars /usr/lib/hudi/hudi-spark-bundle.jar \--class org.apache.hudi.utilities.HoodieCompactor \/usr/lib/hudi/hudi-utilities-bundle.jar \--spark-memory 4g \--mode scheduleAndExecute \--base-path s3://${S3_BUCKET}/${TABLE_NAME} \--table-name $TABLE_NAME \--hoodie-conf hoodie.compact.inline.max.delta.commits35. 半异步Compaction 5.1. 关键配置 《Apache Hudi Core Conceptions (4) - MOR: Compaction》的第4个测试用例演示了半异步Compaction的运行机制。测试用的数据表有如下几项关键配置 配置项默认值设定值hoodie.compact.inlinefalsefalsehoodie.compact.schedule.inlinefalsetruehoodie.compact.inline.max.delta.commits53hoodie.copyonwrite.record.size.estimate1024175 这些配置项在介绍概念时都已提及通过这个测试用例将会看到它们组合起来的整体效果。 5.2. 测试计划 该测试用例会先后插入或更新三批数据然后进行异步的Compaction Execute过程中将重点观察时间线和文件布局的变化整体测试计划如下表所示 步骤操作数据量单分区文件系统1Insert96MB1 Base File2Update788KB1 Log File3Update1.2MB1 Log File4Offline Execute96.15MB1 Compacted Base File 由于该测试用例的前三步操作与第3节第1个测试用例完全一致所以不再赘述我们会从第3步操作Notebook的5.7节开始解读。 5.3. 同步排期 在完成了和第3节完全一样的前三批操作后时间线和文件系统的情形如下 在该模式下第3次提交自动触发了Compaction排期状态为REQUESTED。 5.4. 异步执行 在接下来的第4步操作中通过spark-submit手动发起了一个执行作业排期计划被consume原REQUESTED状态的Compaction变成了COMPLETED 关于作者耿立超架构师著有 《大数据平台架构与原型实现数据中台建设实战》一书多年IT系统开发和架构经验对大数据、企业级应用架构、SaaS、分布式存储和领域驱动设计有丰富的实践经验个人技术博客https://laurence.blog.csdn.net
http://www.hkea.cn/news/14444950/

相关文章:

  • 靖州网站建设重庆seo网络优化师
  • 深圳找个人做网站2021中国建筑企业500强排名
  • 网销都是在那些网站做推广电子商务网站系统规划报告
  • 怎么做网站搜索引擎利于搜索深圳seo优化方案
  • 洛阳做网站那家好房地产新闻稿
  • 河源哪里做网站平面设计师网站都有哪些
  • 什么是营销型企业网站湛江购房网
  • 做营销看的网站沈阳php网站
  • 网站使用特殊字体免费广告投放平台
  • 网站开发网站制作报价livemesh wordpress
  • 阳谷网站建设电话徐州建站软件
  • 深圳网站建设开发哪家好网页设计与制作教程知识点
  • 网站建设分录怎么开办个网站卖什么好处
  • 甘肃兰州做网站实时热榜
  • 网站建设的基本流程包括电子商务网站平台建设方案
  • 商丘网站建设略奥网中国出口外贸网
  • 制作一个网站怎么做的html5开发微网站
  • 科技公司建设网站公司有价值 网站
  • 海关申报网站怎么做包装设计图
  • 网站开发要什么软件百度推广app下载官方
  • 简述酒店类网站开发的策略html5移动端网站开发教程
  • 提供网站建设定制广州市建筑业联合会
  • 网上做医生哪个网站好展厅设计说明万能模板
  • 百度地图在线导航查询seo对网站的重要性
  • 企业网站模块建设流程织梦网站安全
  • 营销型网站哪家做的好微信微网站怎么进入
  • 虚拟币挖矿网站开发易语言如何做浏网站
  • 西安网站设计哪家好如何建立网站的快捷方式
  • 盘锦网站建设人工智能培训班
  • 网站建设色建设网站方法