7 Lnho

尚未进行身份认证

发表是最好的记忆

等级
TA的排名 6k+

深入理解Basic Paxos协议

Paxos作用Paxos用来在多个节点间确定并只确定一个不可变变量的取值。(一旦确定后就不可以更改)基本概念系统内部由多个Acceptor组成,也就是参与决议的一方,用于存储和管理变量。系统外部有多个Proposer可以任意并发调用API,向系统提交不同的提议。Proposer发起的每项提议分别用一个ID标识,提议可表示为(ID, value)。ID是一个比较大小的值,比如可以用当前时间戳。

2017-12-02 20:50:45

2PC和3PC中故障情况分析

2PC故障情况分析1. 协调者正常,参与者宕机发生在第二阶段:无论协调者发起的是提交还是终止,那宕机的参与者在重启之后,都将执行对应操作,不存在不一致情况。发生在第一阶段:由于协调者无法收集到所有参与者的反馈,会陷入阻塞情况。解决办法:引入超时机制。超过指定时间未收到反馈,事务失败,向所有节点发送终止事务请求。宕机的节点启动后,收到终止事务请求,该事务失败。小结简单来说,由于协调者没挂,

2017-12-01 12:58:08

数独的Java版解法

最近偶尔有玩数独,有的题太复杂了不好解,刚好看到LeetCode上有这样的题,就尝试写了个Java的解法。1.数独介绍数独盘面是个九宫,每一宫又分为九个小格。在这八十一格中给出一定的已知数字和解题条件,利用逻辑和推理,在其他的空格上填入1-9的数字。使1-9每个数字在每一行、每一列和每一宫中都只出现一次,所以又称“九宫格”。左边是数独的题目,右边是完成后的结果。2.

2017-11-25 15:27:54

Presto内存管理源码分析

1. 内存池初始化初始化代码在LocalMemoryManager中,启动时将内存分为3个内存池,分别是:RESERVED_POOL:预留内存池,用于执行最耗费内存资源的查询。GENERAL_POOL:普通内存池,用于执行除最耗费内存查询以外的查询。SYSTEM_POOL:系统内存池,预留的用于Presto内部数据结构和临时的分配需求使用的内存。long maxHeap = Runtime.

2017-11-24 21:21:00

常见排序算法总结

1. 选择排序找到数组中最小的那个元素将它与数组的第一个元素交换位置再次,在剩余的元素中找到最小的元素,如此反复。2. 插入排序选择第二个元素。将它从后往前依次与之前的元素比较如果小于之前的元素,则交换两个元素位置,并继续从后往前比较之前元素,直至到第一个元素或者出现大于的情况位置如果大于之前的元素,则终止比较。并选择下一个元素,重复执行2-4步骤。适用场景对于部分有序的数据十分高

2017-11-23 00:50:20

数据仓库与联机分析处理笔记

