了解 Nutch 的 hBase 数据存储(网页)



我正在使用HBase作为Apache Nutch抓取数据的存储。我的存储位置位于路径/data/hbase/网页中,在那里我可以看到很多文件夹,例如:

64b2feb30073eec24d9dba65d421e7f 
482062bc554bd45bf198d9edea971a30
7c8a6eec12d9f6926a1d912be9a0ca81
c1f682541b8d1c0559de6df14ae84e2b
083b28ee75babc718cc28e66b98c9ff5
809eb4bb5f2be087e2c84a2f51d26653

以及更多...

这些文件夹包含另一个文件夹,例如:

f  h  il  mk  mtdt  ol  p  recovered.edits  s

但这并不那么重要。

我正在为 Nutch 编写自己的索引器,以将爬网数据从 HBase 获取到 Solr。我需要将其批量放入 Solr,因为当我运行所有内容时,会出现内存不足异常。

我想问你是否可以从我的HBase存储中获取批处理ID(知道我拥有哪些批处理ID,然后我可以将其发送到索引)。

我不知道

你是如何实现你的解决方案的:如果作为一个Nutch插件,一个Hadoop MapReduce或一个单一的进程脚本,但我想这些信息会有所帮助:

  • 如 nutch-src/conf/gora-hbase-mapping.xml 所示,batchId 映射到 HBase 的列f:bid

  • 你必须使用Gora阅读它。WebPage 的实例具有方法 #getBatchId() 。检查 avro 网页定义和编译的类。

开发插件时,您很可能会在插件界面中看到一个WebPage参数。

如果要在 HBase 中以原始方式访问batchId,只需阅读列f:bid并将其视为原始文本。如果我没记错的话,Gora 没有在字符串上编写其他信息(与序列化时不同)。

相关内容

  • 没有找到相关文章

最新更新