• 等级
  • 1722484 访问
  • 310 原创
  • 0 转发
  • 1104 排名
  • 370 评论
  • 272 获赞

分布式系统中Topology(Rack) Awareness的实现思路

文章目录前言为何要考虑Topology AwarenessTopology Awareness的一般实现思路Step1: Node Location赋予 前言 在分布式系统中,尤其是存储系统中,我们经常会看到类似“系统返回一个最近的数据”这样的句子”。当我们谈到一个数据“远近”的问题时,你可以说这是在谈数据locality的问题,但从更宏观的角度来看这个问题,它其实谈的是Topology Awa...

2019-01-20 20:49:39

Flink的State概述

文章目录前言Flink的State类型基本类型划分组织形式划分 前言 当我们经常在谈论一个Flink任务是否是有状态的,此时我们谈论的点其实就是Flink内部的State的概念。但是这里的State的概念已经不是单纯指我们平时所说的Event–>State这样的比较固定的概念,更确切地说,它是一种运行间的数据信息。这些状态数据在容错恢复及checkpoint时将起到很关键的作用。本文笔者来...

2019-01-18 23:14:02

Flink JobManager的HA原理分析

文章目录前言 前言 在中心式管理的系统里,主节点如果只是单独服务部署的话,或多或少都会存在单点瓶颈(SPOF)问题。所以我们说现在的分布式系统都要求具有高可用性(High Availability)的实现。同样的,在早期Flink runtime层面,JobManager也没有完全做到HA的实现,这使得运行时的任务存在失败无法及时恢复的风险。不过在最新的代码里,Flink社区已经完善了这块的实现...

2019-01-12 11:30:20

Flink FileSystem的connector分析

文章目录前言FileSystem的RollingSinkFileSystem连接器的Exactly Once恢复语义FileSystem Sink的文件状态转换Checkpoint下的Exactly Once恢复 前言 从目前最新的Flink代码来看,现在它能够支持越来越多的connector类型了,不仅仅说包括于前面的Source的连接,还有后面Sink的选择。但是Flink的连接器不是简简单...

2019-01-06 12:15:10

大数据权限授权管理框架:Apache Sentry和Ranger

文章目录前言Sentry和Ranger的概述 前言 上篇文章后半部分提到了业界流行的大数据权限管理框架Apache Sentry和Ranger。二者在功能上具有很高的相似性,但是在具体细节上上篇文章阐述的还不够细致。本文笔者来深入浅出地聊聊这两个框架,以及它们的少许异同点。熟悉掌握使用外部权限管理框架,并且将它们合理地应用于自身内部大数据组件系统内,无疑将会大大提高内部组件使用的安全性。 Sen...

2019-01-05 12:04:14

聊聊HDFS的权限访问控制

文章目录前言典型场景:权限信息不一致情况 前言 我们都知道HDFS文件系统的访问控制由其内部目录,文件的权限所控制,和Linux文件系统一致。但是当出现HDFS和别的组件进行关联使用时,我们是否还能做到预期的控制效果呢?比如Hive和HDFS的使用,Hive也有它自己独立一套的用户权限体系。本文笔者来简单聊聊HDFS的权限访问控制,我们不聊最简单的情况,只聊那些在生产中实际可能会遇到的场景。 典...

2019-01-01 17:52:21

Flink在大规模状态数据集下的checkpoint调优

文章目录前言Checkpoint快慢的性能指标相邻Checkpoint的间隔时间设置外部State的存储选择 前言 众所周知,Flink内部为了实现它的高可用性,实现了一套强大的checkpoint机制,还能保证作用的Exactly Once的快速恢复。对此,围绕checkpoint过程本身做了很多的工作。在官方文档中,也为用户解释了checkpoint的部分原理以及checkpoint在实际生...

2018-12-26 20:06:22

Flink流计算中SQL表的概念和原理

文章目录前言动态表和动态查询的概念动态表的时间属性引用 前言 Fink在新发布的1.7版本中,不断完善和加强了SQL&Table API方面的功能支持。这使得在流计算过程中,用户同样能够运用熟悉的SQL语句来做数据处理,查询。但是相比于窗体的RDBMS而言,流计算过程中的SQL处理难免让人觉得不是很好理解,毕竟数据不是fixed-sized的,而是连续不断的。所以本文,笔者来聊聊这个略显...

2018-12-22 15:02:57

Flink流处理过程的部分原理分析

文章目录前言 前言 在分布式领域,计算和存储一直是两大子领域。很多分布式理念在计算和存储的实现中会有着完全不同的逻辑,比如我们快照,计算框架中的快照和我们平常说的存储快照实现不同点在于哪里呢?笔者做为一个研究存储模块出身的人,最近在研读Flink流处理的部分原理,小小作番总结。很多时候,以存储的眼光来看待计算过程中的处理过程,还是有很多不一样的地方的。 ...

2018-12-19 23:20:07

流计算过程中对于窗口的处理方式

前言 与传统批处理作业方式不同,实时流的计算处理过程是连续的。所以当我们在流式作业中要做传统的阶段统计工作(求和,取均值计算)的时候,需要在逻辑上对这些数据进行分片,然后再处理。本文我们来聊聊流计算过程中按照时间的处理方式。 Window的概念 在传统批处理的作业执行方式里,我们可以一次性读取入所有的输入数据,然后经过计算,再输出结果。对于原始数据,我们可以做任意我们想做的预处理工作,包括数据...

2018-12-12 10:52:50

