自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(75)
  • 收藏
  • 关注

原创 YARN基本架构

文章目录1. YARN基本架构1.1. YARN基本组成结构1.2. YARN工作流程1. YARN基本架构YARN是Hadoop2.0中的资源管理系统,基本设计思想是将MRv1中的JobTracker拆分成两个独立的服务:一个全局的资源管理器ResourceManager和每个应用程序持有的ApplicationMaster。ResourceManager:负责整个系统的资源管理和分配ApplicationMaster:负责单个应用程序的管理1.1. YARN基本组成结构YARN总体上仍然

2020-10-30 00:00:45 8

原创 Post 方式请求 Nginx 返回413状态码

Syntax client_max_body_size size; Default client_max_body_size 1m; Context http, server, location 设置客户端请求主体的最大允许大小,在“Content-Length”请求头字段中指定。如果请求中的大小超过配置的值,则将413(请求实体太大)错误返回给客户机。请注意浏览器无...

2020-10-24 21:38:11 32

原创 查看 hdfs 上文件的文件状态、所属块信息等

执行 hdfs fsck 可以得到如下帮助信息:Usage: hdfs fsck <path> [-list-corruptfileblocks | [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]]] [-includeSnapshots] [-storagepolicies] [-blockId <blk_Id>] <path> start che

2020-10-24 21:35:38 92

原创 HBase Compaction

文章目录1. Compaction1.1. 基本原理1.2. Compaction 的核心作用1.3. Compaction 基本流程1.3.1. Compaction 触发时机1.3.2. 待合并 HFile 集合选择策略1. CompactionCompaction是以Store为单位进行的Compaction使读取延迟更加稳定,但是读取时间产生了很大的毛刺Compaction 操作的主要源头来自flush操作根据待合并HFile文件的选择策略可以得知,正在进行Compaction的HFi

2020-10-21 23:59:12 507 1

原创 RegionServer 宕机恢复流程

根据上节的基本原理,本节介绍HBase故障恢复的具体流程,重点讨论RegionServer的宕机恢复。Master检测RegionServer宕机HBase使用ZooKeeper协助Master检测RegionServer宕机。所有RegionServer在启动之后都会在ZooKeeper节点/rs上注册一个子节点,这种子节点的类型为临时节点(ephemeral)。临时节点的意义是,一旦连...

2020-10-21 23:55:47 13 1

原创 HBase故障恢复基本原理

Master故障恢复原理在HBase体系结构中,Master主要负责实现集群的负载均衡和读写调度,并没有直接参与用户的请求,所以整体负载并不很高。HBase采用基本的热备方式来实现Master高可用。通常情况下要求集群中至少启动两个Master进程,进程启动之后会到ZooKeeper上的Master节点进行注册,注册成功后会成为ActiveMaster,其他在Master节点未注册成功的进...

2020-10-21 23:54:56 18 1

原创 SparkSession 相关类

文章目录1. SparkSession相关类1.1. DataType1.2. Metadata1.3. StructType与StructField1.3.1. StructField类定义1.3.2. StructType类定义1.4. 数据源DataSource1.4.1. DataSource详解1.4.2. DataSourceRegister详解1.5. 数据集合DataSet1.5.1. 属性和方法1.6. DataFrameReader详解1.6.1. 属性和方法1.7. SparkSess

2020-10-15 00:14:45 18

原创 Spark 配置

文章目录1. Spark 配置1.1. Spark 属性1.1.1. 动态加载Spark属性1.1.2. 查看Spark属性1.2. 环境变量1. Spark 配置Spark提供了三个位置来配置系统:Spark属性控制大多数应用程序参数,可以通过使用SparkConf对象、bin/spark-submit脚本选项、conf/Spark-default.conf文件或通过Java系统属性进行设置。环境变量可用于通过每个节点上的conf/spark-env.sh脚本设置每台机器的设置,例如IP地址。

2020-10-14 22:17:11 23

