elasticsearch 弹性搜索与Nutch积分,elasticsearch,nutch,bigdata,elasticsearch,Nutch,Bigdata" /> elasticsearch 弹性搜索与Nutch积分,elasticsearch,nutch,bigdata,elasticsearch,Nutch,Bigdata" />

elasticsearch 弹性搜索与Nutch积分

elasticsearch 弹性搜索与Nutch积分,elasticsearch,nutch,bigdata,elasticsearch,Nutch,Bigdata,我有一个关于ElasticSearch和ApacheNutch集成的问题 我试着遵循这里列出的Nutch+ES指南 及 具体来说,我能够设置HDFS+HBase+Nutch并对页面列表进行爬网(我可以确认数据确实已爬网并存储在HBase的网页表中) 我还可以让ElasticSearch和Kibana顺利工作(成功创建了新索引并插入了一些记录,确认与Kibana合作) 然而,我无法让他们的组合起作用。基本上,我在Nutch上执行了以下命令后: nutch inject <file_co

我有一个关于ElasticSearch和ApacheNutch集成的问题

我试着遵循这里列出的Nutch+ES指南

具体来说,我能够设置HDFS+HBase+Nutch并对页面列表进行爬网(我可以确认数据确实已爬网并存储在HBase的网页表中)

我还可以让ElasticSearch和Kibana顺利工作(成功创建了新索引并插入了一些记录,确认与Kibana合作)

然而,我无法让他们的组合起作用。基本上,我在Nutch上执行了以下命令后:

nutch inject <file_containing_url>
nutch generate -topN 1
nutch fetch -all
nutch parse -all
nutch updatedb -all
但是,在该命令完成执行后,ElasticSearch中没有任何更改。运行时/本地/日志下的日志显示:

elastic.ElasticIndexWriter - Processing remaining requests [docs = 0, length = 0, total docs = 0]
这让我相信,nutch根本没有要求ES编制任何索引

我在整个过程中哪里做错了?我必须指定关于ES到nutch的内容吗

仅供参考:以下是一些操作系统/工具的详细信息: CentOS 6.7,HBase 1.1.3 ElasticSearch 1.7.5,Nutch 2.3.1。 我修改了nutch-site.xml以包含ES的属性:

    <property>
        <name>plugin.includes</name>
        <!-- do **NOT** enable the parse-html plugin, if you want proper HTML parsing. Use something like parse-tika! -->
        <value>protocol-httpclient|urlfilter-regex|parse-(text|tika|js)|index-(basic|anchor|more)|query-(basic|site|url)|response-(json|xml)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)|indexer-elastic</value>
    </property>
    <property>
        <name>elastic.host</name>
        <value>10.5.140.112</value> <!-- where is ElasticSearch listening -->
    </property>
      <property>
        <name>elastic.cluster</name>
        <value>nutch</value>
      </property>

      <property>
        <name>elastic.index</name>
        <value>nutch</value>
      </property>

      <property>
        <name>elastic.port</name>
        <value>9300</value>
      </property>

plugin.includes
协议httpclient | urlfilter regex | parse-(text | tika | js)| index-(basic | anchor | more)| query-(basic | site | url)| response-(json | xml)| summary basic | scoring opic | urlnormalizer-(pass | regex | basic)| indexer
弹性主机
10.5.140.112 
弹性簇
坚果
弹性指数
坚果
弹性端口
9300

非常感谢大家的帮助

我不知道我是否完全明白了这一点,也不确定以下步骤是否有帮助,但最终我成功地将一些页面索引到ES:

以下是我所做的:

我发现嵌入root\u nutch\u文件夹/src/plugins/中的ES客户机java版本是1.4.1。在indexer elastic文件夹中指定的howto_upgrade_ES.txt文件之后,我将其升级到1.7.5(与我的ES本地服务器版本相匹配)。然而,我不认为这有助于解决问题,因为是nutch没有告诉ES索引任何内容,而不是ES客户机-服务器通信问题

我发现可能影响索引的关键问题是,尽管HBase中的“webpage”表中有记录,但我的页面实际上没有被爬网。起初,我尝试并注射了nutch。但是,由于www.espn.com将重定向到espn.go.com,nutch不会自动跟随重定向,因此没有下载内容HTML。然而,nutch日志将始终显示“成功”。甚至HBase也会记录有关www.espn.com的信息

我重新注入“”并重新运行整个过程,现在它已正确地索引到ES中


我在网上搜索发现我需要在nutch-site.xml中设置http.redirect.max,但是,无论我如何设置,nutch仍然不会遵循302重定向请求。我想我将不得不接受这一点。

我不知道我是否完全明白了这一点,也不确定以下步骤是否有帮助,但最终我成功地将一些页面编入了ES索引:

以下是我所做的:

我发现嵌入root\u nutch\u文件夹/src/plugins/中的ES客户机java版本是1.4.1。在indexer elastic文件夹中指定的howto_upgrade_ES.txt文件之后,我将其升级到1.7.5(与我的ES本地服务器版本相匹配)。然而,我不认为这有助于解决问题,因为是nutch没有告诉ES索引任何内容,而不是ES客户机-服务器通信问题

我发现可能影响索引的关键问题是,尽管HBase中的“webpage”表中有记录,但我的页面实际上没有被爬网。起初,我尝试并注射了nutch。但是,由于www.espn.com将重定向到espn.go.com,nutch不会自动跟随重定向,因此没有下载内容HTML。然而,nutch日志将始终显示“成功”。甚至HBase也会记录有关www.espn.com的信息

我重新注入“”并重新运行整个过程,现在它已正确地索引到ES中


我在网上搜索发现我需要在nutch-site.xml中设置http.redirect.max,但是,无论我如何设置,nutch仍然不会遵循302重定向请求。我想我将不得不接受这一点。

从位于nutch文件夹的runtime文件夹中的本地文件夹中尝试
bin/nutch index-all
。此外,如果它仍然无法工作,请尝试使用
bin/nutch generate-topN
再次生成它,然后使用命令再次获取和解析它们
bin/nutch fetch-all
bin/nutch解析-全部
最后,
bin/nutch updatedb-全部
然后使用本地文件夹中的命令重试
bin/nutch索引-全部


希望对您有所帮助。

请从位于nutch文件夹运行时文件夹中的本地文件夹中尝试
bin/nutch index-all
。此外,如果它仍然无法工作,请尝试使用
bin/nutch generate-topN
再次生成它,然后使用命令再次获取和解析它们
bin/nutch fetch-all
bin/nutch解析-全部
最后,
bin/nutch updatedb-全部
然后使用本地文件夹中的命令重试
bin/nutch索引-全部

希望这会有帮助

    <property>
        <name>plugin.includes</name>
        <!-- do **NOT** enable the parse-html plugin, if you want proper HTML parsing. Use something like parse-tika! -->
        <value>protocol-httpclient|urlfilter-regex|parse-(text|tika|js)|index-(basic|anchor|more)|query-(basic|site|url)|response-(json|xml)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)|indexer-elastic</value>
    </property>
    <property>
        <name>elastic.host</name>
        <value>10.5.140.112</value> <!-- where is ElasticSearch listening -->
    </property>
      <property>
        <name>elastic.cluster</name>
        <value>nutch</value>
      </property>

      <property>
        <name>elastic.index</name>
        <value>nutch</value>
      </property>

      <property>
        <name>elastic.port</name>
        <value>9300</value>
      </property>