接触ES也小半年了,ES虽然使用方便,运维简单但是集群规模和数据量大的话运维也很头疼,这里梳理下这半年的运维经验。
golang指针*和取址&傻傻分不清楚
golang中有指针的概念,有指针相对的就有取址,何时使用指针何时使用取址对于刚接触的同学总是有点傻傻分不清楚。
本篇主要介绍下指针和取址的概念和区别。
golang随波逐流之cache2go知识点解读
golang随波逐流之cache2go源码解读
想学习golang了,工作中又接触不到,基础语法一看全明白,真到用的时候却是瞪眼瞎,怎么办?
可以找简单的开源项目,看下源码,看看这些语法的常用方式,并且也可以自己尝试着去自己实现下。
cache2go就是一个比较简单的项目,也是初学者必撸的项目了吧。
本篇是我梳理cache2go的学习笔记。
Flink window解密
近几年流处理简直火的一塌糊涂,Flink也在阿里的推广下逐渐成为业界主流,正在逐步取代Storm和Spark Streaming。
Flink天生就是为了处理流,而且相对于其他流处理框架集成了很多实用功能,比如状态管理;Flink还丰富了window的功能,使window也成为了Flink的一个特色。
本篇主要对window从多种角度进行解密,主要包括:
- 何为window
- 如何使用
- 如何实现
- 各组件原理
在解密window之前,简单介绍下何为流处理?
golang新手入门
Go开发环境配置
选择操作系统对应的版本,可以直接下载安装包进行一键安装,也可以下载tar/zip包进行自定义安装。自定义安装时需要在环境变量中指定GOROOT
和GOPATH
,GOROOT
是tar包的解压目录,GOPATH
是Go工程项目目录,这里不仅存储这自己开发的项目也存放着项目所依赖包的源码及二进制文件。
YARN Capacity Scheduler
这是一篇译文,原文地址
主要介绍了Capacity Scheduler相关的内容。
Capacity Scheduler在资源分配时主要考虑两个主要属性:用户名和应用程序ID。在指定最小用户百分比和用户限制因素的队列中,用户之间共享资源时,关注的是用户名本身。在队列中,应用程序获取资源分配由叶子队列排序策略驱动:FIFO或FAIR,它只关心应用程序而不关心哪个用户正在运行它。在FIFO中,资源首先被分配给队列中最先提交的应用程序,并且只有当它不再需要任何请求时,下一个应用程序才会获得分配。对于使用最少资源的FAIR应用程序,首先询问是否存在待处理的分配,如果存在则分配,则如果不存在,则检查具有最少资源的下一个应用程序;这有助于与通常使用它们的应用程序平均共享队列。
Resource Localization in YARN
一个Applciation运行在YARN上的流程为,从YARN Client向ResourceManager提交任务,将Applciation所需资源提交到HDFS中,然后ResourceManager启动APPMaster,APPMaster通知各个NodeManager启动container执行具体到计算任务。在启动container之前需要从HDFS上下载该container执行所依赖的资源,这些资源包括jar、依赖的jar或者其它文件,这个过程就称为资源本地化(Resource Localization)。
本篇主要介绍下资源本地化相关的内容。
Use protobuf to FSImage
分布式一致性协议
分布式系统中有个著名的原则CAP原则,C为Consistency(一致性)、A为Availability(可用性)、P为Partition tolerance(分区容错性)。这里主要介绍下分布式环境下如果达到一致性。
说到一致性不得不说下经典的拜占庭问题。