大规模HBASE集群的应用—-聊聊HBASE的MOB、EC和离线工具
1.    MOB基本介绍 1.1使用MOB的背景&现状 MOB是Medium Object Storage,即中等大小的对象存储,一般指的是KeyValue所占字节数大于1MB,小与10MB的数据。系统部目前以HBase为底层存储所支持的XStore-S3大规模服务,就是采用这种方案实现的。主要支持了公司的视频云、IOT以及云盘等业务,其…
golang性能优化实践
摘要 golang最吸引人的特性在于对并发的支持,如果要发挥golang语言高性能的优势,必然要使用协程并发等特性,但是对于一直使用php做主力开发语言的同学来说,对golang的协程、channel、性能优化等会相对比较陌生,这篇文章即是一个golang初学者在近期开发过程中在这些方面实践的学习总结。 log-processor整体逻辑 项目背景…
Yarn和K8S在360的分与合
事物发展总的方向和趋势是由低级到高级、由简单到复杂的前进运动。但前进的道路不是直线,而是迂回曲折的,会出现向出发点回复现象。yarn与k8s在360有着不同的场景及应用,在很长一段时间里各司其职,各自发展。经过漫长而曲折的探索与发展,为我司上层业务提供了统一的离在线数据处理服务及在线服务管理服务。使上层业务从缓慢的单机运行数据处理、传统而繁琐的手动…
Yarn2.7.1 升级到 Yarn3.2.1 的喜与痛
一、我们为什么要升级 360之前YARN版本是基于2.7版本修改的内部版本,主要有几个问题: 与社区脱节:目前社区已经发展到3.2的版本,落后社区多个大版本,很多新特性都不能使用,比如预定系统,Opportunistic Containers等降本增效:在Yarn层面,支持多集群Federation,可以有效利用多YARN集群空闲资源,达到降本增效…
说说mysql索引和事务
mysql是市面上使用最广的免费的关系型数据库,网上关于它的文档多如牛毛,内容也是参差不齐,这里关于mysql的索引和事务总结几个容易混淆的知识点,这里主要讨论的是innodb引擎,其他存储引擎暂不做讨论。 索引 B树和B+树 众所周知,innodb的索引结构为B+树结构,那么为什么要采用B+树的结构呢,一句话总结就是索引树尽可能多的存贮节点,从而…
Trino的SQL查询计划与执行
1 Trino架构 文章开头,让我们简答的了解一下Trino。Trino就是之前的Presto SQL,Presto是Facebook专门为大数据实时查询计算而设计和开发的产品,presto基于java语言开发支持多数据源,基于内存的查询使得presto的查询速度远远高于Hive。 trino查询引擎是master-slave架构,如下图所示,主要…
视频体验指标
不管是对系统的持续优化,还是用户反馈的问题诊断,还是得到全局性的性能指标,都需要一套完善数据体系。 视频服务监控体系,整合了采集、分析计算、反馈调节、可视化等多个环节。 数据的采集也覆盖了整个内容的生命周期。 采集阶段会收集帧率、和分辨率信息;编码阶段会收集码率和CPU/GPU 消耗;推流阶段会记录 DNS 解析时间、连接时间、请求时间、响应时间、…
FEC在音视频传输中的应用
一、什么是FEC FEC是一种前向纠错技术,在没有回传通道的情况下也能恢复丢失的数据。在通信领域,奇偶校验码、汉明码本质上也是一种FEC。简单一些的如FEC如WebRTC里使用了最简单的XOR方式,FlexFEC则支持一维和二维的FEC,这些FEC对丢失的pattern有一定的要求,比如有的适合对抗随机丢包,有的则适合对抗突发丢包,并不是所有的pa…
基于kubeadm10分钟搭建k8s集群指南
一、 搭建集群背景: 环境要求: https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ A compatible Linux host. The Kubernetes project provides generic instru…
浅谈DDD(一)
随着项目中代码量的增加,其复杂性也会增加。这时,按照最初的组织结构去编写代码往往会使项目越来越臃肿不可维护,这被称为软件熵。 如果没有严格的架构设计指导,那么在多次迭代中,保持良好的代码隔离和正确的解耦模块会变得越来越困难。这时候软件架构应运而生。 软件架构的迭代分为三个阶段: 1.单机软件架构 软件架构设计最早是采用面向过程的设计方法,系统包括客…