Danner Blog

Took the sourest lemon that life has to offer and turned it into something resembling lemonade.

JVM:运行时数据区

本文探讨 JVM 运行时的数据区,希望你有 cpu 执行指令的基础知识 环境:JDK8 Java 虚拟机在执行 Java 程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间:有的区域随着虚拟机进程的启动而存在(全局),有的区域则依赖用户线程的启动和结束而建立和销毁(局部)。按虚拟机规范,如图大致可以分为 PC reg...

分布式系统:Split-Brain

split-brain 指在一个高可用(HA)系统中,当联系着的两个节点断开联系时,本来为一个整体的系统,分裂为两个独立节点,这时两个节点开始争抢共享资源,结果会导致系统混乱,数据损坏。 在详细介绍脑裂之前,先来说下假死。在分布式系统中,大多数都是 Master-Slave 模式,为了保证高可用都有监控器通过心跳监控当前 master 状态。监控器发现 master 挂掉后会立刻启...

HDFS:数据存储

读书摘要 HDFS 的数据存储包括两块:内存存储、异构存储。HDFS 内存储存是一种十分特殊的存储方式,将会对集群数据的读写带来不小的性能提升;而 HDFS 异构存储则能帮助我们更合理地把数据存到应该存的地方。 内存存储 内存存储是用机器的内存作为存储数据的载体,与之相同的是 HDFS 缓存;但不同之处在于缓存需要用户对待缓存的文件、目录设置管理命令(类似 Spark 内持...

Docker 命令

<Docker 容器与容器云> 子命令分类 子命令 Docker 环境信息 info、version 容器生命周期管理 create、exec、kill、pause、restart、rm、run、start、stop、unpaus...

Scala 基础

本文记录 scala 中一些隐晦的知识点 函数类型 A => B 指代函数参数类型是 A,返回类型是 B。那么显而易见,Int => Int 是数字到数字的映射即传入数字返回数字的函数。

Java 源码:数据结构-List

基于 jdk 1.8 List ArrayList ArrayList 字面理解就是由 array 组成的 List,相当于是个变长数组。它底层是个 Object 类型的数组,可放置 null 。 // ArrayList 真正存放值的元素 transient Object[] elementData; 构造函数 // 就是创建 ArrayList,长度为0 new ...

hadoop job 执行流程

job

Hadoop 中的 job 任务包含 Mapper 和 Reducer 过程;但这只是最简单的划分,为了理清 job的执行过程将其划分为:job 层、MR 层,每层又由很多小部分组成。 job 层 job.waitForCompletion(true) 是我们提交 job 任务代码,从这个切入点出发: 一、判断 job 状态,准备提交任务 // job.java public boo...

Hadoop 集群脚本

shell

在编写集群脚本之前,先回顾下 shell 知识点 Shell 入门 创建 wc.sh,并在文件写入以下内容: #!/bin/bash echo "hello shell" 解释下上面两行代码: 第一行注释表明执行此 shell 是 /bin/bash; 第二行是 shell 具体要执行的脚本,输出 hello shell。 保存好文件内容后,增加执行权限 chm...

G7 知识:二

HDFS

一些小姿势 hdfs 常用命令整理 hdfs haadmin run a DFS HA admin client [hadoop@izbp13e6ad3yxuuc3va7bez hadoop]$ hdfs haadmin Usage: DFSHAAdmin [-ns <nameserviceId>] [-transitionToActive <ser...

G7 知识:一

HA

一些小姿势 hdfs ha架构图梳理 两个 namenode 保证了 hdfs 高可用,下面来了解下是如何保证两个 namenode 自动切换以及内容一致: Zookeeper:ZKFC 一启动就会抢先在 Zookeeper 集群创建临时节点,谁先创建谁就是 active NN;此时,standby NN 会一直关注临时节点状态,发现被销毁则表示原先的 active NN 出现...