自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

坚持到底

hadoop 大数据

  • 博客(56)
  • 资源 (11)
  • 收藏
  • 关注

原创 shell——文件描述符和重定向

1.    文件描述符0,1,20——stdin(标准输入)1——stdout(标准输出)2——stderr(标准错误)2. >:表示先清空文件,然后写入,>等价于1> >>:表示将内容追加到现有文件尾部,>>等价于1>>从文件读取至stdin echo “Hadoop ”> temp.txt3.将错误信息写入  ls + 2> temp.txt

2014-03-26 15:55:17 524

原创 shell——基础

1.    运行脚本的两种方式:(1).将脚本作为sh的命令行参数:sh  /path/demo.sh(2).将脚本作为具有执行权限的可执行文件:      chmod a+x demo.sh      ./demo.sh2.~:表示用户home目录的路径。      ~/.bash_history:保存用户运行过得命令。3.#:注释4.chmod [who

2014-03-24 23:18:14 482

原创 shell——终端打印

一.echo1.    echo每次调用后会添加一个换行符2.    echo后面可以带双引号、单引号、无引号3.    无引号-----无法显示分号单引号-----不会对$val求值   4.echo  -e “包含转义序列的字符串”      5.-n忽略结尾的换行符二.printf      可以指定字符串宽度、左右对齐方式!要换行需手动添加。#!

2014-03-24 22:54:36 845

原创 shell——变量、数学运算、数组

一.变量1.    不需要在使用变量前声明其类型,只需赋值就可以,每个变量值都是字符串。2.    查询某进程运行时的环境变量:cat  /proc/$PID/environ   //PID为相关进程idpgrep  应用程序//获取进程id例如:pgrep vi 得到2553     cat /proc/2553/environ     cat  /proc/2553

2014-03-24 22:53:17 1877

转载 中文分词算法——基于统计的分词

1.基于统计的分词(无字典分词)主要思想:上下文中,相邻的字同时出现的次数越多,就越可能构成一个词。因此字与字相邻出现的概率或频率能较好的反映词的可信度。主要统计模型为:N元文法模型(N-gram)、隐马尔科夫模型(Hidden Markov Model, HMM)1.1N-gram模型思想模型基于这样一种假设,第n个词的出现只与前面N-1个词相关,而与

2014-03-17 13:51:04 10910

转载 中文分词算法—— 基于词典的方法

基于词典的正向最大匹配算法,算法会根据词典文件自动调整最大长度,分词的好坏完全取决于词典。 算法流程图如下:转自http://yangshangchuan.iteye.com/blog/2031813

2014-03-17 13:40:10 10744

原创 pthread初识

1.    sleep(unsignedmilliseconds)需要头文件:#include 单位为秒(如果需要更精确可以用usleep单位为微秒)返回值:若进程/线程挂起到参数milliseconds所指定的时间则返回0,若有信号中断则返回剩余秒数。 2.    创建线程:pthread_create(&id,NULL,thread,NULL);函数原型:int p

2014-03-16 22:42:36 728

原创 set

1.  set是一种随机存储的关联式容器,其关键词(key)和元素(value)是同一个值。set之中所有元素互不相同。set是通过二叉查找树来实现的。2.  stl中特别提供了一种针对set的操作的算法:交集set_intersection,并集set_union,差集set_difference。对称差集set_symeetric_difference3.find(1)

2014-03-14 15:30:55 469

原创 map

