自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cloudusers的专栏

@linux, c/c++, Internet

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

原创 hadoop之hive在数据检索中的用法

hive:我只用他来检索过日志,对这个谈不上什么精通或熟练,只是会使用而已,可以按需求进行特定的数据检索而已,这个东西很方便,比map-reduce方便很多你可以把他完全当成mysql来用,因为这个也是用的SQL 语句,存储只不过数据不是存在我们常用的mysql等数据库中为什么有map-reduce还要有这个hive呢?我个人的理解是,map-reduce不管你查询什么或计算什么都需要

2013-11-30 23:29:15 2019

原创 搜索中客户的访问日志到底能用来做什么(8)?

再谈访问日志对government的用途每个大的互联网公司都是被关系户 ,  一些敏感词都都是要过滤的, 除了每家网站自身进行过滤外, government会同时给出一份过滤词, 这只是从安全的角度来说, 但是除了这个安全外,我想谈的自已的另外一点看法,当然也是基于访问日志数据价值是巨大的,小到小打小闹的商业化,大到国家国富民强的战略层面首先,可以利用数

2013-11-30 12:57:12 925

原创 搜索中客户的访问日志到底能用来做什么(7)?

"价值往往不在事物的本身,而在于其延伸广度"访问日志即数据的价值不在数据本身而是利用数据产生商业价值我想从另一个方面谈谈这个访问日志的商业化使用我们都使用智能手机上网下载游戏等软件,下载热度一般是某软件的下载数,一般越热点数越高那么这个所谓的点击数真的是用户下载点击数吗?他可靠吗?答案一定是否定的,如果让我给这个大概的估计数量,  我想数值应该是:  各个站点同一软件点

2013-11-30 12:29:01 1044

原创 搜索中客户的访问日志到底能用来做什么(6)?

想到哪写到哪吧,如果看的有点乱请包涵访问日志的扩展功能说的再多我们仍是围绕用户的访问日志,先举个百度指数的例子,下图为百度指数查询李天一我们可以看到用户关注度这个趋势图,那么这个是怎么得到的呢?其实用户的搜索均会有日志,只需要而将这些查询词与访问点击保存即可,(可以用很多种方式保存,不过我估计是采用hbase来存的);同时针对(热点)查询

2013-11-30 10:01:33 994

原创 搜索中客户的访问日志到底能用来做什么(5)?

相关搜索与广告推荐1,相关搜索相关搜索一般指的是搜索词相关的查询,例如在百度中搜索”计算机“一词,最下方会显示计算机,计算器,计算,房贷计算器,.......                   这个其实是页面的补充,因为毕竟程序不能百分百知道你要找的是什

2013-11-30 09:41:30 877

原创 搜索引擎的过程是什么样的呢?

2013-11-30 08:47:52 1220

原创 从数据分布的角度来看 与,或,异或运算

数据分布和这几个运算有什么关系呢?如果把数据分布空间看成一个hash[ 0x00000000 ----   0xffffffff ]   的话,那么与会得到偏向0的hash值;或会得到偏向0xffffffff的hash值;异或得到的相对平坦均匀的hash值;

2013-11-29 19:49:56 888

原创 kill 掉进程的脚本 stop.sh

有时会启动多个进程,其实kill all也可以,但个人习惯了stop.sh循环方式,一个一个的kill -9 与大家分享一下cat stop.sh#!/bin/shprocess=$1while true docnt=$(ps -wwwwaux | grep $process | wc -l)if [ 1 -eq $cnt ]then

2013-11-29 19:01:18 1767

原创 清理脚本滑动窗口方式清理日志文件

程序一般都会生成日志文件,同时也有一个对应的清理脚本,大部分清理脚本都就是crontab中定时启动但如果每分钟一个日志文件,然后需要保持一分钟的滑动窗口进行清理应该怎么办呢?我测试的清理脚本如下示:cat clear.sh#!/bin/shdate=$(date -v -1d +%Y-%m-%d)root=/rootpath/input=$root/data

2013-11-29 18:57:36 1080

原创 服务端研发应具备的技能(2)

1,日志处理通常我们处理文件,大多数都是处理完即程序退出,但在IT行业里,尤其是互联网公司,日志不是一时性的,而是源源不断的一直生成中,所以要求你的程序也需要像linux 下的tail -f命令一样,可以一直跟着文件读并处理日志,当日志文件按时天(或小时或分钟)切换时,也需要日志处理程序也可以无缝的处理那么如何实现模拟linux下的tail -f方式处理目录下日志文件呢?