原创 Spark 核心原理

文章目录1. Spark核心原理2. 消息通信原理2.1. Spark运行时消息通信1. Spark核心原理Application(应用程序):是指用户编写的spark应用程序,包含驱动程序(driver)和分布在集群中多个节点上运行的Executor代码,在执行过程中有一个或多个作业组成。Driver(驱动程序):Spark中的Driver,即运行上述Application的main函数并且创建SparkContext,其中创建SparkContext的目的是为了准备Spark应用程序的运

2020-10-13 23:14:21 28 1

原创 Broker 和 Controller

文章目录1. Broker 和 Controller1.1. 集群管理1.2. Controller1.2.1. Controller 选举原理1.2.2. 手动触发 Controller 开启新一轮选举1.2.3. Partition 的 leader 选举2. broker 端配置2.1. 最基本的配置2.2. 主要的参数配置1. Broker 和 Controller对用户而言,broker的主要功能就是持久化消息以及将消息队列中的消息从发送端传输到消费端。Kafka的broker负责持久化pro

2020-10-09 22:58:09 23 1

原创 Kafka Producer

文章目录1. Kafka Producer1.1. Producer概览1.2. ProducerRecord1.3. RecordMetadata1.4. 发送消息1.4.1. 工作流程2. 参数配置2.1. 必填参数2.2. 其他参数1. Kafka Producer在0.9.0.0版本中,社区正式使用Java版本的producer替换了原Scala版本的producer。新版本的producer的主要入口类是org.apache.kafka.clients.producer.KafkaProduc

2020-10-09 22:27:32 30

原创 Linux 中的硬盘

硬盘概念硬盘设备是由大量的“扇区”组成的,单个扇区容量为512字节,第一个扇区保存着主引导记录和分区信息,主引导记录需要占用446字节,分区表占用64字节,结束标记占用2字节。当我们拿到一张大白纸,首先为了使用方便要裁剪,然后为了书写工整要划格。“白纸”表示原始的硬盘,“裁剪”意味着分区,“画格”意味着格式化,最后写入数据,即新安装一块硬盘设备后,为了更充分、安全的利用硬盘空间首先要进行分区,然后格式化,最后挂载使用。硬盘被划分为:主分区(必须有一个)、扩展分区(可以没有,但最多一个)和逻辑分

2020-09-21 11:55:37 23

原创 HBase MemStore

文章目录MemStore设计MemStore的原因Memstore Flush触发条件MemStoreHBase中,Region是集群节点上最小的数据服务单元,用户数据表由一个或多个Region组成。在Region中每个ColumnFamily的数据组成一个Store。每个Store由一个Memstore和多个HFile组成(如果一次flush都还没有发生的话,就是0个HFile)。HFile是由Memstore flush产生的,每一次的flush都会产生一个全新的HFile文件。设计MemSto

2020-09-16 09:10:47 49

原创 HBase 读取流程

文章目录1. HBase 读取流程1.1. Client-Server读取交互逻辑1.2. Server端Scan框架体系1.2.1. 构建scanner iterator体系1.2.2. 执行next函数获取KeyValue并对其进行条件过滤1.3. 过滤淘汰不符合查询条件的HFile1.4. 从HFile中读取待查找Key1. HBase 读取流程HBase读数据的流程更加复杂。主要基于两个方面的原因:一是因为HBase一次范围查询可能会涉及多个Region、多块缓存甚至多个数据存储文件;二是

2020-09-13 23:11:48 19

转载 HBase 行级事务模型

文章目录1. HBase 行级事务模型1.1. HBase事务原子性保证1.2. 写写并发控制1.2.1. 如何实现写写并发控制?1.2.2. 如何实现批量写入多行的写写并发?1.3. 读写并发控制1.3.1. 如何实现读写并发控制?1. HBase 行级事务模型HBase目前只支持行级事务1.1. HBase事务原子性保证HBase数据会首先写入WAL,再写入Memstore。写入Memstore异常很容易可以回滚,因此保证写入/更新原子性只需要保证写入WAL的原子性即可。1.2. 写写并发控制

