摘要:0、前言 本文是学习hadoop后的笔记总结,由于对hadoop了解不深,正处于摸索阶段,所以分析不够透测。本文是记录我的学习过程和学习总结。环境:ubuntu 8.04.4 hadoop1.0.2(hadoop的版本不同,API略有变化)参考书籍: 《 Hadoop权威指南(中文版)》 清华出版社 《实战Hadoop--开启通向运计算的捷径》 刘鹏主编1、Hadoop版的helloworld源码(即wordcount) 源码来自于 /usr/local/hadoop-1.0.2/src/examples/org/apache/hadoop/examples/WordCount.java...
阅读全文
摘要:摘要:该文档解决了多次格式化文件系统后,datanode无法启动的问题一、问题描述 当我多次格式化文件系统时,如 root@localhost:/usr/local/hadoop-1.0.2# bin/hadoop namenode -format 会出现datanode无法启动,查看日志,发现错误为: 2012-04-20 20:39:46,501 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /home/gqy/hado...
阅读全文
摘要:环境:ubuntu8.04.4 hadoop1.0.2 eclipse3.7.2概要:本文主要是记录HDFS中常用API的使用,如文件上传、创建文件、重命名、删除、读取文件内容等。一、实验步骤1、启动Hadoop,切换到超级用户 gqy@localhost:/usr/local/hadoop-1.0.2$ su root@localhost:/usr/local/hadoop-1.0.2# bin/hadoop namenode -format root@localhost:/usr/local/hadoop-1.0.2# bin/start-all.sh 2、打开Eclipse,新建一个..
阅读全文
摘要:概要:在eclipse环境下配置Hadoop的开发环境环境: ubuntu8.04.4 eclipse:Release 3.7.2 Hadoop:hadoop-1.0.2参考前辈资料: http://www.cnblogs.com/flyoung2008/archive/2011/12/09/2281400.html一、配置过程 1、先启动hadoop守护进程 root@localhost:/usr/local/hadoop-1.0.2# bin/hadoop namenode -format root@localhost:/usr/local/hadoop-1.0.2# bin/start-
阅读全文
摘要:一、观察者模式(Observer) 定义了一种一对多的依赖关系,当一个对象的状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。二、四个角色 抽象通知者:Subject(抽象类或接口) 具体通知者:ConcreteSubject类,里面定义一个集合(如List),保存所有的观察者对象 抽象观察者:Observer(抽象类或接口) 具体观察者:ConcreteObserver类三、程序示例抽象通知者//抽象通知者://5个接口方法:增加观察者、移除观察者、设置状态、获取状态、通知public interface Subject { void attach(Observe...
阅读全文
摘要:参考:http://blog.csdn.net/surprisesdu/article/details/605965 http://www.iteye.com/topic/121149一、装饰模式(Decorator) 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活,它是继承的一种替代方案。 与继承的对比: 都能实现功能的扩展,而装饰模式使用的是组合,避免了使用过多继承造成系统的复杂性增加。二、四个角色 抽象接口:给客户端提供功能接口 具体类:实现抽象接口,具体的原始功能类 装饰角色类:实现抽象接口,持有具体类的对象 具体的装饰...
阅读全文
摘要:一、适配器模式 产生的背景: 对于客户的某个需求,有时,现有的类可以提供客户类的功能需要,但是它所提供的接口不一定是客户类所期望的 解决办法: 这时,应将现有的接口需要转化为客户类期望的接口,这样保证了对现有类的重用。如果不进行这样的转化,客户类就不能利用现有类所提供的功能。 适配器模式: 适配器模式建议定义一个包装类(适配器Adapter),包装有不兼容接口的对象(适配者Adaptee)。适配器提供客户类需要的接口,适配器接口的实现是把客户类的请求转化为对适配者的相应接口的调用。二、主要角色 Target:与客户端使用有关的接口 Adaptee:一个已经存在的类,它可...
阅读全文
摘要:一、单例模式(SingleTon) 保证一个类只有一个实例,并提供一个访问它的全局方法二、程序示例单例类//单例模式package com;public class Singleton{ private static Singleton instance = null; //私有化的构造方法,不允许外部通过 new 来产生实例 private Singleton() { } public static Singleton getInstance() { if (instance == null) ...
阅读全文
摘要:参考:http://blog.csdn.net/ipqxiang/article/details/1955677 程杰《大话设计模式》清华大学出版社一、抽象工厂模式 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。二、四个重要角色(类) 抽象工厂、具体工厂、抽象产品、具体产品三、程序示例抽象工厂接口//抽象工厂模式package com;//抽象工厂接口:包括2个product: IUser IDepartmentpublic interface IFactory { IUser createUser(); IDepartment createDepartme...
阅读全文
摘要:环境:ubuntu8.04.4 eclipse-jee-indigo-SR2下载使用了scim中文输入法1、问题描述 在eclipse中编程时,出现打一个字符串后,就不能再输入了。当点击保存工程后,又能继续输入。2、解决办法: a、修改scim配置 sudo gedit /etc/X11/xinit/xinput.d/scim 将xim修改为scim,即为GTK_IM_MODULE=scim b、再次设置系统默认的输入法为scim sudo update-alternatives --install /etc/X11/xinit/xinput.d/all_ALL xinput-all_ALL.
阅读全文
摘要:static C语言 C语言程序可以看成由一系列外部对象构成,这些外部对象可能是变量或函数。而内部变量是指定义在函数内部的函数参数及变量。外部变量定义在函数之外,因此可以在许多函数中使用。由于C语言不允许在一个函数中定义其它函数,因此函数本身只能是“外部的”。 由于C语言代码是以文件为单位来组织的,在一个源程序所有源文件中,一个外部变量或函数只能在某个文件中定义一次,而其它文件可以通过extern声明来访问它(定义外部变量或函数的源文件中也可以包含对该外部变量的extern声明)。 而static则可以限定变量或函数为静态存储。如果用static限定外部变量与函数,则可以将该对象的作用域限定为
阅读全文
摘要:在C++的库函数中,我们可以使用clock()来计算程序的运行时间,主要使用一下三个函数类型及函数:1、clock_t:数据类型,其实,当你打开time.h就知道了,就是个long型,用来记录一段时间内的clocks数,即CPU的运行单元时间;2、clock():返回类型clock_t,返回的是从程序开始,到你调用clock()函数这段时间的clocks;3、CLOCKS_PER_SEC:它用来表示一秒钟会有多少个时钟计时单元,即: #define CLOCKS_PER_SEC ((clock_t)1000) 可以看到每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。下面举个例子
阅读全文
摘要:主要是注意删除末尾的元素时,需要注意测试代码#include <iostream>#include <list>#include <algorithm>using namespace std;int main(int argc, char* argv[]){ list<int> MyList; for (int i = 0; i < 10; i++) { MyList.push_back(i); } list<int>::iterator Itor; for ( Itor = MyList.begin(); Itor ...
阅读全文
摘要:《程序员面试宝典》P99请看下面的程序,说说会出现什么问题?View Code #include <iostream>#include <cstdlib>#include <vector> using namespace std; class CDemo { public: CDemo():str(NULL){}; ~CDemo() { if(str) delete[] str; }; char* str; }; int main(int argc, char** argv) { C...
阅读全文
摘要:用一个宏定义FIND求一个结构体CTYPE里某个变量CNUM相对了CTYPE的编移量。如:stuct student { int a; char b[20]; double ccc; }则:FIND(student,a); //等于0FIND(student,b);//等于4#define FIND( struc, e ) (size_t)&(((struc*)0)- >e)(struc*)0----------表示将常量0强制转化为struc *型指针所指向的地址&(((struc*)0)- >e)--表示取结构体指针(struc*)0的成员e的地址,因为该结构体
阅读全文
摘要:用c语言中的结构体模拟类,用函数指针模拟虚函数表。整个程序用于模拟C++中的多态性,即用基类访问派生类的函数。View Code // c语言模拟多态性#include "stdio.h"#include "stdlib.h"enum ShapeType{CIRCLE,SQUARE,RECTANGLE};//形状类型//建立虚函数表,2个虚函数typedef struct { void (*ShowShape)(); double (*CalArea)(int w);}vtable;//建立基类typedef struct{ vtable *vptr_b
阅读全文
摘要:PeekMessage与GetMessage的对比相同点:PeekMessage函数与GetMessage函数都用于查看应用程序消息队列,有消息时将队列中的消息派发出去。不同点:无论应用程序消息队列是否有消息,PeekMessage函数都立即返回,程序得以继续执行后面的语句(无消息则执行其它指令,有消息时一般要将消息派发出去,再执行其它指令)。GetMessage函数只有在消息对立中有消息时返回,队列中无消息就会一直等,直至下一个消息出现时才返回。在等的这段时间,应用程序不能执行任何指令。(从他们的不同点上来看,PeekMessage函数有点像“乞丐行乞”,有你就施舍点,没有也不强求。GetM
阅读全文
摘要:Mat类型较CvMat和IplImage有更强的矩阵运算能力,支持常见的矩阵运算(参照Matlab中的各种矩阵运算),所以将IplImage类型和CvMat类型转换为Mat类型更易于数据处理。Mat类型可用于直接存储图像信息,通过函数imread、imwrite、imshow等实现(与Matlab中的函数相似),似乎在某种程度上可以取代IplImage类型。(1)将IplImage类型转换到Mat类型Mat::Mat(const IplImage* img, bool copyData=false);默认情况下,新的Mat类型与原来的IplImage类型共享图像数据,转换只是创建一个Mat矩阵
阅读全文
摘要:转自:http://hi.baidu.com/glc400/blog/item/4998ad50fceb62998c5430cb.html以下是ubuntu 10.10 教育网的源:sudo gedit /etc/apt/sources.list#成都电子科大的源,教育网推荐deb http://Ubuntu.uestc.edu.cn/ubuntu/ natty main restricted universe multiversedeb http://Ubuntu.uestc.edu.cn/ubuntu/ natty-backports main restricted universe mu
阅读全文
摘要:环境:ubuntu8.04.41、安装中文输入法 $sudo apt-get install scim scim-modules-socket scim-modules-table scim-pinyin scim-tables-zh scim-gtk2-immodule scim-qtimm $sudo im-switch -s scimhttp://hi.baidu.com/atoooo/blog/item/7a251713f5664dd7f6039e77.html2、Ubuntu在桌面显示回收站 前几天把回收站搞没了,甚是不爽。问了下google,找回来了!打开终端,$gconf-edi
阅读全文
摘要:配置tftp服务的步骤:1、安装相关软件包:tftpd(服务端),tftp(客户端),xinetdsudo apt-get install tftpd tftp xinetd2、建立配置文件在/etc/xinetd.d/下建立一个配置文件tftpsudogedit/etc/xinetd.d/tftp在文件中输入以下内容:service tftp{socket_type = dgramprotocol = udpwait = yesuser = rootserver = /usr/sbin/in.tftpdserver_args = -s /tftpbootdisable = noper_sou
阅读全文
摘要:今天调试程序,碰到一个错误:fatal error C1010: unexpected end of file while looking for precompiled header directive分析:工程头文件处理的错误。解决:1、Project Setting-> C/C++ -> Category(Precompiled header)-> not using Precompiled header2、如果使用的是Win32工程,可能就是错误文件没有包含:#include "stdafx.h" ,添加该包含即可。详细理解,参考:http://w
阅读全文
摘要:一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是只对一部分内容进行编译,这就是“条件编译”。 条件编译形式一为: #ifdef 标识符 程序段1 #else 程序段2 #endif 作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。 例如,在调试程序时,常常希望输出一些所需的信息,而在调试完成后不再输出这些信息。可以在源程序中插入以下的条件编译段: #ifdef DEBUG print ("device_open(%p)\n", file); #endif 如果在它的
阅读全文
摘要:读取图像中任意点的像素值转自: http://www.cnblogs.com/skyseraph/archive/2011/04/04/2005025.html
阅读全文
摘要:环境 :Ubuntu 8.04.4 CPU:inteljdk版本: jdk1.7.0_03 安装步骤: 1、下载jdk。到oracle官网上下载jdk-7u3-linux-i586.tar.gz http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3-download-1501626.html2、直接解压。 tar -xf jdk-7u3-linux-i586.tar.gz 运行该命令后,会自动生成名为 jdk1.7.0_03 的文件夹。为了方便管理,我们新建一个名为 java 的文件夹,把 jdk1.7.0_03放...
阅读全文
摘要:环境:ubuntu 8.04.4 Hadoop1.0.2参考师兄的博客:http://www.cnblogs.com/guoyuanwei/archive/2011/10/17/2215769.html 快速入门:http://hadoop.apache.org/common/docs/r0.19.2/cn/quickstart.html1、安装软件 sudo apt-get install ssh sudo apt-get install rsync2、到hadoop-1.0.2文件夹下,找到conf文件夹,修改配置文件:a)修改conf/core-site.xml:<configur
阅读全文
摘要:环境:ubuntu 8.04.4 hadoop-1.0.2 参考网址: http://www.cnblogs.com/guoyuanwei/archive/2011/10/17/2215749.html http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop1/index.html一、介绍 Hadoop(官网,了解下即可) http://hadoop.apache.org/二、下载Hadoop,我下的是hadoop-1.0.2.tar.gz http://www.apache.org/dyn/closer.cgi/had...
阅读全文
摘要:一、介绍Hadoop http://hadoop.apache.org/二、下载Hadoop,我下的是hadoop-1.0.2.tar.gz http://www.apache.org/dyn/closer.cgi/hadoop/common/三、好的学习资料: Hadoop 快速入门: http://hadoop.apache.org/common/docs/r0.19.2/cn/quickstart.html 师兄的博客:http://www.cnblogs.com/guoyuanwei/archive/2011/10/17/2215749.html http://www.cnblogs.
阅读全文