2013-11-29 17:10:18 887

原创 搜索中客户的访问日志到底能用来做什么(4)?

质量评测算法(方法)各种评测算法或方法都离不开用户的目标点击, 比如用户查询一个word,点击的都集中到了第一页的最后一项,那至少说明你这个第一页排序有问题,没有把用户想要的结果最直接的提供给用户(大部分搜索完都只看前几条,觉得不靠谱就会转个查询词再搜或干脆换个搜索引擎)多说一句:质量评测算法不是主要的,问题是要根据总结的特征修改各引擎数据合并成第一页的展现策略,当然这些个算法或方

2013-11-29 15:57:03 959

原创 搜索中客户的访问日志到底能用来做什么(3)?

为什么搜索的第一页比后面的好?首先,我们主观上的能动性是很底的,意思是我们一般手不想往下页找,希望结果中最好前几条就是期望找的结果其次,每个用户都是这种心理,不像开始的搜索引擎,看谁找的结果数量多,时间短谁就是老大,时代变了,这就要求用户的体验才是第一位再次,即然第一页重要,那么我们的第一感觉就是这个第一页和后面的页面虽然都是格式上一样,但存储访问结构与重要性肯定与后面页是不一

2013-11-29 14:52:31 830

原创 搜索中客户的访问日志到底能用来做什么(2)?

(2)得到ip地址后的处理过程如下是搜索后台已经处理后的数据,而对应的ip则是用户访问日志中的ip当搜索后台得到用户的ip后,就会到后台查询对应的位置,例如,用户ip为116.205.128.0/13  则应当得到Hunan    Tietongdaodianxin信息后台日志test.log116.205.128.0/17    Hunan    Tiet

2013-11-29 11:41:30 859

原创 搜索中客户的访问日志到底能用来做什么(1)?

为什么搜索越做越大越多,定向推荐等越来越准?为什么你在北京搜索商铺饮食等,结果中都是和北京相关的内容?为什么搜索的第一页永远比后面的好?为什么搜索新鲜内容时结果会这么快的更新为你想看的内容?。。。。。为什么?。。。。。。。其实这些答案都有一个来源: 用户访问日志的分析我们先来看来访问日志一般包含哪些内容:客户端的ip,  查询的关键词与对应的url地址,

2013-11-29 10:57:00 783

原创 网络的几种模型概图

网络模型一共有这么几种, loop , fork, select, poll, epoll ..我个人理解它们间的关系与演变过程的原因由下图所示,

2013-11-29 10:08:38 1000

原创 内存分配的buddy算法

