Lnho的专栏

发表是最好的记忆

深入理解Basic Paxos协议

Paxos作用Paxos用来在多个节点间确定并只确定一个不可变变量的取值。(一旦确定后就不可以更改)基本概念 系统内部由多个Acceptor组成,也就是参与决议的一方,用于存储和管理变量。 系统外部有多个Proposer可以任意并发调用API,向系统提交不同的提议。 Proposer发起的每项提议...

2017-12-02 20:50:45

阅读数 494

评论数 0

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

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

2017-12-01 12:58:08

阅读数 1142

评论数 0

数独的Java版解法

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

2017-11-25 15:27:54

阅读数 1501

评论数 0

Presto内存管理源码分析

1. 内存池初始化初始化代码在LocalMemoryManager中,启动时将内存分为3个内存池,分别是: RESERVED_POOL:预留内存池,用于执行最耗费内存资源的查询。 GENERAL_POOL:普通内存池,用于执行除最耗费内存查询以外的查询。 SYSTEM_POOL:系统内存池,预留的...

2017-11-24 21:21:00

阅读数 1347

评论数 0

常见排序算法总结

1. 选择排序 找到数组中最小的那个元素 将它与数组的第一个元素交换位置 再次,在剩余的元素中找到最小的元素,如此反复。 2. 插入排序 选择第二个元素。 将它从后往前依次与之前的元素比较 如果小于之前的元素,则交换两个元素位置,并继续从后往前比较之前元素,直至到第一个元素或者出现大于的情况位置 ...

2017-11-23 00:50:20

阅读数 347

评论数 0

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

本文为《数据挖掘:概念与技术》中“数据仓库与联机分析处理”的阅读笔记。4. 数据仓库与联机分析处理 ETL:用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。 数据仓库提供联机分析处理(OLAP)工具,用于各种粒度的多维数据的交互分析,有...

2017-11-21 00:10:42

阅读数 671

评论数 0

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

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

2017-08-29 23:09:12

阅读数 1201

评论数 0

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 a...

2017-08-02 21:14:50

阅读数 1456

评论数 5

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

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

2017-07-07 11:40:47

阅读数 1873

评论数 5

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

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

2017-03-04 17:46:27

阅读数 2192

评论数 0

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

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

2017-03-01 13:42:04

阅读数 3010

评论数 4

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

Flume 1.7 源码分析(一)源码编译 Flume 1.7 源码分析(二)整体架构 Flume 1.7 源码分析(三)程序入口 4 程序入口启动Flume的过程可以简单分为2个步骤: 1. 获取相关配置文件(一般来说就是flume-conf.properties)。 2...

2017-02-27 13:20:03

阅读数 2609

评论数 5

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

Flume 1.7 源码分析(一)源码编译 Flume 1.7 源码分析(二)整体架构 3 整体架构Flume有三大组件:Source、Channel、Sink。 Source就是数据来源,例如Web Server产生日志后,可使用ExecSource执行tail -F命令后不断监听日...

2017-02-27 13:07:56

阅读数 2492

评论数 4

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

1 说明Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,目前已经是Apache的一个子项目。Flume是一个专用工具被设计为旨在往HDFS、HBase发送数据。它对HDFS有特殊的优化,并且集成了Hadoop的安全特性。本文将详细分析Flume核心...

2017-02-26 16:11:45

阅读数 3095

评论数 13

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 len...

2017-02-14 14:16:01

阅读数 1056

评论数 0

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 ...

2017-02-10 07:36:39

阅读数 613

评论数 0

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 ...

2017-02-06 13:16:33

阅读数 623

评论数 1

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

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

2017-02-04 07:19:22

阅读数 1573

评论数 6

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

给定一个非空字符串S,代表一个软件授权秘钥,我们需要格式化这个秘钥。这个字符串由字母、数字(a-z and/or A-Z and/or 0-9)和中划线(-)组成。中划线把字符串S分为几个组(例如有M个中划线,那会被分为M+1个组)。现在,中划线放置的位置可能被放错了。 我们希望每个组的字符长度为...

2017-02-04 06:28:32

阅读数 1035

评论数 0

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

本文环境如下: 操作系统:CentOS 7.2.1511 64位 Flume版本:1.6.0 1. 当Flume与Hadoop不在同一服务器上当Flume与Hadoop不在同一服务器上时,又配置了写HDFS,则Flume启动时会报找不到类的错误。 需要添加Hadoop相关的包到flu...

2016-08-04 13:51:11

阅读数 2832

评论数 1

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