当我们在谈论Flink的时候,我们到底在谈论些什么

前言 目前每当我们聊到当下热门的计算引擎的时候,无一例外地会聊到Apache Flink:当下非常火热的流处理计算框架。更是有人拿它和Spark做对比,到底哪个才是现今最好的计算引擎。当然这个已经不是本文所要阐述的主题啦。老实话,笔者本人做的比较多的还是存储领域,对计算领域的知识不敢说是内行。最近也是抽空学习了下Flink的一些概念体系,来分享分享笔者的一个学习心得吧。 # Apache Fli...

2018-12-08 15:43:12

循环冗余校验(CRC)的简单应用实践

前言 一般来说,数据信息在传输过程中有时会受到外界有意或无意的干扰行为,出现数据的篡改和破坏现象,造成数据接收端的不一致行为。于是乎,在信息领域有了数据校验的概念,今天本文主要来简单聊聊其中的经典使用算法CRC(循环冗余校验)以及其在Ozone中的应用实践。 CRC和Checksum的关系 往往我们在谈论CRC的时候,马上会联想到Checksum这个词,二者是等同的意思吗?实则还是有区别的。 ...

2018-12-03 23:10:02

聊聊Hadoop安全认证体系:Delegation Token和Block Access Token

前言 本文继续上一篇Hadoop安全认证方面的内容主题,来简单聊聊Hadoop内部的其它认证体系:Delegation Token(授权令牌认证)和Block Access Token(块访问认证)。主要来聊聊这两者间的差异,顺带也会提及一些Kerberos认证的一点内容。这里不深挖其中的技术细节,整体阐述会比较简单,明了。 Kerberos认证 Kerberos认证是业界较为成熟的一种认证体...

2018-11-29 23:15:59

Hadoop基于Service级别的认证机制

前言 最近在学习Hadoop Security方面的内容,但注意了,本文今天不是介绍Kerberos认证机制的。今天分享一个Service Level的认证机制,可以说它是一种预先认证行为,比我们常说的HDFS权限验证等等都要更早一些。一句话简单地来讲,它是Service/Service,Service/Client之间建立连接时候的认证。OK,下面笔者来简单聊聊这套认证体系。 什么是Servi...

2018-11-24 23:23:05

审计日志在分布式系统中的应用

前言 分布式系统的执行环境往往是异常复杂的,很多情况涉及到多节点间的消息通信。相比较于单节点系统而言,分布式系统在问题追踪,排查方面显然也复杂很多。那么这个时候,在分布式系统中,增加哪些类型的日志数据,来帮助我们发现和定位问题呢?答案就是我们今天将要阐述的审计日志(Audit log)。 审计日志的概念 很多人可能在想这样一个问题:同样是日志,审计日志和普通的日志,区别在于哪里呢? 审计日志,...

2018-11-18 11:44:40

Hadoop Rolling Upgrade经验总结

前言 从去年下半年开始,组内就开始着手准备升级公司内部的Hadoop集群,由于老版本实在已经落后社区很多了,也陆续碰到很多社区上已经被fix的bug。所以决定做一个大胆的举动:升级公司内部大集群版本。像这种比较aggressive的做法,很多人不是一开始能够接受,它存在不可控的风险。但所幸,在今年暑假,我们成功将内部版本升到了最近比较新的Hadoop版本。本文是对此过程的经验教训,相信会给很多想...

2018-10-28 11:48:00

基于滑动窗口的性能指标衡量算法

前言 在复杂的分布式系统中,存在着各种性能指标,比如系统请求数,请求响应时间等等。这些指标在一定程度上可以反映出系统运行的快慢程度。但是这里我们如何做到更加准确的判断,而不是说只要出现异常指标,就认定系统有问题,显然这是不合理的。今天,笔者来为大家讲述基于滑动窗口的性能比较算法。如何收集,利用历史数据,来进行当前性能指标的比较。 基于滑动窗口的数据采集 当我们说系统出现“变慢”现象的时候,这个...

2018-10-06 16:32:08

HDFS支持外部存储

前言 在HDFS的使用过程中,有的时候我们会存在依赖外部数据读取的操作。首先,HDFS集群的数据存在容量问题,随着数据量上升,需要的存储空间必然要往上走。那么这个时候,是否我们能够有一种方式把部分数据存放到外部存储上呢。这样,我们将会在一定程度上增多HDFS的使用场景,比如空间能节省出来,还有内外部数据的交互,连通等等。本文,笔者来为大家阐述阐述HDFS在最近新版中的新特性之一:Provided...

2018-10-03 22:44:09

分布式系统中如何较好地做服务发现

前言 在分布式系统中的中心管理服务模式下,往往采用的模式是1个manager服务节点,多个worker节点,然后由manager来管控这些worker节点。但是本篇文章不是来讲manager如何管理的问题,而是woker识别发现manager服务的问题。目前一种比较简单的做法,通过worker节点本地配置的方式,来指定manager服务地址。这种方式实现较为容易,但是可维护性并不高。比如一个简单...

2018-09-24 22:35:16

YARN Container的NUMA感知支持

前言

2018-09-16 23:31:54

博客专家

Android路上的人

开源社区爱好者,Apache Hadoop Com mitter & PMC,专注于分布式系统,大数据,算法方面的研究 ...展开 收起
关注
  • 互联网·电子商务/大数据工程师
  • 中国 上海 静安区
奖章
  • 博客专家
  • 专栏达人
  • 持之以恒