buddy算法是用来做内存管理的经典算法,目的是为了解决内存的外碎片。例子  buddy算法将所有空闲页框分组为10个块链表,每个块链表的每个块元素分别包含1,2,4,8,16,32,64,128,256,512个连续的页框,每个块的第一个页框的物理地址是该块大小的整数倍。如,大小为16个页框的块,其起始地址是16*2^12(一个页框的大小为4k,16个页框的大小为16*4K,

2013-11-29 09:52:35 1251

原创 linux c/c++程序是否都是从main函数开始?

请抛弃思维定势以下为《程序员自我修养》片断,共勉

2013-11-28 19:18:22 1958

原创 linux下如何判断elf文件是32位还是64位?

例如一个可执行文件messy,我想知道这个是32位还是64位的,可以用readelf 这个命令,参数为-h在得到的ELF Header中有一项Magic,  这个其实包含很多信息,而这个32位学是64位就对应这个Magic中的第五个值,当为02时即为64位,01即为32位有兴趣的可以试一下readelf -h messyELF Header:  Magic:

2013-11-28 18:45:58 8314

原创 c/c++ 实现curl http地址

其实如果这种实现,个人还是推荐脚本来搞,毕竟脚本方便些, 这里用c/c++,只是代码较方便,从之前写的项目中涉及到的一个curl部分有管用什么实现,写出来只是希望大家需要注意: 业务层,通信层, 协议层(这里我先这么区别,为的是和下面的代码对应方便来说)例如下面的代码中,标红色的地方表示针对业务层上的通信已完成(仅是通信完成,这里并不代表成功与否)而绿色我把这描述成协议层,即通

2013-11-28 18:35:58 1232

原创 c/c++ 类中的成员变量声明时请优先考虑一下排列次序

其实我们知道内存中是以对齐方式存储的,只是我们往往定义一个类的时候对于其中的成员变量很随意的就写上,当然这对程序(类的)实现功能没什么影响,但这确实会对内存产生不必要的浪费cat class.cpp #include using namespace std;class a{ public:    char c1;    char c2;    char

2013-11-28 14:15:23 1051

原创 到底什么是inode?

到底什么是inode呢 ? 这个和我们程序开发到底有多大的关系?首先,必须共识的两点: 1,数据是存放在磁盘中; 2,对于存放位置与其它对应的描述信息亦放在磁盘中; (1,2会在不同的区域)其次,既然是存在磁盘中,我们常说按块存取,这个块是怎么来的呢,大小又是多大? 其实按块存取目的就是尽量多读数据,比如你一个扇区一个扇区的读效率要低些(要多次进行磁盘i/o)所以一次要多读几个扇区

2013-11-27 17:37:40 1458

原创 python 模拟抓取手机访问页面内容今天

以前涉及到python定向蜘蛛均是针对网页版,前天有一版需要与手机上访问一致(注:同一url地址在手机上和PC上搜索是不一样的内容),所以需要将蜘蛛的改成手机的其实只是设置user-agent即可,也没那么麻烦的 import sys, urllib2import urllibfrom urllib2 import Request, urlopen,URLErr

2013-11-26 12:25:37 4754

原创 没有core文件定位bug的可能位置

有时写c/c++程序,运行后出现core, 如果有core文件则可以gdb方便的定位问题,可是,当core文件找不到(或被删除)时如何定位?刚做了个测试,在没有core文件的情况下对程序bug进行定位cat core.cpp 1 #include   2   3 int main(int argc, char** argv){  4   5

2013-11-25 17:08:41 2208

原创 利用百度应用引擎(BAE)抓取百度信息过程

每个大网站都会限制蜘蛛的访问频率,一旦发现那么对应蜘蛛所在IP就会被封锁一段时间如何应对这种问题发生呢?有几个方法1,程序中使用代理,即使被封仍可让服务使用其它代理抓取内容,目前基本都采用这种方法,毕竟网上可以找好多代理,唯一需要调整的策略就是代理的选择与更新2,使用对应网站提供的接口抓取,例如用百度的BAE来部署抓取百度自身内容程序,因为程序是对集群操作,所以可以当成天然的代

2013-11-25 16:00:00 1549

原创 awk多行日志排序输出

今天一同事问一个日志排序问题 , 结果和过程可能比较简单,如果对函数不熟悉的话,只想提一下可以另解的思路test.data内容如下a "t=15" 333 bbba1 xy jfdf 298a2 zz jfdf 298b "t=13" uv mnnnb1 0z asdf aaab2 wif wfinwlk slsc "t=14" sl sldfjdslfc1

2013-11-15 12:36:10 2127

原创 linux 命令行如何模拟map-reduce的实现过程

提起map-reduce ,典型的示例就是词频统计,例如统计词典中单词出现的次数等为什么总用这个示例来说明呢,其实map-reduce就是一个shell 命令的串联过程,只不过用集群的多机来处理,例如有  test.data , map , reduce测试数据和程序文件则map-reduce可以本地概括为:  cat test.data | ./map | sort -k1 | ./

2013-11-13 12:43:25 1407

原创 重复的mysql_init导致日志Can't create a new thread (errno 11)

日志内容形如:E1113 11:08:27.761541 19599 ServiceKV_server.skeleton.cpp:258] MYSQL ERROR: Can't create a new thread (errno 11); if you are not out of available memory, you can consult the manual for a possib

2013-11-13 12:17:32 1233

原创 c/c++目标文件中_ZN****符号是什么意思

c/c++目标文件中符号生成规则 , 常看到形如T _Z4funcidcPc等符号而不知这个是什么意思,其实这个是根据对应函数生成的符号名称,其生成规则为:以_Z开始,如果在命名空间(类中)中的后面加个N,然后是函数名称长度,后面是函数名,后面跟参数类型,如i=int d=double.....  char* = P所以下面这个例如可以描述/*symbol.cpp */

2013-11-12 15:11:00 5365

原创 c++中使用string代替new

