我正在使用Nutch 1.8从网站抓取数据。我现在正在为Nutch编写一个自定义插件来解析HTML并将数据保存到HBase。 通过教程我创建配置:
Configuration conf = HBaseConfiguration.create();
然后我调用openz()方法来设置配置等。
public static void openz() throws IOException {
LOG.info("openz()");
System.out.println("openz()");
System.out.println("Establishing connection with database..");
conf = HBaseConfiguration.create();
conf.set("hbase.master", SERVER_IP);
conf.set("hbase.zookeeper.quorum", MASTER_PC);
conf.set("zookeeper.znode.parent", ZOOKEEPER_PARENT_NODE);
conf.set("hbase.zookeeper.property.clientPort","2181");
System.out.println("Conf here? :" + conf);
System.out.println("Creating table variable..");
table = new HTable(conf, "bstore");
}
此时,在线,我创建了HTable,我得到了
java.io.IOException:java.lang.reflect.InvocationTargetException 在org.apache.hadoop.hbase.client.ConnectionManager.createConnection java.lang.NoSuchMethodError:org.apache.hadoop.hbase.protobuf.generated.ClientProtos $ Result $ Builder.setStale(Z)Lorg / apache / hadoop / hbase / protobuf / generated / ClientProtos $ Result $ Builder;
以前我在图书馆遇到了很多麻烦。 当我使用远程连接在netbeans上运行我的插件代码时,它工作正常。将网站数据保存到hbase没有任何问题。 但是当我在集群上启动Nutch crawler时,我会遇到这些错误。
答案 0 :(得分:1)
我会发布我的解决方案来解决这个问题,也许它会在将来帮助某人。 我使用Hadoop 2.4.0,HBase 0.98.0,Apache Nutch 1.8和Solr 4.2.1。 问题是由于缺少一些图书馆造成的。我将发布一个包含所有库的列表,我在nutch / lib文件夹中插入(这种方式不是最好的,因为nutch尚未正确安装在集群上)。