- 博客(12)
- 收藏
- 关注
原创 一种一致性HASH算法的实现方法,附核心代码
一致性HASH算法 一致性HASH算法的原理,还有不带虚拟结点的一致性HASH算法就不说了,直接谈一下带虚拟结点的一致性HASH算法,主要从实现的角度谈一下。整个过程包括初始化环形数组,添加结点,删除结点,查找结点等等。先看存储结构:class ConsistentHash{ enum STATUS{ EMPTY=0,
2015-06-30 18:07:03 905
原创 搜索相关服务
1,用户打开一个带搜索引擎的站点触发的第一个服务是热门搜索服务,给用户展现最近一段时间内该搜索引擎搜索量最大的几个词,此时如果用户从热门搜索词里面找到了自己想要搜索的词,直接点击即可。 2,下拉列表服务,当用户有搜索需求,热门搜索满足不了需求时,就要在搜索框输入搜索关键字了,输入的时候会出来一系列的下拉提示,此时调用的是下拉列表服务。
2015-06-28 12:00:21 492
原创 基本算法-MD5
一,描述 MD5报文摘要生成算法在数据安全和通信领域有着广泛的应用,最早应用于信息传输过程中防止数据被中间修改,一直到现在的存储领域做为文件的指纹来实现一些更加复杂的功能,比如视频网站,新视频上传的时候会生成一个视频对应的MD5指纹,后继再有同样的视频上传的时候通过md5指纹就可以判断当前上传的视频是否已经被上传过,通过这种办法即可实现秒传视频。二,库 linux的
2015-06-27 14:20:09 746
原创 namenode倒换原因分析
一,namenode倒换原因分析 ZKFC做的HA的HADOOP集群,某信升级网络以后,经常在凌晨出现这种会话超时的情况下面是zkfc的日志,初步认为是网络问题引起的,以前的超时时间为5000ms.2015-06-23 11:34:53,393 INFO org.apache.hadoop.ha.SshFenceByTcpPort.jsch: Caught an exception, l
2015-06-24 12:45:33 1877
原创 zookeeper使用问题汇总
一,现象 zookeeper版本是3.4.5Unexpected Exception:java.nio.channels.CancelledKeyExceptionat sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:55)at sun.nio.ch.SelectionKeyImpl.interestO
2015-06-23 12:42:11 5771 3
原创 基本算法,求交集
一,交集运算算法 求多列数据的交集是一种应用广泛应用的算法,例如在搜索应用中,一个搜索关键词被分成了多个Term,每个Term对应一个倒排链表,那个整个搜索关键词的搜索结果就是各个Term对应倒排链表元素的交集。二,算法/*************************************************************************
2015-06-17 16:40:36 2778
原创 搜索基本概念
文本相关性,是搜索技术相关的最基本的概念,是单从文本的字面上来计算一个搜索的关键词与一篇文章的相关性。是搜索排序的一项重要因素,有多种计算文本相关性的方法,如余弦值计算,TF/IDF计算等等,下面介绍一下TF/IDF。一,TF/IDF TF/IDF(Term Frenquency/Inverse Term Frenquency),称之为词步与逆向词频。 TF:词频,广义的词
2015-06-15 09:41:16 871
原创 hadoop相关问题-stop-all.sh
1,pid 文件丢失问题 如果hadoop不指定pid的文件路径,默认的路径在/tmp下面,linux会定期清理/tmp目录,导致里面的pid文件消息 ./stop-all.sh执行的时候直接从/tmp下面查找pid文件,因为已经被系统删除,便会提示找不到文件。会导致停止集群失败。 这时可以根据系统里面正在运行的hadoop进程相关信息重构一下这些PID文件。即可执行成功
2015-06-09 14:52:13 913
原创 搜索技术概述
搜索技术概述 搜索引擎是一个广义的概念,包括广义上的大搜索,如google,baidu,sogou等等,也包括一些垂直或领域的搜索,如电商搜索,企业知识库搜索等等。它们的区别很大程序上是数据源的不同,进而导致的数据量上的不同,当然设计的复杂程都相差很大。 从企业应用的角度来讲,无非是直接使用开源的框架如基于lucence的solr框架,该框架支持分布式搜索,使用相当
2015-06-09 09:41:42 870
原创 设计模式之单体模式
一,应用场景 全局范围内只生成一个对象,比如常见项目中的配置管理部分,通常就是一处初始化,全局使用。 单线程可以用单线程的模式,多线程就需要考虑到线程安全问题,可以借助pthread_once_t,pthread_mutex_t来实现线程安全二,源码 包括单线程版本与线程安全版本,附简单的测试代码。 /********************
2015-06-06 11:33:25 566
原创 常用算法之-快速排序
一,快速排序 快速排序做为o(nlogn)的内存排序算法,在日常工作和工作面试过程中出镜率也是相当的高。 最差的情况是快速排序的时间复杂度会下降到冒泡的级别,即 o(n*n) 有一些方法来规避这个问题,比如选择随机的枢纽记录。 下出给出了一个,固定枢纽记录的方法。二,C++代码/******************************
2015-06-05 10:37:42 570
原创 常见查找算法之—二分查找
一,二分查找 二分查找也称拆半查找,算法做为时间复杂度为o(nlog(n)的算法,也属于在项目中经常会被用到的算法之一 基本步骤: 1,待查找元素与有序表中间元素比较。 2,比中间元素大,修改左边界为中间位置加1,执行第1步。 3,比中间元素小,修改右边界为中间位置减1,执行第1步。二,源代码 下面是基于C++实际的源码。 /********
2015-06-04 10:31:09 471
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人