本文为《数据挖掘:概念与技术》中“数据仓库与联机分析处理”的阅读笔记。4. 数据仓库与联机分析处理ETL:用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。数据仓库提供联机分析处理(OLAP)工具,用于各种粒度的多维数据的交互分析,有利于有效的数据泛化和数据挖掘。数据立方体,是一种用于数据和OLAP以及OLAP操作(如上卷、下钻、切片

2017-11-21 00:10:42

记录一次大对象导致的Java堆内存溢出问题

前几天早上出现一后台项目无法登陆的情况,排查发现新生代和老年代都占用100%,FullGC次数大概有100多次,最终出现OOM。重启Tomcat后,至13点,FullGC的次数达到31次。

2017-08-29 23:09:12

Presto日志中出现大量的Triggering GC to avoid Code Cache eviction bugs

问题描述:Presto日志中出现大量的2017-07-31T15:31:21.505+0800 INFO Code-Cache-GC-Trigger com.facebook.presto.server.CodeCacheGcTrigger Triggering GC to avoid Code Cache eviction bugs排查过程:1. 检查Presto源码出现该条日

2017-08-02 21:14:50

HiveJDBC与其他JDBC一起使用时出现java.lang.IllegalArgumentException: Bad URL format

程序中需要使用JDBC的方式同时访问Hive和MySQL,发现在获取MySQL连接的时候(DriverManager.getConnection方法)出现Hive的类中的Bad URL format异常。代码如下: public Connection getMySqlConn() { Connection conn = null; try {

2017-07-07 11:40:47

Flume 1.7 源码分析(五)从Channel获取数据写入Sink

6 从Channel获取数据写入Sink6.1 Sink部分Sink部分主要分为以下3个步骤: 1. 由SinkRunner不断调用SinkProcessor的process方法。 2. 根据配置的SinkProcessor的不同,会使用不同的策略来选择sink。SinkProcessor有3种,默认是DefaultSinkProcessor。 3. 调用选择的sink的process

2017-03-04 17:46:27

Flume 1.7 源码分析(四)从Source写数据到Channel

5 从Source写数据到Channel5.1 Source部分5.1.1 SourceRunnerSourceRunner就是专门用于运行Source的一个类。 在”物化配置”一节获取配置信息后,会根据Source去获取具体的SourceRunner,调用的是SourceRunner的forSource方法。public static SourceRunner forSource(Sour

2017-03-01 13:42:04

Flume 1.7 源码分析(三)程序入口

Flume 1.7 源码分析(一)源码编译 Flume 1.7 源码分析(二)整体架构 Flume 1.7 源码分析(三)程序入口 4 程序入口启动Flume的过程可以简单分为2个步骤: 1. 获取相关配置文件(一般来说就是flume-conf.properties)。 2. 启动各组件。不特别说明,本文中的组件是指实现了LifecycleAware接口的类的对象,一般就是

2017-02-27 13:20:03

Flume 1.7 源码分析(二)整体架构

Flume 1.7 源码分析(一)源码编译 Flume 1.7 源码分析(二)整体架构 3 整体架构Flume有三大组件:Source、Channel、Sink。Source就是数据来源,例如Web Server产生日志后,可使用ExecSource执行tail -F命令后不断监听日志文件新生成的数据,然后传给Channel。Channel就是一个缓存队列,由于读取数据和写入数据的速

2017-02-27 13:07:56

Flume 1.7 源码分析(一)源码编译

1 说明Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,目前已经是Apache的一个子项目。Flume是一个专用工具被设计为旨在往HDFS、HBase发送数据。它对HDFS有特殊的优化,并且集成了Hadoop的安全特性。本文将详细分析Flume核心模块的源码实现。2 下载、编译2.1 源码检出Flume源码的git地址是:https://git-w

2017-02-26 16:11:45

Leet Code OJ 3. Longest Substring Without Repeating Characters

题目Given a string, find the length of the longest substring without repeating characters.Examples:Given “abcabcbb”, the answer is “abc”, which the length is 3.Given “bbbbb”, the answer is “b”, with the

2017-02-14 14:16:01

Leet Code OJ 4. Median of Two Sorted Arrays [Difficulty: Hard]

题目There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).Example 1:nums1 = [1, 3]nums

2017-02-10 07:36:39

Leet Code OJ 388. Longest Absolute File Path [Difficulty: Medium]

题目Suppose we abstract our file system by a string in the following manner:The string “dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext” represents:dir subdir1 subdir2 file.ext The dir

2017-02-06 13:16:33

Flume 1.6 遇Emoji表情发生截断丢失数据问题分析

问题描述最近有一段时间,跑ETL的时候,发现出来的数据明显比之前少,少了大约一半左右,就开始排查。 我们的数据是从Flume采集过来的,排查日志发现,flume在读取到某一条的时候,就不再往下读取了。问题分析进一步拿到原始文件后,找到那条数据。用vim打开发现其中有个地方有两个空格。起初以为是乱码(之前flume出过乱码中断的问题),贴到ide里面,得到具体编码,发现是四字节的utf-8编码。贴到

2017-02-04 07:19:22

Leet Code OJ 482. License Key Formatting [Difficulty: Medium]

给定一个非空字符串S,代表一个软件授权秘钥,我们需要格式化这个秘钥。这个字符串由字母、数字(a-z and/or A-Z and/or 0-9)和中划线(-)组成。中划线把字符串S分为几个组(例如有M个中划线,那会被分为M+1个组)。现在,中划线放置的位置可能被放错了。我们希望每个组的字符长度为整数K(除了第一个组,允许少于K,但是至少要有一个字符)。为了满足这个需求,我们需要重新放置中划线。另外,还需要把所有小写

2017-02-04 06:28:32

Flume学习笔记(二)问题整理

本文环境如下: 操作系统:CentOS 7.2.1511 64位 Flume版本:1.6.01. 当Flume与Hadoop不在同一服务器上当Flume与Hadoop不在同一服务器上时,又配置了写HDFS,则Flume启动时会报找不到类的错误。 需要添加Hadoop相关的包到flume的classpath配置中(或者直接拷贝到flume的lib文件夹中)。 具体需要的包,我是在ma

2016-08-04 13:51:11

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!