集团站切换校区

验证码已发送,请查收短信

复制成功
微信号:togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
图标

业界新闻

当前位置:首页 > >业界新闻 > >

大数据培训_写性能优化切入点

发布时间: 2019-06-20 11:27:57

  大数据培训_写性能优化切入点

  开头
  需要hbase具有实时读取数据的时效,但如果利用不好,哪些hbase也不能为我们好好利用,为了更好让hbase写入性能的提升,哪些我们应该要注意以下相当事项。
  是否需要写WAL(Write-Ahead-Log)?WAL是否需要同步写入?
  优化原理:数据写入流程可以理解为一次顺序写WAL+一次写缓存,通常情况下写缓存延迟很低,因此提升写性能就只能从WAL入手。WAL机制一方面是为了确保数据即使写入缓存丢失也可以恢复,另一方面是为了集群之间异步复制。默认WAL机制开启且使用同步机制写入WAL。首先考虑业务是否需要写WAL,通常情况下大多数业务都会开启WAL机制(默认),但是对于部分业务可能并不特别关心异常情况下部分数据的丢失,而更关心数据写入吞吐量,比如某些推荐业务,这类业务即使丢失一部分用户行为数据可能对推荐结果并不构成很大影响,但是对于写入吞吐量要求很高,不能造成数据队列阻塞。这种场景下可以考虑关闭WAL写入,写入吞吐量可以提升2x~3x。退而求其次,有些业务不能接受不写WAL,但可以接受WAL异步写入,也是可以考虑优化的,通常也会带来1x~2x的性能提升。
  优化推荐:根据业务关注点在WAL机制与写入吞吐量之间做出选择

  其他注意点:对于使用Increment操作的业务,WAL可以设置关闭,也可以设置异步写入,方法同Put类似。相信大多数Increment操作业务对WAL可能都不是那么敏感~

大数据培训

  Put是否可以同步批量提交?
  优化原理:HBase分别提供了单条put以及批量put的API接口,使用批量put接口可以减少客户端到RegionServer之间的RPC连接数,提高写入性能。另外需要注意的是,批量put请求要么全部成功返回,要么抛出异常。
  优化建议:使用批量put进行写入请求
  Put是否可以异步批量提交?
  优化原理:业务如果可以接受异常情况下少量数据丢失的话,还可以使用异步批量提交的方式提交请求。提交分为两阶段执行:用户提交写请求之后,数据会写入客户端缓存,并返回用户写入成功;当客户端缓存达到阈值(默认2M)之后批量提交给RegionServer。需要注意的是,在某些情况下客户端异常的情况下缓存数据有可能丢失。
  优化建议:在业务可以接受的情况下开启异步批量提交
  使用方式:setAutoFlush(false)
  结语
  所以hbase是提供对于技术的支持,但如果利用不用,hbase不为我们所用。在实际操作中我们应用要注意组件的特性以及利用特性,才能很好的为我们所有。

上一篇: Java培训_Java中的泛型

下一篇: Docker培训_Docker容器操作

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!