2020-09-13 18:13:14 18

转载 Hbase 的 sequenceId

文章目录1. Hbase 的 sequenceId1.1. 为什么需要sequenceId1.2. HLog日志核心结构1.3. 什么是sequenceid?1. Hbase 的 sequenceId1.1. 为什么需要sequenceIdHBase数据在写入的时候首先追加写入HLog,再写入Memstore,也就是说一份数据会以两种不同的形式存在于两个地方。那两个地方的同一份数据需不需要一种机制将两者关联起来?Memstore中的数据flush到HDFS文件中后HLog对应的数据是不是就可以被删

2020-09-13 18:06:24 22

原创 HBase 写入流程

文章目录HBase 写入流程Region写入阶段HBase 写入流程HBase写入流程整理分为3个阶段:客户端处理阶段Region写入阶段MemStore Flush阶段注意:用户写入请求在完成MemStore的写入后就会返回成功,MemStore Flush是一个异步执行过程。Region写入阶段...

2020-09-13 18:03:49 49

原创 Region 分裂策略补充

文章目录Region分裂策略补充KeyPrefixRegionSplitPolicyDelimitedKeyPrefixRegionSplitPolicyDisabledRegionSplitPolicyRegion分裂策略补充Region分裂详见参见Region 分裂KeyPrefixRegionSplitPolicy除了简单粗暴地根据大小来拆分,还可以自己定义拆分点。 KeyPrefixRegionSplitPolicy 是 IncreasingToUpperBoundRegionSplitP

2020-09-12 17:25:36 43

原创 类加载器(1)

文章目录1. 类加载器1.1. 类加载机制1.2. 类加载器加载Class的步骤1. 类加载器类加载器负责将.class文件加载到内存,并为之生成对应的java.lang.Class对象。类加载器负责加载所有的类,系统为所有被加载进内存的类生成一个java.lang.Class实例。一旦一个类被加载进JVM中,同一个类就不会被再次载入了。正如一个对象有一个唯一的标识一样,一个载入JVM的类也有一个唯一的标识。在Java中,一个类用其类的全限定类名(包名+类名)作为唯一标识,但在JVM中,一个类

2020-08-29 21:14:41 71

原创 枚举类需要注意的点

文章目录1. 枚举类1.1. 枚举类和普通类的区别1.2. 枚举类中的方法1.3. 枚举类实现接口1.4. 包含抽象方法的枚举类1. 枚举类枚举类是一种特殊的类:可以有自己的成员变量、方法可以实现一个或者多个接口可以定义自己的构造器1.1. 枚举类和普通类的区别枚举类可以实现一个或多个接口,使用 enum 定义的枚举类默认继承了 java.lang.Enum 类,而不是 Object 类,因此枚举类不能显示继承其他父类。其中 java.lang.Enum 类实现了 java.io.Se

2020-08-28 19:01:33 84

原创 最简单的死锁示例

public class DeadLockDemo { public void method1() { synchronized (String.class) { System.out.println("method1 lock1……"); synchronized (Integer.class) { System.out.println("method1 lock2……"); }

2020-08-23 19:11:14 25

原创 HashMap 需要关注的点

文章目录1. Map 原理解析1.1. key 的计算过程1.2. 数组长度的限制1.3. put 源码解析2. HashMap非线程安全1. Map 原理解析1.1. key 的计算过程要将其存入到HashMap中,就需要确定key,value组成的Node对象在数组索引下标中的位置。Map中数组初始大小为16,即索引位置为0-15将key转换成数据中的索引位置:求key的hashCode值,任何对象都可以计算得出hashCode值,hashCode()方法是Object中的方法,结果返回

2020-08-22 17:27:40 39

原创 volatile 和 synchronize

文章目录volatile 和 synchronizesynchronize 和 volatile 的区别volatile 非原子性验证volatile 非线程安全的原因synchronize 代码块有 volatile 同步的功能volatile 和 synchronize关键字 volatile 的主要作用是使变量在多个线程间可见。使用 volatile 关键字增加了实例变量在多个线程之间的可见性。但是 volatile 关键字最致命的缺点就是不支持原子性。synchronize 和 volati

2020-08-19 21:59:17 38

原创 Region 迁移(2)

HBase 中数据分片的概念是 Region。集群负载均衡、故障恢复等功能都是建立在分片迁移的基础之上的。HBase 系统中,分片迁移就是 Region 迁移。HBase 中 Region 迁移是一个非常轻量级的操作。所谓轻量级,是因为 HBase 的数据实际存储在 HDFS 上,不需要独立进行管理,因而 Region 在迁移的过程中不需要迁移实际数据,只要将读写服务迁移即可。Regio...

2020-08-16 20:39:46 98

翻译 Hbase HBCK2

文章目录Apache HBase HBCK2 ToolHBCK2 vs hbck1总述获取 HBCK2构建 HBCK2运行 HBCK2HBCK2 概述发现问题诊断工具Master LogsMaster UI: /master-status#tablesMaster UI: 'Procedures & Locks'Master UI: The 'HBCK Report'[HBase Canary 工具](http://hbase.apache.org/book.html#_canary)其他工具修复.

2020-08-15 19:58:13 230

原创 hbase hbck

HBaseFsck (HBCK)工具可以检测 HBase 集群中 Region 的一致性和完整性,同时可以对损坏的集群进行修复。HBCK 主要工作在两种模式下:一致性检测只读模式和多阶段修复模式。HBase 集群一致性状态HBase 集群一致性主要包括两个方面:HBase Region 一致性:集群中所有 Region 都被 assign,而且 deploy 到唯一一台 RegionServer 上,并且该 Region 的状态在内存中、hbase:meta 表中以及 ZooKeeper 这

2020-05-19 01:11:51 90

原创 GreenPlum 时间转换函数

从date、timestamp、time、interval类型中抽取子域值方法一:extractextract函数从日期、时间数值里抽取子域,例如年、小时等。格式:extract(field from source)source:date、timestamp、time、interval类型的值;field:是一个标识符或者字符串,指定所抽取的域,可以是表示时间的任意值,如c...

2020-05-19 00:32:53 1051

原创 SQL时间类型

名字 存储空间 描述 最低值 最高值 分辨率 timestamp [(p)] [without time zone] 8 字节 日期和时间 ...

2020-05-19 00:31:57 72

原创 PostgreSql 常量

PostgreSQL 里有三种隐含类型的常量:字符串、位串、数值。常量也可以声明为明确的类型,这样就可以使用更准确的表现形式以及可以通过系统更有效地处理。字符串常量SQL 标准定义的声明字符串常量的方法是:用单引号(')包围的任意内容,比如 'This is a string'如果在字符串中包含单引号,需要输入连续的两个单引号,比如:'Dianne''s horse'。注意:是两...

2020-05-19 00:30:26 263

原创 HDFS 在 HBase 系统中扮演的角色

HDFS在HBase系统中扮演的角色HBase使用HDFS存储所有数据文件,从HDFS的视角看,HBase就是它的客户端。这样的架构有几点需要说明:HBase本身并不存储文件,它只规定文件格式以及文件内容,实际文件存储由HDFS实现。 HBase不提供机制保证存储数据的高可靠,数据的高可靠性由HDFS的多副本机制保证。 HBase-HDFS体系是典型的计算存储分离架构。这种轻耦合架构的...

2020-05-19 00:29:35 102

原创 HBase 与 ZooKeeper 的关系

HBase在ZooKeeper中创建的主要子节点meta-region-server:存储HBase集群hbase:meta元数据表所在的RegionServer访问地址。客户端读写数据首先会从此节点读取hbase:meta元数据的访问地址,将部分元数据加载到本地,根据元数据进行数据路由。rs:集群中所有运行的RegionServer。master:backup-masters:通常...

2020-05-19 00:29:14 335

原创 Kafka日志索引

……

2020-05-19 00:25:51 140

原创 __consumer_offsets

__consumer_offsets是kafka自行创建的,和普通的topic相同。它存在的目的之一就是保存consumer提交的位移。__consumer_offsets的每条消息格式大致如图所示:配图105,图5.5可以想象成一个KV格式的消息,key就是一个三元组:group.id+topic+分区号,而value就是offset的值。考虑到一个kafka生成环境中可能有很多...

2020-05-18 23:03:56 349

原创 Kafka消息格式

从0.8.x版本开始到现在的2.x版本,Kafka的消息格式也经历了 3 个版本: v0 版本、v1 版本和 v2 版本 。v0版本Kafka 从 0.8.x 版本开始到 0.10.x 版本之前的消息格式通常称为 v0 版本。下图中左边的 “RECORD” 部分就是 v0 版本的消息格式,每个 RECORD ( v0 和 v1 版)必定对应一个 offset 和 message siz...

2020-04-27 00:54:15 129

原创 WAL的优化

结论:WAL没啥可优化的!!!一个Region只有一个WAL实例。WAL实例启动后在内存中维护了一个线程安全的并发集合(ConcurrentNavigableMap)。这个ConcurrentNavigableMap包含了很多个WAL文件的引用。当一个文件写满了就会开始下一个文件。当WAL工作的时候WAL文件数量会不断增长直到达到一个阈值后开始滚动。跟WAL有关的优化参数有:hbas...

2020-04-19 19:17:38 197

原创 Region 合并(4)

Region的合并不是出于性能考虑的,而更多地的是出于维护的目的被创造出来的。什么时候会用到合并?比如删了大量的数据,每个Region都变小了,这个时候分成这么多个Region就有点浪费了,可以把Region合并起来,然后可以减少一些 RegionServer服务器来节省成本。通过Merge类合并Region合并通过使用org.apache.hadoop.hbase.util.Me...

2020-04-19 18:40:19 144

原创 Region 分裂(3)

通过查询hbase:meta可以形象地看到,一个Region就是一个表的一段Rowkey的数据集合。当Region太大的时候HBase会拆分它。hbase:meta表结构详情参见hbase:mate表结构拆分region的原因:当某个Region太大的时候读取效率太低了。查询的本质其实也就是遍历key;而当数据增大到上亿的时候同一个磁盘已经无法应付这些数据的读取了,因为遍历一遍数据的时间实...

2020-04-19 17:23:04 179

原创 Region 定位(1)

Region的定位Region就是HBase架构的灵魂。Client在读写的时候是怎么定位到RegionServer的???三层查询架构关于Region的查找,0.96.0版本之前是被称为三层查询架构配图5-13Region:就是要查找的数据所在的Region,这个不多解释。.META.:是一张元数据表,它存储了所有Region的简要信息。.META.表中的一行记录就是...

2020-04-19 16:13:28 228

原创 hbase:meta 表解析

hbase:meta表中存储了Hbase集群中全部表的所有的region信息。hbase:mate表所在的RegionServer信息被存储到了zk中的/hbase/meta-region-server节点。通过查询该节点,可以获得hbase:meta表在那个RegionServer。rowkeyhbase:meta表的rowkey结构如下:表名,STARTKEY,创建时间.ha...

2020-04-19 16:02:04 291

原创 初识Hbase架构

1 基本概念1.1 部署架构Hbase有两种架构:Master服务器和RegionServer服务器。一般一个Hbase集群有一个Master服务器和几个RegionServer服务器。Master服务器负责维护表结构信息,实际的数据都存储在RegionServer服务器上。...

2020-04-19 15:59:56 118

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除