对于在函数内申请空间常用的就是new一个区域,然后使用,问题是释放的时机,其实习惯使用智能指针来说这个也都不是问题个人常使用的就是用string,例如return_type func(***){                std::string buf(lensrc, 0);                 Byte * pbyte = (Byte*)&

2013-11-12 14:35:17 1314

原创 类的成员函数作为回调函数的方法

“类中的成员” 函数不能作为本身的回调,如果非要这样弄可以有几个办法,例如静态方式声明,提供this指针等,针对static的话我想失去了回调在类中使用的意义,网上可以搜索下提供this指针方式,之前搜索时候看到过另外就是间接将类中成员变成回调,其过程就是利用间接的一个方法调用这个回调,然后设置回调函数的地方使用这个中间的方法(在此谢过给过帮助的同学)如下我以使

2013-11-12 13:24:36 3065

原创 diff 比较文件差集

日志仅出现在exist.txt中而在comp.txt中不存在其实就是diff命令,然后在结果中把, 等找一下diff -w exist.txt comp.txt | grep \^\

2013-11-10 12:39:28 1270

原创 tar 命令打压缩包

拷数据时多个文件不方便,需要tar打个压缩包,我常用的就是这个tar cvfzP PKG-20120530.tgz --exclude=".svn" *

2013-11-10 12:23:05 919

原创 服务端研发应具备的技能(1)

标题写的有点大,但没关系,如果你是高手,那么可以略过,供参考以此共勉另外说明一点,这些均是在日常工作中常用到的或常使用的方法一,1,日志处理处理方式可以参见”多线程的程序是否真的需要锁?" 这个内容最常用的日志处理就是模拟 shell 中的tail -f方式进行读文件日志然后进行对应逻辑的处理,比如统计日志,解析日志然后将解析结果转存到其它地方等待下游处理,2,

2013-11-10 12:15:32 1194

原创 c/c++ 简单的解析ini配置文件程序

现在基本使用gflags,所以不怎么使用这个读取ini对应的程序或库了,由于ini一般比较方便,所以程序中涉及到的配置文件一般都用conf.ini 针对ini的解析网上也有很多,其实只要你会写程序,完全可以自己定制一个(如果你认为有必要的话,不过我建议不要重复造轮子的好)下面这个是本地编译可用的一个例子,是不是不是那么麻烦?conf.ini[s1]           

2013-11-08 15:49:49 1575

原创 多线程的程序是否真的需要锁?

常需要c/c++程序多线程处理需求,提到多线程就离不开锁的概念,那是不是只要是多线程就需要锁呢? 针对这个多线程使用环境,描述一下涉及到的需求(为方便仅以单机为例说事儿)需求:一个目录下定期会生成日志,例如   /logs/info.2013110101.log ......     需要对这些日志进行某种处理(处理逻辑可能较复杂)方案一:方式: 采用单进程程序,程序读

2013-11-08 15:28:46 1070

原创 google gflag简单的使用方法

google开源的gflags是很好的可配置参数选项,不但可以代替传统的getopt ,个人觉得最好的地方在于定义一次参数选项,其它需要使用gflags的程序模块可以直接引用,而引用的方式只需要声明一下对应的参数即可简单的例子如下,其中标红的就是程序使用某个参数变量的引用方法(a.cpp)#include #include .......DEFINE_str

2013-11-08 14:06:10 1505

原创 google glog在程序中使用方法与注意事项

大部分程序其实是使用封装后的log4jcpp等进行日志处理,对于单机来说可以用glog来打点日志,但需要预先指定日志的输出目录否则均写到/tmp目录下将磁盘写满,需要注意的一点是,高级别的日志向低级别日志扩展,这样输出的日志其实会冗余很大,另外,要将所有的级别日志设置输出目录否则未设置的仍会写到/tmp目录下,以下为本人程序中的写会,供参考(也可能有更好的方法,比如不用全写上所有的级别

2013-11-08 11:58:19 2274

原创 个人推荐Makefile的写法

# set CPUS for Linux or FreeBSDPLATFORM := $(shell uname)CPUS := $(strip $(if $(shell echo $(PLATFORM)|grep Linux),\    $(shell cat /proc/cpuinfo|grep -c processor),\    $(shell sysctl -a | eg

2013-11-08 11:49:32 909

原创 mysql中去除重复4步骤

库表中因为日期up_date没设置unique所以相同日期重复插入删除重复记录(up_date本应该设unique的,导至up_date有重复)共4步:create table table_name1 select min(id) as id from table_name group by up_date;create table table_name2 select t

2013-11-08 11:19:31 669

原创 c/c++编写protobuf 对应的php扩展

目前程序仅针对protobuf写的php扩展svn checkout http://php-extension-protobuf.googlecode.com/svn/trunk/ php-extension-protobuf-read-only 1,根据*.proto 文件用protoc 命令生成*.cc 和*.h文件2,将*.cc 和*.h编成库文件 例

2013-11-08 11:12:48 1297

空空如也

空空如也

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

TA关注的人

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