自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (1)
  • 收藏
  • 关注

原创 Hadoop MapReduce Streaming小实验:单词计数

Hadoop MapReduce小实验:单词计数 输入:单词列表文件,里边的部分单词会重复,每个单词以换行分开。goodsunapplesun…… mapper程序:利用AWK脚本再每个单词后边添加TAB和“1”。此时,单词是key,数字“1”是value,代表单词出现了一次,key和value之间用tab分开。#!/usr/bin/awk -f{pri

2017-09-03 23:34:05 935

原创 PHP的最大递归层数

PHP的最大递归层数跟程序内存限额有关。php5默认允许一个程序使用128M的内存,因此当你的递归层数过大导致128M内存耗尽时,程序会产生一个致命错误并退出。 编辑php.ini文件可以更改PHP的最大内存使用限制:; Maximumamount of memory a script may consume (128MB); http://php.net/memory-lim

2017-09-02 10:39:23 3775

原创 解决wordpress部分博客文章页面无法显示的问题

搭建完wordpress,试着写了一篇博客。文章发布后,首页已经能显示出文章的标题,但是点进去后却提示该页无法显示。百度一番,先后尝试网上的修改apache配置等方法后依然无效。折腾到最后无意间发现,这个问题是由于wordpress生成的链接中包含中文字符导致的。手动修改链接为纯英文,问题解决。修改方法如下图所示。现在问题解决了,但是每次编辑完文章都要改下链接似乎也不太方便。对于想

2017-06-22 20:06:34 17071 7

原创 利用阿里云搭建wordpress个人博客

系统环境: 服务器:阿里云ECS1核 2GB系统:阿里云提供的CentOS 7.2 64位 安装: 安装PHP:yum install php php-develyum install php-mysqlyum install php-gd  #用于提供剪裁功能支持 安装apache:阿里云提供的Centos镜像是带apache的,不

2017-06-21 23:25:29 1957

原创 c++多线程编程遇到的问题小结

众所周知,多线程编程很容易遇上诸如丢失更新、脏读、死锁等烦人的线程冲突问题。多线程的问题一旦发生便很难定位和解决,所以要在编程的初始阶段就要注意避免多线程程序常见的错误。下面总结一些个人在c++多线程编程中遇上的问题。1、类中的数据成员要尽可能设置读写专用函数,并且在函数中用互斥锁进行并发保护。解决线程冲突的最基本方法,不用多解释。2、类中的成员函数要尽量避免在没有保护的情况下对某个成

2014-08-21 19:43:31 5096

原创 在python中扩展c语言模块

有一个以前写的c语言代码,我想把它用在python程序中。我先是看了《python基础教程》一书中的方法,书中说可以用swig加python内置distutils模块的方法来实现。我照着书上的步骤试了试,结果在导入模块的时候总是提示“ImportError: dynamic module does not define init function (initprintf)”。起初我以为是so文

2014-08-16 14:38:04 2256

原创 epoll所属IO模型的个人 见解

最近在学习IO模型,就突然想到了epoll属于哪个IO模型这个问题。要研究这个问题,我们首先要知道有哪些常用的IO模型。常见的IO模型如下:阻塞IO:程序阻塞直到IO可用。最简单的IO模型,你平时调用的recvfrom接收函数就属于这个模型。非阻塞IO:程序调用IO函数后立刻返回,无论当前IO可用不可用。如果你把套接字设置成了非阻塞模式,那么你使用的就是这个模型了。复用IO:程序阻

2014-08-16 13:53:30 2594

原创 hiredis中异步的实现小结

一般情况下我们使用的都是hiredis的同步通信机制,这种机制下每当你向服务器发送命令请求,程序都会阻塞直到收到服务器的回复并处理。而如果采用异步通信,程序就不需要阻塞等待服务器的回复,而是直接继续执行后边的代码,当服务器回复到来后由程序中预先注册的回调函数来处理回复。

2014-08-15 13:14:19 15197 3

原创 yii框架:CDbConnection failed to open the DB connection: could not find driver的解决办法

这个问题是因为php中缺少pdo mysql造成的

2014-08-09 14:10:14 9608

原创 linux下php中找不到php配置文件php.ini的解决方法

首先需要说明的是,如果你的php是编译安装的,那么默认是没有php.ini的,你必须自行去源码包里边拷贝。之后运行phpinfo()命令可以看到php指定的配置文件路径,把配置文件放到这个路径中即可。

2014-08-09 14:08:44 10882

原创 mysql数据库拷贝

