Skip to content

poseidon集成hdfs的问题汇总及解决方法 #14

@wubo2cyp

Description

@wubo2cyp

主要遇到的问题:
1、Incomplete HDFS URI, no host: hdfs:///
解决方法:MetaConfigured和InvertedIndexGenerate中修改

  •            conf.set("fs.default.name", "hdfs:///");
    
  •            conf.set("fs.default.name", "hdfs://" + name_node);
    

2、java.io.FileNotFoundException: File does not exist: //home/poseidon/src/test/conf/2017-01-05/IKAnalyzer.cfg.xml
解决方法:MetaConfigured和InvertedIndexGenerate中修改:

  •        fs_default_name = "hdfs://" + name_node + "/";
    
  •        fs_default_name = "hdfs://" + name_node;
    

3、Error: java.lang.ClassNotFoundException: org.wltea.analyzer.core.IKSegmenter
解决方法:下载IKAnalyzer2012_u6.jar相关包放到hadoop,classpath中即可
4、Error: class proto.PoseidonIf$DocIdList$Builder overrides final method setUnknownFields.(Lcom/google/protobuf/UnknownFieldSet;)Lcom/google/protobuf/GeneratedMessage$Builder;
protuobuf兼容问题集群中是2.5,poseidon是用的3.1,将3.1的jar替换到mapreduce的classpath中即可。
classpath所在路径:mapreduce-site.xml中的mapreduce.application.classpath
5、org.json.JSONException: JSONObject["token_filter_files"] not found.
缺少该属性,在test.json中增加该属性,属性值是json对象(该属性没有的话,测试过程中没有影响到测试结果)
6、curl查询结果时报错:java.io.IOException: No FileSystem for scheme: hdfs
缺少hadoop相关包,主要是hdfs相关的,放到hdfsreader-0.1/lib目录下即可
7、curl查询结果还会报一个protobuf相关的错误,将protobuf-java-3.1.jar拷贝到hdfsreader-0.1/lib 目录即可
8、其他还有一些错误,如:相关的配置文件中不能用127.0.0.1,hadoop_cmd 可能由于环境问题不能使用快捷方式,

下面说下我的问题:用官方提供的测试数据,在进行curl查询的时候,经常性的第一次查询结果显示为没有的,在执行一次才有数据,如果我输入days:条件中输入多个日期比如2017-01-06,2017-01-09,返回的结果中day属性有时候是2017-01-06,有时候是2016-01-07。当查询调节keywords中的text有多个值的时候也会出现类似的问题。期待解决

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions