自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zmysang的博客

不忘初心,方能始终

  • 博客(32)
  • 收藏
  • 关注

原创 Kafka Consumer并发检测源码分析

Kafka 在文档中注明了 Consumer 不是线程安全的,意味着一个消费者只能对应一个线程,Consumer 被并发调用时会出现不可预期的结果。因此kafka实现了并发检测,在发生并发时直接抛出异常。在Consumer的订阅函数和拉取消息函数中都用到了acquireAndEnsureOpen函数来获取锁,并且通过try-finally中的release函数来释放锁,作用就是保护Consume...

2020-04-23 22:49:05 342

原创 redis数据结构分析(下)

在上一篇,redis数据结构分析(上)中已经分析了动态字符串和链表。这一篇中主要分析字典,跳表和整数集合这三种数据结构。目录字典字典的结构使用示例rehashrehash扩展与收缩条件扩容缩容计算ht[1]分配空间举例渐进式rehash执行过程跳表使用示例一般跳表的结构redis中跳表的结构zskiplistNode的层高跳表查询元素的过程跳表 vs 红黑树整数集合整数集合的结构Redis中整...

2020-04-23 20:26:38 214

原创 C++模版使用分析

这一篇主要是总结c++模板。目录模板产生的背景函数模板使用示例类模板在类模板外部定义成员函数使用示例默认模板类型形参使用示例函数模板针对仅参数类型不同的函数;类模板针对仅数据成员和成员函数类型不同的类。模板产生的背景使用模板的目的就是能够让程序员编写与类型无关的代码。比如编写了一个交换两个整型int 类型的swap函数,这个函数就只能实现int 型,对double,字符这些类型无法实现...

2020-04-21 21:56:02 205

原创 redis数据结构分析(上)

redis基本数据结构动态字符串使用示例内存空间预分配分配内存步骤示例惰性空间释放SDS vs C语言字符串链表使用示例链表的底层存储结构linkedlist和ziplist单独使用的缺点ziplist(压缩列表)ziplist的结构ziplist中entry节点的结构entry示例ziplist连锁更新ziplist的遍历从前向后遍历从后往前遍历quicklistquicklist配置项(1) ...

2020-04-16 21:27:33 220

原创 LRU算法及其变种算法原理分析

这一篇主要介绍缓存替换算法LRU及其变种算法的实现原理。LRU(Least Recently Used)算法最近最少使用算法,核心思想是:最近使用的数据很大概率将会再次被使用。而最近一段时间都没有使用的数据,很大概率不会再使用。做法:把最长时间未被访问的数据置换出去。这种算法是完全从最近使用的时间角度去考虑的。执行过程理解:在缓存中查找客户端需要访问的数据 如果缓存命中,则将访问的数据...

2020-04-13 21:43:27 3526 1

原创 ceph monitor获取monmap源码解析

(1)进入probing状态,在需要执行mkfs时首先判断是否存在monmap,如果存在,则判断其读取是否会出错;如果不存在,则新建一个monmap。(2)判断monmap中initial quorum中是否包含自身,如果包含,目前没有对其中绑定的ip进行校验;当monmap中initial quorum中不包含自身时,如果monmap中包含g_conf->public_addr,则将mo...

2019-04-23 19:08:04 820

原创 ceph crush算法分析

数据分布算法(1)集中式的元数据查询,如hdfs(2)分布式算法,例如一致性哈希算法,如crush算法步骤:1、pool_id+hash(object_id)得到pg_id2、针对每一个osd,通过同样的常量r,CRUSH_HASH(PG_ID, OSD_ID, r) 得出一个不同的随机数,然后使用自己的随机数与osd的weight相乘,得到draw,选出其中最大的draw值作为第一个o...

2019-04-22 19:43:32 959

原创 Bluestore--bluefs初始化部分源码解析

osd::mkfs()----BlueStore:mkfs()--------Bluestore::_open_db()-----------Bluefs->add_block_device()-----------Bluefs->add_block_extent()-----------Bluefs->mkfs()-----------Bluefs->moun...

2019-03-04 22:19:58 1659

原创 two sum

#include<iostream>#include<vector>using namespace std;class Solution { public: vector<int> twoSum(vector<int>& nums,int target) { vector<int>::iterator it,it1; vec

2017-03-11 19:58:25 327

原创 c++ primer读书笔记170119

重看了一遍第一章问题1:c++中针对内置类型已经进行变量定义未初始化时的变量值处理。是否设置默认值?①. 全局变量编译器会赋初值,局部变量则需要自己初始化,否则编译器报错;②. 全局变量整型赋值系统赋初值为0,其他数值类型(float、long、double)应该都是,而char和string类型系统赋初值分别为’\0’空字符,即ASCII码0,而string是空字符串”“。③. 静态变量无论全

2017-01-19 22:10:22 313

原创 结构体中内存对齐&&大端小端模式

(题目来自牛客网)在一个64位的操作系统中定义如下结构体:struct st_task{ uint16_t id; uint32_t value; uint64_t timestamp;};同时定义fool函数如下:void fool(){ st_task task = {}; uint64_t a = 0x00010001; memcpy(&

2017-01-12 16:04:22 3165 1

原创 结构体共用体占用空间区别&&内存对齐

(题目来自牛客网)在32位机器上设有以下说明和定义:typedef union { long i; int k[5]; char c;} DATE;struct data { int cat; DATE cow; double dog;} too;DATE max;则语句 printf("%d",sizeof(struct data)+si

2017-01-12 10:58:34 3949

原创 strcpy相关常见面试问题【1】

(代码来自牛客网——C/C++常考面试题)代码段【1】void test1(){ char string[10]; char* str1 = "0123456789"; strcpy( string, str1 );}这段代码中str1中末尾有隐藏字符\0,表示字符串的结束,因此将str1复制给别的字符串时至少需要11个字节的空间,而string只有10个字节的空间,因此使用strcpy复

2017-01-10 16:40:33 609

原创 112. Path Sum(y)

112. Path Sum问题描述: 找到一条从根节点到叶子节点的路径,其上所有节点的值之和等于给定的sum。算法思路: 基本上为二叉树的深度遍历,针对sum值可以根据层级逐次减去一部分值。A 是第一个访问的,然后顺序是 B、D,然后是 E。接着再是 C、F、G。 在遍历了根结点后,就开始遍历左子树,最后才是右子树。借助堆栈的数据结构,由于堆栈是后进先出的顺序,由此可以先将右子树压栈,然后再对

2016-06-23 15:47:21 315

原创 python操作MongoDB数据库

查看当前python版本#python –version查看当前pip版本#pip –version显示没有安装pip,因此执行命令进行安装#apt-get install python-pip安装pip完成后,使用pip命令安装pymongo#pip install pymongo至此,安装完成。测试:编写测试脚本:test.pyfrom pymongo import MongoClientmc

2016-05-17 10:25:06 561

原创 326. Power of Three

326. Power of Three自己写的:(java)public class Solution { public boolean isPowerOfThree(int n) { double logarithm = Math.log10(n)/Math.log10(3); System.out.println(logarithm); i

2016-05-12 10:57:30 339

原创 编写mapreduce程序实例——数据去重

每一行为一个日期及一个人名字,分为3个文件,其中存在多行重复数据,需要进行去重。输入文件:file1: 2006-6-9 a 2006-6-11 b 2006-6-21 c 2006-6-10 a 2006-6-11 b 2006-6-30 e 2006-6-9 a 2006-6-26 dfile2: 2006-6-9 a 2006-6-11 b 2006-6-9 a 200

2016-05-09 11:04:09 4773

原创 9. Palindrome Number 判断数字是否为对称

9. Palindrome Number问题:给定一个int型数据,判断是否为回文数字,也就是说数字是否对称,例如“12321”“1221”。自己写的:(java)public class Solution { public boolean isPalindrome(int x) { if (x<0) { return false; }

2016-05-09 09:36:53 735

原创 8. String to Integer (atoi) 字符串转为int类型的所有可能情况

8. String to Integer (atoi) 问题:输入一个字符串,将字符串转为int类型,处理所有可能的输入情况。可能的输入情况:明天早上来总结,先传代码吧。。自己写的:(java)public class Solution { public int myAtoi(String str) { str=str.trim(); char[] charS

2016-05-08 21:28:51 2249

原创 7. Reverse Integer 反转int

7. Reverse Integer问题:反转int,当有负号时需要保留负号。解决思路:1、先将int类型转换为string,按照之前写过的string类型做好反转,再转为int类型。2、不做类型转换。先将负数转换为正数进行统一处理,然后int类型数每次%10得到的余即依次为个、十、百…位上的数字。自己写的1:(java)这里是根据思路1来做的,发现在string类型转为int类型时容易抛出异常,无

2016-05-06 09:48:57 3778 1

原创 6. ZigZag Conversion

6. ZigZag Conversion问题:将锯齿形排列的字符串恢复成正常便于阅读的顺序。自己写的:(java)public class Solution { public String convert(String s, int numRows) { if (s.length() <= 0) { return ""; }

2016-05-04 15:39:01 413

原创 编写MapReduce程序示例——求平均成绩

输入文件:由于不识别中文,所以暂时使用姓名拼音jiangxin 94 wangziwen 78 yangzi 83 wangkai 89 jiangxin 80 wangziwen 84 liutao 90 liutao 82 jiangxin 76 wangkai 77 wangkai 91 yangzi 86 jiangxin 88每一行为一个学

2016-05-04 11:08:47 2994

原创 1. Two Sum

1. Two Sum 问题:给定数组中找到两个数之和等于特定值。自己写的:(java)public class Solution { public int[] twoSum(int[] nums, int target) { int resultTag = 0; int i=0,j=0; outterLoop:for (i = 0; i <

2016-05-03 16:05:30 351

原创 141. Linked List Cycle 判断单链表中是否有环

141. Linked List Cycle 问题:给定单链表,判断是否存在环。 要求:不使用额外空间。判断方法: 1、从链表头开始遍历整个链表,并且记录已经遍历过的结点地址,如果发现有正在遍历的结点是已经遍历过的,则说明是存在环的。但是这种方式就需要使用额外的空间来存放遍历过的结点地址。 2、设置两个指针,p和q,p从链表头开始,每次向前走一步,而q每次都从链表头开始,走到p会到达的结点

2016-05-03 11:15:49 681

原创 345. Reverse Vowels of a String

问题: 345. Reverse Vowels of a String问题描述: 仅翻转字符串中的元音字母。自己写的:(java)public class Solution { public String reverseVowels(String s) { String[] strSSplitArray = s.split(""); int newArra

2016-04-29 11:10:38 1153

原创 344. Reverse String

从今天开始啦,每天完成一个leetcode的算法题,使用语言java!!加油~^_^~~问题:344. Reverse Stringjava自己写:public class Solution { public String reverseString(String s) { String[] strSSplitArray1 = s.split(""); Str

2016-04-28 17:35:14 425

原创 Hadoop实例WordCount程序修改--词频降序

修改wordcount实例,改为: 1、 对词频按降序排列 2、 输出排序为前三,和后三的数据首先是第一项: 对词频排序,主要针对的是最后输出的部分。**分析程序内容:** WordCount.javapackage org.apache.hadoop.examples;import java.io.IOException;import java.util.StringTokenize

2016-04-19 16:49:04 7569 1

原创 在windows下搭建hadoop工程(二)之 WordCount 作业测试

四、WordCount.java测试1、测试准备wordcount.java程序是用来统计词频的,因此这里需要先建好输入文件。/test/input/ 但是发现从eclipse上传到hdfs中的文件大小始终都为0尝试使用hadoop shell的方式来创建文件。 在执行文件上传命令时会抛出异常: File /tmp/wordcount/1.txt could only be replicate

2016-04-12 17:08:28 5583

原创 windows下搭建hadoop工程(一)

一、安装文件准备 1:下载好hadoop-1.0.0.tar.gz, 下载地址是https://archive.apache.org/dist/hadoop/core/hadoop-1.0.0/ 2:解压到D:\hadoop\cygwin\zhangmanyi\目录下。二、启动hadoop 1、修改hadoop配置文件,在conf目录下,修改mapred-site.xml、core-site

2016-04-12 09:21:51 4582 1

原创 HDFS原理分析(u)

HDFS(Hadoop Distributed File System)Hadoop由两部分组成,HDFS(分布式文件系统)以及MapReduce(分布式计算框架),其中HDFS用于大规模数据的分布式存储,MapReduce构建在文件系统智商,对存储在分布式文件系统中的数据进行分布式计算。 分布式文件系统是一个独立存在的模块,用户可以根据接口来自己构建文件系统,但是一般会默认使用HDFS。HDFS

2016-03-30 19:05:18 1410

原创 MapReduce编程模型及hello world实例(u)

MapReduce由Map和Reduce两个阶段组成,用户自己编写map()和reduce()两个函数。举例“hello world”程序:用来统计输入文件中每个单词出现的次数。Map:map (String key, String value) : words = SplitIntTokens(value) ; for each word w in words : Emi

2016-03-29 14:20:38 2640

原创 hadoop在windows下的环境搭建

因为在ubuntu server上面不知道怎么启动eclipse啊,因此还是选择在windows上面搭一个吧~一、首先需要使用的软件有: 1、 JDK,推荐版本1.6以上,这里下载版本是1.8.0_77 32位 http://download.oracle.com/otn-pub/java/jdk/8u77-b03/jdk-8u77-windows-i586.exe 2、 Ant,推荐版本

2016-03-25 14:42:04 1783

空空如也

空空如也

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

TA关注的人

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