1.    map是一种关联容器,存储相结合形成的一个关键值和映射值的元素。它的值类型为 pair2.    数据插入: 用insert函数插入pair数据: map1.insert(pair(1, “student_one”)); 用insert函数插入value_type数据:mapStudent.insert(map::value_type (1,“student_one

2014-03-14 15:16:24 530

原创 sort

sort函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。想改变排序的顺序,就要用到第三参数——比较函数。比较函数是一个自己定义的函数,返回值是bool型,它规定了什么样的关系才是“小于”。#include#include#include#include#include#include#include

2014-03-14 14:05:48 552

原创 mismatch,equal比较两序列

mismatch算法是比较两个序列,找出首个不匹配元素的位置。 equal算法类似于mismatch,equal算法也是逐一比较两个序列的元素是否相等,只是equal函数的返回值为bool值true/false,不是返回迭代器值。#include #include #include using namespace std;bool strEqual(

2014-03-13 23:01:08 758

原创 adjacent_find 查找相邻元素

adjacent_find算法用于查找相等或满足条件的邻近元素对。在一个数组中寻找两个相邻的元素。如果相等呢,就返回这两个相等元素第一个元素的迭代器#include#include#includeusing namespace std;int fun(int x,int y){        return (x-y)%2==0?1:0 ;}int mai

2014-03-13 22:57:35 800

原创 for_each

for_each用于逐个遍历容器元素,它对迭代器区间[first,last)所指的每一个元素,执行由单参数函数对象f所定义的操作。#include#include#includeusing namespace std;void fun(int &i){        cout}int main(){        list list1={1,2,

2014-03-13 22:54:34 388

原创 search,search_n

1.     search算法在一个序列中找另一个序列的第一次出现的位置。search(A.begin(),A.end(), B.begin(), B.end());在A中找B这个序列的第一次出现。2.    重复元素子序列搜索search_n算法:搜索序列中是否有一系列元素值均为某个给定值的子序列#include#includeusing namesp

2014-03-13 22:52:43 535

原创 count,count_if

1.   count算法用于计算容器中的某个给定值的出现次数。2.    count_if算法是统计迭代器区间[first , last)上满足条件的元素个数n,按计数n是否引用返回#include#include#includeusing namespace std;int fun(int &i){        return i%2 ? 0:1;}int m

2014-03-13 22:49:11 671

原创 find,find_if

1.  find算法用于查找等于某值的元素。它在迭代器区间[first , last)上查找等于value值的元素,如果迭代器iter所指的元素满足 *iter == value ,则返回迭代器iter,未找则返回last。2.  find_if算法是检查迭代器区间[first, last)上的每一个元素,如果迭代器iter满足pred(*iter)== true,表示找到元素并返回迭

2014-03-13 22:45:42 521

原创 list

要排序一个list,我们要用list的成员函数sort(),而不是通用算法sort()。list容器有它自己的sort算法,这是因为通用算法仅能为那些提供随机存取里面元素 的容器排序。list的成员函数push_front()和push_back()分别把元素加入到list的前面和后面。你可以使用insert() 把对象插入到list中的任何地方。insert(

2014-03-13 22:40:56 492

原创 vector

Vector详解1.   赋值操作:C1=c2c.assign(n,elem);赋值n个elemc.assign(beg,end);赋值区间内元素c1.swap(c2);互换元素swap(c1,c2);2.   元素个数c.size();c.capacity();c.resize(num);c.resize(num , elem);将元素数量改为num,

2014-03-13 22:36:22 479

原创 STL

1.    STL就是Standard Template Library,标准模板库。2.    包括container(容器)、algorithm(算法)和iterator(迭代器),容器和算法通过迭代器可以进行无缝连接。3.   STL六大组件:容器(Container)算法(Algorithm)迭代器(Iterator)仿函数(Function object)适配器(Adaptor)

2014-03-13 22:35:22 567

转载 关于leveldb

本文转自 http://blog.csdn.net/poweruser5956/article/details/7727325Leveldb概述leveldb提供了持久的键值对的存储。key和value为任意的字节数组。键的存储是有序的,可以通过用户自定义的比较函数进行排序。打开数据库leveldb数据库的名字和文件系统目录是一致的。所有数据库的

2014-03-12 21:10:44 2350

转载 mongodb基本使用2

Mongodb基本的原则是:条件句是内层文档的键,修改器是外层文档的键【即,修改器要修改的字段声明在修改器内部】。1、$size,用于查询数组大小为size的记录db.a.find({"comments":{"$size":3}})表示查询comments数组中含有三个元素的记录。既然size可以查询指定数组大小的记录,那么,如果在文档中增加一个size字段,就可以使用 $gt和$

2014-03-11 22:14:14 469

转载 mongodb基本使用1

成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作。输入help可以看到基本操作命令:show dbs:显示数据库列表 show collections:显示当前数据库中的集合(类似关系数据库中的表) show users:显示用户use :切换当前数据库,这和MS-SQL里面的意思一样 db.help():显示数据库操作命令,

2014-03-11 21:51:29 445

原创 mongodb初识

1.      一个mongod服务可以有建立多个数据库,每个数据库可以有多张表,这里的表名叫collection。2.     每个collection可以存放多个文档(document),每个文档都以BSON(binary json)的形式存放于硬盘中,因此可以存储比较复杂的数据类型。3.     它是以单文档为单位存储的,你可以任意给一个或一批文档新增或删除字段,而不会对其它文档造成

2014-03-11 21:50:06 819

原创 mongodb安装

1.     下载mongodb-linux-x86_64-2.4.9.tgz到/usr/local2.    解压tar –xzf  mongodb-linux-x86_64-2.4.9.tgz3.    move  mongodb*  mongodb4.    创建数据文件和日志文件cd /usr/local/mongodbmkdir datatouch logs5

2014-03-11 21:49:19 635

转载 leveldb之Cache

前面讲过对于levelDb来说,读取操作如果没有在内存的memtable中找到记录,要多次进行磁盘访问操作。假设最优情况,即第一次就在level 0中最新的文件中找到了这个key,那么也需要读取2次磁盘,一次是将SSTable的文件中的index部分读入内存,这样根据这个index可以确定key是在哪个block中存储;第二次是读入这个block的内容,然后在内存中查找key对应的value。

2014-03-10 10:51:41 1220

转载 leveldb之Compaction的过程

对于LevelDb来说,写入记录操作很简单,删除记录仅仅写入一个删除标记就算完事了,但是读取记录比较复杂,需要在内存以及各个层级文件中依照新鲜程度依次查找,代价很高。为了加快读取速度,levelDb采取了compaction的方式来对已有的记录进行整理压缩,通过这种方式,来删除掉一些不再有效的KV数据,减小数据规模,减少文件数量等。     levelDb的compaction机制和过程与

2014-03-10 10:49:48 2207

转载 leveldb之根据Key读取记录

LevelDb是针对大规模Key/Value数据的单机存储库,从应用的角度来看,LevelDb就是一个存储工具。而作为称职的存储工具,常见的调用接口无非是新增KV,删除KV,读取KV,更新Key对应的Value值这么几种操作。LevelDb的接口没有直接支持更新操作的接口,如果需要更新某个Key的Value,你可以选择直接生猛地插入新的KV,保持Key相同,这样系统内的key对应的value就会被

2014-03-10 10:48:10 2800

转载 leveldb之写入与删除记录

本节介绍levelDb的记录更新操作,即插入一条KV记录或者删除一条KV记录。levelDb的更新操作速度是非常快的,源于其内部机制决定了这种更新操作的简单性。                                  图6.1 LevelDb写入记录        图6.1是levelDb如何更新KV数据的示意图,从图中可以看出,对于一个插入操作P

2014-03-10 10:45:47 3292

转载 leveldb之Mem Table

1.               所有KV数据都是存储在Memtable,Immutable Memtable和SSTable中的,Immutable Memtable从结构上讲和Memtable是完全一样的,区别仅仅在于其是只读的,不允许写入操作,而Memtable则是允许写入和读取的。当Memtable写入的数据占用内存到达指定数量,则自动转换为Immutable Memtable,等待D

2014-03-08 15:10:59 1310

转载 levedb之SSTable

1.  LevelDb不同层级有很多SSTable文件(以后缀.sst为特征),所有.sst文件内部布局都是一样的。上节介绍Log文件是物理分块的,SSTable也一样会将文件划分为固定大小的物理存储块,但是两者逻辑布局大不相同,根本原因是:Log文件中的记录是Key无序的,即先后记录的key大小没有明确大小关系,而.sst文件内部则是根据记录的Key由小到大排列的上图展示了一个.

2014-03-08 15:05:36 924

转载 leveldb之log文件

1.    log文件在LevelDb中的主要作用是系统故障恢复时,能够保证不会丢失数据。因为在将记录写入内存的Memtable之前,会先写入Log文件,这样即使系统发生故障,Memtable中的数据没有来得及Dump到磁盘的SSTable文件,LevelDB也可以根据log文件恢复内存的Memtable数据结构内容,不会造成系统丢失数据.2.    LevelDb对于一个log文件,

2014-03-08 14:45:12 1825

转载 leveldb整体架构

1.   LevelDb作为存储系统,数据记录的存储介质包括内存以及磁盘文件, 当LevelDb运行了一段时间,此时我们给LevelDb进行透视拍照,会看到如下图:从图中可以看出,构成LevelDb静态结构的包括六个主要部分:内存中的MemTable和ImmutableMemTable以及磁盘上的几种主要文件:Current文件,Manifest文件,log文件以及SSTable文

2014-03-08 14:23:27 2141

转载 leveldb 初识

一.leveldb安装与使用1.  下载leveldb-1.15.0.tar.gz2.  解压tar  -zxvf leveldb-1.15.0.tar.gz3.  cd leveldb-1.15.04.  Make生成libleveldb.a5.  Cp –r include/leveldb /usr/local/include6.  Cp libleveldb.a /u

2014-03-08 13:57:55 1057

原创 scws+xapian(2)

//scw.c#include#include#include#include#define MAXLEN 10240void read_file(const char *filename ,char *dest ,int maxlen){FILE *file;int pos , temp , i;file = fopen(filename , "r")

2014-03-06 17:27:27 826

原创 scws+xapian(1)

//利用scws读取本地文件内容,分词生成terms,写入到本地文件#include#include#include#include#define MAXLEN 10240void read_file(const char *filename ,char *dest ,int maxlen){FILE *file;int pos , temp , i;f

2014-03-06 16:34:19 898

原创 c语言 读取文件内容 文件写入

#include    #include      #define MAXLEN 10240      //读取文件filename的内容到dest数组,最多可以读maxlen个字节    //成功返回文件的字节数,失败返回-1    int read_file(const char *filename, char *dest, int maxlen)    {

2014-03-06 15:11:01 3566

转载 继承与多态6:多态与虚函数

多态与虚函数1. 多态性一个函数可有多种实现形式。同一个函数可通过多种方法进行调用(或用一个相同的名字定义具有不同实现的函数)。由于1)派生类中同名函数的出现;2)基类指针可存放派生类对象地址和基类引用可作为派生类对象的别名,导致了派生类的多态。C++中支持两种多态性,即静态多态和动态多态。静态多态(也称为静态绑定static binding):编译时的多态

2014-03-04 20:58:16 772

转载 继承与派生5:基类与派生类之间的转换

基类与派生类之间的转换C++有时在基类出现的地方需要派生类对象。这时,就需要将派生类对象转换为基类对象。基类与派生类之间的转换要求派生类对基类公有继承。1. 赋值派生类对象可以赋值给基类对象,这时是把派生类对象中从对应基类继承来的成员赋值给基类对象。不允许将基类对象赋值给派生类对象(编译时报错,因为派生类的新成员无值可赋)。例如:[cpp] view

2014-03-04 20:42:11 800

转载 继承与派生4:派生类中对基类成员的重定义

派生类中对基类成员的重定义重定义:在派生类中可定义与基类成员同名的成员,此时在派生类中有两个同名的成员。同名成员:同名数据成员:同名同名成员函数:必须与基类成员函数具有相同原型说明(返回类型、函数名、参数类型与个数),否则为函数重载而非重定义。在一个类中不能定义两个函数原型说明完全相同的成员函数,重定义成员函数只能出现在具有继承关系的类中(派生类)。同名

2014-03-04 20:33:51 3458

转载 继承与派生3:派生类的构造函数与析构函数

派生类的构造函数与析构函数与一般成员函数不同,派生类并不继承基类的构造函数和析构函数。在创建派生类对象时,系统要调用派生类的构造函数。由于派生类中包含从基类继承来的成员和派生类中新声明的数据成员,因此在执行派生类构造函数体前,系统首先要调用基类的构造函数对从基类继承来的数据成员初始化,而后再执行自己的函数体,对新增成员进行初始化。所以派生类构造函数必须调用基类构造函数。当派生类

2014-03-04 20:28:02 1413

hbase thrift python

hbase thrift python gen-py

2013-08-04

经典的信息论与编码题目,你值得拥有

经典的信息论与编码题目 你值得拥有 很经典的题库

2013-01-06

经典的计算机网络题目,你值得拥有!

经典的计算机网络题目,你值得拥有!很经典的题库!

2013-01-06

单片机串口通信

单片机串口通信很经典的接收端程序!你值得拥有哦!

2012-12-24

串口通信程序

单片机真的很经典的串口通信程序,你值得拥有!

2012-12-24

摄像头中的人脸识别

如果你在做人脸识别的相关项目,请参考这个程序,很实用的,效果很好!

2012-07-09

图片中的人脸识别

如果你在做人脸识别的相关项目那么这个代码你不可不看一下,很理想的代码!

2012-07-09

视频目标跟踪

里面有目标跟踪的c++代码,对于玩opencv的人来说很重要哦

2012-05-26

c++类接口。实现

里面有c++代码,有类的接口与实现!这考研叫你怎么写接口,实现!

2012-05-11

信号与系统习题

信号与系统习题!里面有一套题目还包含有答案!对于考研的有帮助哦!

2012-05-11

空空如也

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

TA关注的人

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