07 2021 档案

摘要:01-可见性、原子性、有序性 源头之一:缓存导致的可见性问题 可见性:一个线程对共享变量的修改,另外一个线程能够立刻看到,我们称为可见性. 源头之二:线程切换带来的原子性问题 例如:count += 1,在cpu指令级别上 指令 1:首先,需要把变量 count 从内存加载到 CPU 的寄存器; 指 阅读全文
posted @ 2021-07-28 20:20 sixinshuier 阅读(85) 评论(0) 推荐(0) 编辑
摘要:Hbase Hlog的持久化等级 SKIP_WAL:只写缓存,不写HLog日志。因为只写内存,因此这种方式可以极大地提升写入性能,但是数据有丢失的风险。在实际应用过程中并不建议设置此等级,除非确认不要求数据的可靠性。 ASYNC_WAL:异步将数据写入HLog日志中。 SYNC_WAL:同步将数据写 阅读全文
posted @ 2021-07-28 16:43 sixinshuier 阅读(151) 评论(1) 推荐(0) 编辑
摘要:Hbase 写入流程大致分为三个步骤: 1.客户端请求 首先在meta cache 根据rowKey查找该rowKey对应的Region Server,如果有则直接发送请求到RegionServer。 如果客户端缓存中没有查到对应的rowkey信息,需要首先到ZooKeeper上/hbase-roo 阅读全文
posted @ 2021-07-28 14:58 sixinshuier 阅读(169) 评论(1) 推荐(1) 编辑
摘要:thrift RPC基本原理 RPC(Remote Procedure Call),远程过程调用,大部分的RPC框架都遵循如下三个开发步骤: 定义一个接口说明文件:描述了对象(结构体)、对象成员、接口方法等一系列信息; 通过RPC框架所提供的编译器,将接口说明文件编译成具体的语言文件; 在客户端和服 阅读全文
posted @ 2021-07-28 14:02 sixinshuier 阅读(645) 评论(0) 推荐(0) 编辑
摘要:命令 ➜ bin ./hbase hfile 2021-07-26 18:03:56,810 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using buil 阅读全文
posted @ 2021-07-26 18:16 sixinshuier 阅读(78) 评论(0) 推荐(0) 编辑
摘要:Hbase MemStore Flush的触发时机 MemStore 级别限制: hbase.hregion.memstore.flush.size 默认值: 128M hbase.hregion.memstore.flush.size 设置Memstore的大小,默认大小是128M,当超过这个值的 阅读全文
posted @ 2021-07-26 17:44 sixinshuier 阅读(183) 评论(1) 推荐(0) 编辑
摘要:HBase基于LSM树模型实现,所有的数据写入操作首先会顺序写入日志HLog,再写入MemStore,当MemStore中数据大小超过阈值之后再将这些数据批量写入磁盘,生成一个新的HFile文件。 HBase Table 的每个 Column family 维护一个 MemStore,当满足一定条件 阅读全文
posted @ 2021-07-26 17:41 sixinshuier 阅读(90) 评论(0) 推荐(1) 编辑
摘要:1.Region Server 宕机的原因: Full GC导致 网络异常导致 官方Bug 导致 DataNode异常导致 2.故障恢复三部曲 Log Splitting Distributed Log Splitting Distributed Log Replay 3.故障恢复流程 这些场景下一 阅读全文
posted @ 2021-07-26 16:05 sixinshuier 阅读(202) 评论(0) 推荐(0) 编辑
摘要:1.概述 一个region server上的所有region共用一个Hlog, hlog用来在系统异常down掉,MemStore中大量更新丢失时,对数据进行恢复。 然而,对每个region的更新在hlog里不是连续的,而是分散在Hlog里的。Hlog中的每项更新都会记录该更新所属的region, 阅读全文
posted @ 2021-07-26 12:51 sixinshuier 阅读(547) 评论(0) 推荐(1) 编辑
摘要:授权范围: 名称 描述 Superuser 超级账号可以进行任何操作,运行HBase服务的账号默认是 Superuser。也可以通过在hbase-site.xml中配置hbase.superuser的值可以添加超级账号。 Global Global Scope拥有集群所有table的Admin权限。 阅读全文
posted @ 2021-07-23 16:54 sixinshuier 阅读(216) 评论(1) 推荐(1) 编辑
摘要:HLog 1.概述 Hlog又称为WAL(write ahead log),目的就是为了防止内存数据丢失做的备份。故名思义就是在数据写入memory store之前,先把数据写入到这个wal日志文件中。 HBase的Write Ahead Log (WAL)提供了一种高并发、持久化的日志保存与回放机 阅读全文
posted @ 2021-07-22 18:27 sixinshuier 阅读(617) 评论(2) 推荐(1) 编辑
摘要:Hbase RegionServer Region Server 的作用 RegionServer主要负责用户数据写入、读取等基础操作。 Region Server 组件 HLog : 保证数据的可靠性。 BlockCache: 将数据缓存在内存中,提升数据读取性能。 Region: 数据表的一个数 阅读全文
posted @ 2021-07-22 11:13 sixinshuier 阅读(224) 评论(1) 推荐(0) 编辑
摘要:![](https://img2020.cnblogs.com/blog/1723772/202107/1723772-20210722104609068-2013714511.jpg) 阅读全文
posted @ 2021-07-22 10:45 sixinshuier 阅读(54) 评论(0) 推荐(0) 编辑
摘要:强力推荐《Hbase 实现与原理》这本书。 snapshot不会拷贝数据,可以理解为它是原数据的一个指针。 我们知道Hbase数据文件一旦落到磁盘之后就不允许更新删除等原地修改操作。只能追加写入新的文件。。这种机制下实现某个表的snapshot只需要给当前表的所有文件分别新建一个引用(指针),其他新 阅读全文
posted @ 2021-07-21 17:35 sixinshuier 阅读(155) 评论(1) 推荐(0) 编辑
摘要:Hbase 备份与恢复的发展历程: 从最早使用distcp进行关机全备份 到0.94版本使用copyTable工具在线跨集群备份 到0.98版本推出在线Snapshot备份 在线Snapshot备份具备的功能: 全/增量备份: 业务场景1: 对于重要的业务数据,可以每天备份,以备发生故障时,可以回滚 阅读全文
posted @ 2021-07-21 13:51 sixinshuier 阅读(74) 评论(0) 推荐(0) 编辑
摘要:概述: HBaseFsck(hbck)是一个用于检查区域一致性和表完整性问题并修复损坏的HBase的工具。 作用: HBase Region一致性 集群中所有 region 都 被 assign,而且 deploy 到唯一一台RegionServer上 该 region 的状态在内存中、hbase: 阅读全文
posted @ 2021-07-21 11:47 sixinshuier 阅读(114) 评论(0) 推荐(0) 编辑
摘要:Python中的错误可以有两种类型,即error和exception。error是程序中的问题,程序会因此停止执行。另一方面,当某些内部事件发生时,会引发异常,从而改变程序的正常流程。 error 顾名思义,代码中引发的错误。例如语法错误,导致程序终止。 a = 10000 if(a>2999) p 阅读全文
posted @ 2021-07-21 00:46 sixinshuier 阅读(68) 评论(0) 推荐(0) 编辑
摘要:@staticmethod是一个内置的修饰符,它在Python中定义类中的静态方法。静态方法不接收任何引用参数,无论它是由类的实例调用还是由类本身调用。 @staticmethod 特点 声明一个静态方法 不可以有 cls or self 参数. 既不可以访问类的方法,又不可以访问实例的方法 . 可 阅读全文
posted @ 2021-07-20 23:58 sixinshuier 阅读(52) 评论(0) 推荐(0) 编辑
摘要:@classmethod: 定义操作类,而不是操作实例的方法。classmethod改变了调用方法的方式,因此类方法的第一个参数是类本身,而不是实例。@classmethod最常见的用途是定义备选构造方法。 1.定义方式 Python中3种方式定义类方法, 常规方式, @classmethod修饰方 阅读全文
posted @ 2021-07-20 23:33 sixinshuier 阅读(905) 评论(0) 推荐(0) 编辑
摘要:lambda 定义匿名函数 语法: lambda arguments: expression 此函数可以有任意数量的参数,但只能有一个表达式,该表达式将被计算并返回。 一种是在需要函数对象的地方自由使用lambda函数。 它除了在函数中使用其他类型的表达式外,在编程的特定领域也有各种用途。 Exam 阅读全文
posted @ 2021-07-20 23:20 sixinshuier 阅读(35) 评论(0) 推荐(0) 编辑
摘要:作用 filter()方法通过测试序列中每个元素是否为真的函数来过滤给定的序列。 语法 filter(function, sequence) Example 1: 过滤list 值 def fun(variable): letters = ['a', 'e', 'i', 'o', 'u'] if ( 阅读全文
posted @ 2021-07-20 23:01 sixinshuier 阅读(41) 评论(0) 推荐(0) 编辑
摘要:reduce() in Python 第一步,选取序列的前两个元素,得到结果。 下一步是将相同的函数应用于先前得到的结果和第二个元素后面的数字,然后再次存储结果。 此过程将继续进行,直到容器中不再剩下任何元素。 最终返回的结果被返回并打印在控制台上。 Example 1: 求list元素的和 imp 阅读全文
posted @ 2021-07-20 22:54 sixinshuier 阅读(31) 评论(0) 推荐(0) 编辑
摘要:函数的作用是: 将给定函数应用于给定iterable(list、tuple等)的每一项后,返回结果的map对象(迭代器)。 语法: map(fun, iter) 参数: fun : 函数作用用于每个iter项 iter : 必须是可迭代的 Example 1 In [1]: def addition 阅读全文
posted @ 2021-07-20 22:28 sixinshuier 阅读(76) 评论(0) 推荐(0) 编辑
摘要:list 左对齐输出 for line in [[1, 128, 1298039], [123388, 0, 2]]: ...: print('{:>8} {:>8} {:>8}'.format(*line)) ...: ...: 1 128 1298039 123388 0 2 左右对齐 prin 阅读全文
posted @ 2021-07-20 19:54 sixinshuier 阅读(1790) 评论(0) 推荐(0) 编辑
摘要:获取一行或者一个单元数据 hbase:001:0> help 'get' Get row or cell contents; pass table name, row, and optionally a dictionary of column(s), timestamp, timerange an 阅读全文
posted @ 2021-07-20 00:45 sixinshuier 阅读(1784) 评论(0) 推荐(1) 编辑
摘要:1.创建表 hbase:003:0> create 'test','cf' Created table test Took 0.9345 seconds => Hbase::Table - test 2.查询表 hbase:004:0> list 'test' TABLE test 1 row(s) 阅读全文
posted @ 2021-07-20 00:36 sixinshuier 阅读(71) 评论(0) 推荐(0) 编辑
摘要:1. 简介 BigTable论文中称BigTable为"sparse,distributed, persistent multidimensional sorted map"可见BigTable本质上是一个Map结构数据库,HBase亦然,也是由一系列KV构成的。然而HBase这个Map系统却并不简 阅读全文
posted @ 2021-07-20 00:25 sixinshuier 阅读(57) 评论(0) 推荐(0) 编辑
摘要:描述 请实现有重复数字的升序数组的二分查找 给定一个 元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的第一个出现的target,如果目标值存在返回下标,否则返回 -1 Java 实现 import java.util.*; public class 阅读全文
posted @ 2021-07-19 23:53 sixinshuier 阅读(255) 评论(0) 推荐(0) 编辑
摘要:1.前置条件: JDK 2.安装 brew install hbase 安装路径: /usr/local/opt/hbase/bin/start-hbase.sh 3.配置Hbase 在conf/hbase-env.sh设置JAVA_HOME cd /usr/local/Cellar/hbase/2 阅读全文
posted @ 2021-07-19 23:30 sixinshuier 阅读(429) 评论(0) 推荐(0) 编辑
摘要:描述 用两个栈来实现一个队列,分别完成在队列尾部插入整数(push)和在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。 示例 输入: ["PSH1","PSH2","POP","POP"] 返回值: 1,2 Java 实现 import 阅读全文
posted @ 2021-07-19 23:27 sixinshuier 阅读(73) 评论(0) 推荐(0) 编辑
摘要:package com.example.polaris; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.Re 阅读全文
posted @ 2021-07-19 23:02 sixinshuier 阅读(46) 评论(0) 推荐(0) 编辑
摘要:描述 输入一个链表,反转链表后,输出新链表的表头。 Java /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Soluti 阅读全文
posted @ 2021-07-19 00:30 sixinshuier 阅读(25) 评论(0) 推荐(0) 编辑
摘要:描述 给定一个二叉树和一个值sum,请找出所有的根节点到叶子节点的节点值之和等于sum 的路径, 例如: 给出如下的二叉树,sum=22 Java import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode l 阅读全文
posted @ 2021-07-19 00:06 sixinshuier 阅读(235) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示