随笔-26  评论-111  文章-19  trackbacks-0
  2006年10月27日
在Window下启动Hadoop-0.21.0版本时,会出现下面这样的错误提示:

 1 java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName
 2 Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName
 3 
 4         at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
 5         at java.security.AccessController.doPrivileged(Native Method)
 6         at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
 7         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
 8         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
 9         at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
10 Could not find the main class: org.apache.hadoop.util.PlatformName.  Program wil
11 l exit.

经过不断的查找原因和尝试,终于有了解决这个错误的办法,只需要将${HADOOP_HOME}/bin/hadoop-config.sh文件中的第190行的一下的内容

JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} -Xmx32m ${HADOOP_JAVA_PLATFORM_OPTS} org.apache.hadoop.util.PlatformName | sed -"s/ /_/g"`


修改成以下的内容即可

JAVA_PLATFORM=`CLASSPATH=${CLASSPATH} ${JAVA} -Xmx32m -classpath ${HADOOP_COMMON_HOME}/hadoop-common-0.21.0.jar org.apache.hadoop.util.PlatformName | sed -"s/ /_/g"`


posted @ 2010-09-29 17:03 snoics 阅读(12306) | 评论 (7)编辑 收藏
    下载地址:http://code.google.com/p/snoics-retrieval/

    版本更新说明

V1.01

                1、提高创建索引的效率

         2、通过对象池管理IndexWriterIndexReader对象

         3、修正若干BUG

V1.0

         初始版本



基于Lucene的全文检索框架,提供快速方便的索引创建及查询方式,并提供扩展功能对框架进行扩展。

    项目地址:http://code.google.com/p/snoics-retrieval/

    

   环境要求

Java1.5+

Lucene 3.0+



posted @ 2010-09-28 16:33 snoics 阅读(2376) | 评论 (1)编辑 收藏


做了一些小的修改和调整

基于Lucene的全文检索框架,提供快速方便的索引创建及查询方式,并提供扩展功能对框架进行扩展。

    项目地址:http://code.google.com/p/snoics-retrieval/

    

环境要求

Java1.5+

Lucene 3.0+

posted @ 2010-08-18 15:00 snoics 阅读(2065) | 评论 (0)编辑 收藏
     摘要:        对四则运算表达式字符串进行解析后计算出结果,可以使用逆波兰表达式进行处理。        首先说明一下什是逆波兰表达式:         逆波兰表达式又叫做后缀表达...  阅读全文
posted @ 2010-07-29 17:44 snoics 阅读(3369) | 评论 (2)编辑 收藏
     摘要:         基于自己的兴趣,利用业务时间在Lucene基础上做的一个搜索框架,请大家多多指教。 一、        介绍 基于Lucene的全文检索框架,提供快速方便的索引创建及查询方式,并提供扩展功能对框架进行扩展。  &nbs...  阅读全文
posted @ 2010-07-26 08:06 snoics 阅读(2737) | 评论 (0)编辑 收藏
    Myeclipse 7 的插件安装方式与原先的方式完全不一样了,下面以JBossTools-2.1.2.GA插件安装为例进行说明。

    假设
            Myeclipse 7的安装路径为:C:\Genuitec
            JBossTools-2.1.2.GA插件的路径为:  C:\eclipse-plugins\plugins\JBossTools-2.1.2.GA-ALL-win32

    将下面这段代码编译后执行:

    
 1package test;
 2
 3import java.io.File;
 4import java.util.ArrayList;
 5import java.util.List;
 6
 7
 8/**
 9 * Descript: 
10 *
11 *
12 */

13
14public class CreatePluginsConfig {
15    private String path;
16    
17    public CreatePluginsConfig(String path){
18        this.path=path;
19    }

20    
21    public void print(){
22        List list=getFileList(path);
23        if(list==null){
24            return;
25        }

26        
27        int length=list.size();
28        for(int i=0;i<length;i++){
29            String result="";
30            String thePath=getFormatPath(getString(list.get(i)));
31            File file=new File(thePath);
32            if(file.isDirectory()){
33                String fileName=file.getName();
34                if(fileName.indexOf("_")<0){
35                    continue;
36                }

37                String[] filenames=fileName.split("_");
38                String filename1=filenames[0];
39                String filename2=filenames[1];
40                result=filename1+","+filename2+",file:/"+path+"\\"+fileName+"\\,4,false";
41                System.out.println(result);
42            }
else if(file.isFile()){
43                String fileName=file.getName();
44                if(fileName.indexOf("_")<0){
45                    continue;
46                }

47                String[] filenames=fileName.split("_");
48                String filename1=filenames[0];
49                String filename2=filenames[1].substring(0, filenames[1].lastIndexOf("."));
50                result=filename1+","+filename2+",file:/"+path+"\\"+fileName+",4,false";
51                System.out.println(result);
52            }

53            
54        }

55    }

56    
57    public List getFileList(String path){
58        path=getFormatPath(path);
59        path=path+"/";
60        File filePath=new File(path);
61        if(!filePath.isDirectory()){
62            return null;
63        }

64        String[] filelist=filePath.list();
65        List filelistFilter=new ArrayList();
66
67        for(int i=0;i<filelist.length;i++){
68            String tempfilename=getFormatPath(path+filelist[i]);
69            filelistFilter.add(tempfilename);
70        }

71        return filelistFilter;
72    }

73    
74    public String getString(Object object){
75        if(object==null){
76            return "";
77        }

78        return String.valueOf(object);
79    }

80    
81    public String getFormatPath(String path) {
82        path = path.replaceAll("\\\\""/");
83        path = path.replaceAll("//""/");
84        return path;
85    }

86    
87    public static void main(String[] args){
88        new CreatePluginsConfig("C:\\eclipse-plugins\\plugins\\JBossTools-2.1.2.GA-ALL-win32\\eclipse\\plugins").print();
89    }

90}
    
    执行完之后,将控制台中打印出的执行结果,直接复制到下面这个文件中:

    C:\Genuitec\MyEclipse 7.0\configuration\org.eclipse.equinox.simpleconfigurator\bundles.info

    然后用 -clean 命令重新启动Myeclipse即了完成插件的安装。
    
posted @ 2008-12-15 13:41 snoics 阅读(8437) | 评论 (13)编辑 收藏

        “不要重新发明轮子!!!”

        乍听之下,这一句话似乎是很有道理。确实在很多情况下,这句话是很有道理。可是殊不知在这一句冠冕堂皇的理由下,有多少的创意、多少的激情被抹杀了?

        在很多情况下,有些中国的程序员只要自己想做一些有创造性的工作,确总是被上级或其他的某些同行嘲笑“你要做的这个东西已经有现成的了,有必要再花时间去做吗?你能做的比别人做出来的东西更好吗?你这是在重新发明轮子,而且是不好的轮子。”

        结果,一个接着一个的萌芽被‘不要重新发明轮子’这个古训扼杀了。

        想起来真是觉得很悲哀也很无奈,中国的程序员永远只能使用外国人的技术,甚至其中有不少都是已经快要过时了才开始在中国普及开。一个接着一个的流行框架在国外的人手中产生出来,为什么他们就可以重新发明轮子,而我们就不行呢?死守古训导致的唯一的结果就是无法进步,永远只能使用别人的东西,最多就是罗列了一堆会使用的框架,真正的技术都是掌握在别人的手里。

         有一次面试,简历上列出了会使用:JSF,SPRING,HIBERNATE(还有不少其他的,具体的记不太清了),而且已经参与开发过了两个WEB类型的项目,并且已经通过了SCJP认证。结果确连几种List的区别,HashTable和HashMap的区别都分不清,设计模式方面更是惨不忍睹,甚至更不可思议的是连使用HTML语法画出一个稍显复杂的表格都办不到。回答是:因为都是使用框架和框架提供的标签,所以不需要接触这些……

        还是那句话:有时候是该反省反省,除了框架,自己还剩下什么?



posted @ 2008-04-24 12:52 snoics 阅读(1795) | 评论 (2)编辑 收藏
     摘要:           数据分页显示是一项挺烦人的工作,涉及到数据来源,数据生成,数据显示这几个方面。数据有可能是从任意地方以任意方式获取到的,而且获取到的数据又有可能是经过了任意的方式处理之后,再以任意的方式显示给最终用户。         这...  阅读全文
posted @ 2008-03-25 11:39 snoics 阅读(2933) | 评论 (3)编辑 收藏
IE有时会在打开一些页面时出现

此对话框出现错误。

错误:53
存储空间不足,无法完成此操作


的错误提示框,导致页面最终无法打开


经过很长时间,终于发现在IE7中解决这个问题的解决方法

在IE7中进行如下操作:

Tools-->Internet Options-->Programs-->Advanced-->Reset-->Reset

这样讲IE7中的各项配置,包括插件全部都恢复到IE7刚安装完时的最初始化的状态,之前的那个错误也解决了。



posted @ 2008-03-24 20:38 snoics 阅读(6083) | 评论 (5)编辑 收藏
        迷惑了一段时间,现在终于想通了,还是继续以前的执着,继续朝以前的那个目标不断努力吧。差点就放弃了,不过还是终于还是又回来了。

        一定要,也一定会变得更强,对自己有信心    ^_^

posted @ 2007-11-25 18:51 snoics 阅读(1059) | 评论 (2)编辑 收藏
    
           最近因为工作太忙的原因,一直没有时间来更新,现在放出2.1的版本(包含最新的源代码)。

        下载地址:
                         snoics-reptile2.1.part1.rar
                         snoics-reptile2.1.part2.rar
                         snoics-reptile2.1.part3.rar
                         snoics-reptile2.1.part4.rar

          (大家有什么意见可以在这里提出,只要有时间,我会尽量更新,有什么建议可以在blog里面提出,或者加我的MSN一起讨论。  ^_^ )

版本历史

2.1:

1、不用再配置snoics-configpath.xml中的路径。
2、定时自动保存Cache
3、修改了一些Bug
2.0:

核心代码全部重写,增加了扩展性,通过扩展之后,基本上能实现对整个网站完整的解析

1.0:

实现了整站抓取的基本的功能,不能解析特殊的URL,对javascript无法辨认
posted @ 2006-10-27 21:05 snoics 阅读(4789) | 评论 (21)编辑 收藏