我们经常会有这样的需求,将某个服务器上的mysql数据库完整拷贝到其他机器上,比如数据库迁移。要想做到这点最简单的就是使用mysql提供的现成工具:mysqldump。    使用mysqldump的时候需要指定账号、密码、主机等信息。    例如:mysqldump -h 10.10.8.12 -u backup -P 6071  -p backup_db >backup_db.mysq

2014-08-04 15:57:12 1570

原创 php Warning:date(): It is not safe to rely on the system's timezone settings

这个问题是因为你没有设置php的默认时区。打开/etc/php.ini,然后找到date一栏,添加以下内容:date.timezone = Asia/Shanghai之后还要重启apache:service httpd restart

2014-08-04 13:59:12 611

原创 yii框架搭建异常:Application runtime path is not valid

这个错误通常是因为yii对runtime path没有权限造成的。起初我按照网上的方法吧提示中的runtime path的权限设为777,但是问题依然存在。检查apache的设置,没有任何问题。接着我考虑是不是SELinux的问题,关闭SELinux,问题果然解决了。看来以后只要遇上文件权限相关的问题,都要考虑是不是SELinux在作怪。

2014-08-04 13:58:06 1340

原创 yii框架搭建问题:PHP Fatal error: require_once(): Failed opening required

这个问题一般是由于你的yii程序所在的目录无法被apache读造成的。把yii程序目录移动到apache可读的目录,例如/var/www/html即可解决这个问题

2014-08-04 13:56:21 14165

原创 mapreduce任务失败、重试、推测式执行机制小结

mapreduce中我们自定义的mapper和reducer程序在执行后有可能遇上出错退出的情况,mapreduce中jobtracker会全程追踪任务的执行情况,对于出错的任务mapreduce也定义了一套自己的处理方式。

2014-07-30 10:44:14 4771

原创 c++中析构函数调用时机的研究

众所周知,c++中的每个类都会有一个析构函数,当这个类的对象被销毁的时候,对象会自动调用析构函数。那么什么情况下对象的析构函数会被自动调用呢?其实这个问题也可以换种方式问,什么情况下对象会被自动销毁。

2014-07-29 11:43:00 2065

原创 利用sendmsg和recvmsg来指定发送接口或者获取接收数据接口

前言    sendmsg和recvmsg函数是一对相对下层的套接字发送、接受函数。通过这对函数,我们可以设置或者取得数据包的一些额外的控制信息,这些信息中比较常用的就是本文要介绍的发送、接受接口信息。通过这对函数,我们可以指定一个数据包发送的时候使用的接口(网卡)或者获得一个接受到数据包的来源接口。sendmsg函数使用sendmsg(fd, &mhdr, 0)函数中最重要的就是ms

2014-07-13 19:33:22 3715

原创 Linux下利用signal函数处理ctrl+c等信号

前言    linux下可以通过信号机制来实现程序的软中断,是一个非常有用的编程方法。我们平时在程序运行的时候按下ctrl-c、ctrl-z或者kill一个进程的时候其实都等效于向这个进程发送了一个特定信号,当进程捕获到信号后,进程会被中断并立即跳转到信号处理函数。默认情况下一个程序对ctrl-c发出的信号(SIGINT)的处理方式是退出进程,所以当我们按下ctrl-c的时候就可以终止一个

2014-07-13 17:53:09 43217

原创 linux套接字通信之recv中的缓存机制的研究

