Hadoop Namenode元数据持久化机制与SecondaryNamenode的作用详解
概述 我们都知道namenode是用来存储元数据的,他并不是用来存储真正的数据。 那么他的元数据怎么进行持久化呢! FsImage 文件系统的镜像文件叫fsImage,它包括了文件和块信息的映射,还有文件系统的属性信息。
Java
未读
不可不说的Java"锁"事
前言 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。 Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分
浅谈Linux cgroup机制与YARN的CPU资源隔离
前言 我们在生产环境中经常可以发现有计算密集型任务争用NodeManager的CPU,以及个别Container消耗太多CPU资源导致其他系统服务抖动的情况。好在Hadoop 2.2版本之后,YARN通过利用Linux系统的cgroup机制支持了CPU资源隔离。本文先简单看看cgroup,然后分析一
kafka
未读
Kafka的分区数是不是越多越好?
场景描述:Kafka使用分区将topic的消息打散到多个分区分布保存在不同的broker上,实现了producer和consumer消息处理的高吞吐量。Kafka的producer和consumer都可以多线程地并行操作,而每个线程处理的是一个分区的数据。因此分区实际上是调优Kafka并行度的最小单
Flink State 最佳实践
1. State 概念回顾 我们先回顾一下到底什么是 state,流式计算的数据往往是转瞬即逝, 当然,真实业务场景不可能说所有的数据都是进来之后就走掉,没有任何东西留下来,那么留下来的东西其实就是称之为 state,中文可以翻译成状态。 在下面这个图中,我们的所有的原始数据进入用户代码之后再输出到
Java
未读
ConcurrentHashMap锁机制进化的考量
我们知道,HashMap是无法保证线程安全性的,如果在并发环境下插入一个HashMap,哈希桶数组扩容时,有可能会造成链表出现环(美团技术的文章有详解)。若要保证线程安全性,就得使用ConcurrentHashMap。而ConcurrentHashMap在JDK 7和JDK 8中的锁机制设计有相当大
在 Flink 中规划 RocksDB 内存容量
Tips:从 Flink 1.10 开始,Flink 自动管理 RocksDB 的内存,详细介绍如下:https://ci.apache.org/projects/flink/flink-docs-release-1.10/ops/state/state_backends.html#memory-m
Flink 原理与实现:如何处理反压问题
流处理系统需要能优雅地处理反压(backpressure)问题。反压通常产生于这样的场景:短时负载高峰导致系统接收数据的速率远高于它处理数据的速率。许多日常问题都会导致反压,例如,垃圾回收停顿可能会导致流入的数据快速堆积,或者遇到大促或秒杀活动导致流量陡增。反压如果不能得到正确的处理,可能会导致资源
Flink DataStream 关联维表
衡量指标 总体来讲,关联维表有三个基础的方式:实时数据库查找关联(Per-Record Reference Data Lookup)、预加载维表关联(Pre-Loading of Reference Data)和维表变更日志关联(Reference Data Change Stream),而根据实现