以前一直有这么一个小小的疑惑,当一个进程注册一个套接字后,如果这个套接字没有被调用recv函数接受数据包,那么这个套接字能接受到数据包吗? 或者这样说,如果我的程序注册了一个套接字去接受数据包,但是每收到一个数据包都需要很长一段时间处理,并且在处理数据包的途中recv函数使没有被调用的,那么如果程序再处理数据包的途中有数据包到来,那我的程序会不会漏过这些数据包(那个包到达的时候程序在处理别的包,而

2014-07-13 17:29:47 1603

原创 centos下hadoop的安装

hadoop的安装不难,但是需要做不少的准备工作。一、JDK需要先安装jdk。centos下可以直接通过yum install java-1.6.0-openjdk来安装。不同发布版的安装方式可能不一样。    之后,需要设置ssh为密钥认证登录。如果没有这一步,那么以后每次hadoop运行的时候都会提示输入密码。可以直接ssh-keygen -t rsa一路回车生成ssh的密钥对,然

2014-07-13 17:25:01 849

原创 linux系统中各个路由表的研究

linux中有0~255共256张路由表。其中0号表示unspec(未指定),253,254,255分别表示default、main、local表。除了以上4张表外的其他表都是留给用户指定的表。现在就说下以上5张系统表的作用。    首先是0号表unspec。这张表可以理解成所有路由表的总和,也就是说所有路由表中的路由条目在这个表中都会有一条相对应。这样如果想看看系统中所有路由表的路由条目就可

2014-07-13 17:23:31 2409

原创 hadoop集群搭建datenode为0问题的解决

搭建了一个小的实验集群,一共4台机器,一台namenode,三台datenode。执行start-all,发现在namenode上没有报任何错误,但是启动后直接显示datenode数量为0。    到datenode上查看日志,发现有这么个错误: ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException

2014-07-13 17:21:22 3698

原创 hadoop steaming中ERROR:Job not successful. of failed Reduce Tasks exceeded allowed limit.的解决办法

用hadoop streaaming写了个小的mapreduce实验程序,脚本如下:#! /bash/shhadoop jar /usr/share/hadoop/contrib/streaming/hadoop-streaming-1.2.1.jar \-input intest \-output outtest \-mapper cat \-reducer cat\

2014-07-13 17:19:55 4347 1

原创 c++中引用的一些研究

前言在c++中,一个变量的引用代表这个变量的别名。如果我们为一个变量定义了引用,则对该引用的操作等效于对所引用的变量的操作。那么,如果在一个函数中返回引用类型,将会产生什么样的现象?引用作为返回值下边写一个简单的程序演示引用作为返回值的情况。class ts{public: ts() {

2014-07-02 15:55:42 785

原创 NoSQL数据库简介

前言NoSQL:not only SQL(可不是No SQL啊),它的意义是:在适用关系型数据库的时候使用关系数据库,但是在不适合用关系型数据库的地方使用其他数据库。NoSQL的出现主要是为了弥补关系型数据库的不足,可以算是关系型数据库的一个补充吧。但是必须明白一点,NoSQL不是为了取代关系型数据库,也无法取代关系型数据库,它和关系型数据库是各有优点的。和关系型数据库的比较要讲解No

2014-07-01 19:30:25 1162

原创 redis数据库的设计实例

本文介绍如何使用redis实现一个小的微博系统(该例子来源于redis官网文档)。首先,我们要设计我们的redis数据库。对于关系型数据库,设计数据库通常等同于设计table、模式等。对于redis我们是不需要这些的,所以我们只需要设计我们程序中的数据结构用什么key、用哪种value表示就足够了。我们首先要设计的是用户信息这个数据结构,它里边会包含username, userid, pass

2014-07-01 19:25:39 12162 1

原创 linux中epoll模型的总结

一、前言    epoll是Linux下的一种IO多路复用技术。简单的说就是可以实现对多个文件描述符的管理和操作,比如说同时监听多个套接字。epoll的功能跟select很像,但是又能够解决select在大规模并发网络应用场景下效率低下的问题,绝对是大型网络程序(Http服务器)的利器。二、epoll的特点    为了凸显epoll的特点,先来讲一下select

2014-06-22 19:44:33 828

原创 linux下c++编译入门小结

最近在linux下学习c++,发现linux下编译c++程序和编译c程序还是有不少区别的。    先是照着书上的例子把习题的源代码敲了进去,然后直接gcc编译,结果报出n个错误。首先是提示编译器比支持c++,看来是编译器的问题。直接yum search gcc,结果在里边发现一个gcc-c++的包,把这个包装上后gcc是没有问题了。但是一编译,又出了一堆问题。首先是说找不到头文件:error:

2014-06-09 17:18:34 750

原创 linux下出现connect failed: Permission denied错误的解决办法

有两台linux服务器,一台ubuntu13,一台fedora20,我想用iperf命令测试下两台机器之间的带宽。两台机器已经经过配置保证可以相互ping通。试着在ubuntu上运行iperf客户,fedora上运行iperf服务器,但是每当ubuntu运行iperf后都会显示:connect failed: Permission denied。    开始以为是地址什么的写错了,但是检查n遍

2014-06-08 16:41:01 12860

原创 linux套接字通信之recv中的缓存机制的研究

以前一直有这么一个小小的疑惑,当一个进程注册一个套接字后,那么这个进程每次调用recv系函数接收数据的时候,接收的是执行recv期间收到的数据还是一定时期内收到的数据? 或者这样说,如果我的程序收到一个数据包后需要很长一段时间处理,然而在某段时间又突然有一大批包在很短的时间内发过来(短过数据包的处理时间),那我的程序会不会漏过某些数据包(那个包到达的时候程序在处理别的包,而没有调用recv函数)?

2014-06-04 10:48:23 858

原创 fedora下vim的安装

今天用虚拟机新装了个fedora20系统,发现

2014-06-03 15:54:46 4594

原创 ip6tables中nflog的使用

一、前言    iptables中有个非常有用的功能:log。通过log我们可以在内核特定位置抓取我们想要的数据包,之后由用户层的程序接收数据包的log并做相应处理。iptables中的log target主要有以下三种:    1、log    log target会把匹配到的数据包的部分信息输出到dmesg和syslogd中,之后用户可以直接用dmesg或者到log文件中查看,属于

2014-06-02 00:28:46 4242 1

原创 宏定义错误:error: expected ‘;’ before ‘if’的解决方案

今天写了个宏来处理函数返回的结果,结果编译后总是提示:    iplb_core.c:21:33: error: expected ‘;’ before ‘if’    #define CORE_IF_ERROR(res,estr) if((res)但是宏的写法明明是没有问题的,按理不应该处错误的。我又找了会错,发现这句错误后边还跟着一句:    iplb_core.c:202

2014-06-01 16:14:48 18261 1

原创 lib库安装小心得(libnetfilter_log的安装)

最近要写一个iptables的nflog接收软件,去网上找到了一个历程,下载下来安装后提示缺少libnetfilter_log库。软件作者提示可以去netfilter官网上查看此库的说明。于是我便去官网上找到了这个库的文档和下载地址。在这不得不说的是,如果要进行基于linux某些模块的开发工作,这些模块的官网是必须要看的,上面可能有模块的开发说明文档,比如说这个libnetfilter_log模块

2014-05-31 21:38:12 5734

原创 ssh远程连接客户端Xshell莫名其妙输出一大堆“xshell”的原因

用Xshell远程连接到一台linux主机上运行自己编写的代码,经常会莫名其妙地输出一堆“xshell”,甚至程序都没有运行了,命令行依然会输出这些东西。排查了一会,发现这些“xshell”总是跟在一个printf语句后边,而这个语句是把从套接字接受的数据直接以%s的形式输出,看来问题就出现这。我把这句改为输出接收数据的长度而非接收数据本身后问题得到解决。    原来出这个现象时因为格式化输出

2014-05-30 13:25:19 4554 2

原创 使用source insight源码编辑软件显示linux库函数及相关宏定义

source insight是一个非常强大的源码查看软件,它可以分析出源码中各个函数

2014-05-30 12:37:44 4074

原创 ubuntu+win8下samba的搭建

samba可以实现linux主机与windows主机间文件夹的共享,使用与“网络邻居”相同的技术。要想让你的win主机访问某个linux主机的文件夹,首先要在linux主机上建立samba服务器。    samba主要通过配置/etc/samba/smb.conf配置文件来搭建。不过首先当然要确定你的linux机器上安装的有samba啊!如果没有的话可以apt-get install samb

2014-05-30 10:45:45 1464

原创 fedora14中的syslog服务使用小结(获取hostapd的用户接入信息)

一、前言    需要从hostapd程序中获取用户的接入信息,而这个程序也刚好提供了syslog功能,即使用linux的集中式日志管理工具syslog来记录程序运行中的一些信息。在开启程序的syslog功能后,程序会自动把日志记录发送给syslog守护进程进行处理。二、syslog服务的配置    fedora14中的syslog守护进程用的是rsyslog这个进程,这点与其他系统(如

2014-05-27 13:54:46 2110

原创 linux下原始ip数据包包头(tcp头、udp头)的获取和分析

前言    在有些时候我们需要直接抓取并分析原始ip数据包(比如说netfilter内核框架中数据包的分析、原始套接字中数据包的分析),但是我们所能获得的ip数据包通常只是一个若干字节的在连续地址空间中存储的数据,比如存在数组char[MSG_SIZE]中,下面介绍如何分析原始ip数据包中的数据。    在开始分析包头之前我们假设原始ip数据包存储在缓存char buf[MSG_S

2014-05-15 20:25:01 9522

原创 linux下使用iptables ulog+netlink在内核中抓取特定数据包

前言    iptables是linux下基于Netfilter框架实现的防火墙软件。通过iptables我们可以方便的对内核中流动的数据包进行一些处理。iptables拥有强大的log(数据包记录)功能,可以把按特定规则匹配的ip数据包以log的形式传递到用户层供用户分析,这样我们就可以非常方便的了解内核中都有哪些ip数据包在传递以及这些数据包的内容。    iptables有三

2014-05-15 19:45:53 14118 1

Python基础教程(第2版)带目录书签

之前别人的都是没有书签的,我这个把书签加上

2014-01-13

空空如也

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

TA关注的人

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