java - Storm Crawler中ES查询异常

标签 java elasticsearch jvm stormcrawler

我正在使用以下软件包 Apache 动物园管理员 3.4.14 Apache Storm 1.2.3 Apache Maven 3.6.2 ElasticSearch 7.2.0(本地托管) Java 1.8.0_252 具有 4GB RAM 的 aws ec2 中型实例

我使用此命令来增加jvm的虚拟内存(之前它显示jvm没有足够内存的错误) sysctl -w vm.max_map_count=262144

我已经使用 -
创建了 Maven 包 mvn 原型(prototype):生成 -DarchetypeGroupId=com.digitalpebble.stormcrawler - DarchetypeArtifactId=storm-crawler-elasticsearch-archetype -DarchetypeVersion=最新

用于提交拓扑的命令
Storm jar target/newscrawler-1.0-SNAPSHOT.jar org.apache.storm.flux.Flux --local es-crawler.flux --sleep 30000

当我运行此命令时,它显示我的拓扑已成功提交,并且在elasticsearch状态索引中它显示FETCH_ERROR以及seeds.txt中的url

内容索引在elasticsearch中显示没有命中

在worker.log文件中有许多以下类型的异常 -

java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[?:1.8.0_252]
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:714) ~[?:1.8.0_252]
at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvent(DefaultConnectingIOReactor.java:174) [stormjar.jar:?]
at org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:148) [stormjar.jar:?]
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:351) [stormjar.jar:?]
at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:221) [stormjar.jar:?]
at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64) [stormjar.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]

2020-06-12 10:31:14.635 c.d.s.e.p.AggregationSpout Thread-46-spout-executor[17 17] [INFO] [spout #7] 使用 nextFetchDate <= 2020-06-12T10:30:50Z 填充缓冲区 2020-06-12 10:31:14.636 c.d.s.e.p.AggregationSpout Thread-32-spout-executor[19 19] [INFO] [spout #9] 使用 nextFetchDate <= 2020-06-12T10:30:50Z 填充缓冲区 2020-06-12 10:31:14.636 c.d.s.e.p.AggregationSpout pool-13-thread-1 [错误] [spout #7] ES 查询异常

worker.log中有以下与elasticsearch相关的日志

'抑制:org.elasticsearch.client.ResponseException:方法[POST],主机[http://localhost:9200] ,URI [/status/_search?typed_keys=true&ignore_unavailable=false&expand_wildcards=open&allow_no_indices=true&preference=_shards%3A1&ignore_throttled=true&search_type=query_then_fetch&batched_reduce_size=512&ccs_minimize_roundtrips=true],状态行 [HTTP/1.1 503 Service Un可用] {“错误”:{“root_cause”:[{“类型”:“cluster_block_exception”,“原因”:“阻止者:[SERVICE_UNAVAILABLE/1/状态未恢复/初始化];”}],“类型”:“cluster_block_exception ","原因":"被阻止: [SERVICE_UNAVAILABLE/1/状态未恢复/初始化];"},"状态":503} '

' 已抑制:org.elasticsearch.client.ResponseException:方法 [POST],主机 [http://localhost:9200] ,URI [/status/_search?typed_keys=true&ignore_unavailable=false&expand_wildcards=open&allow_no_indices=true&preference=_shards%3A8&ignore_throttled=true&search_type=query_then_fetch&batched_reduce_size=512&ccs_minimize_roundtrips=true],状态行 [HTTP/1.1 503 Service Un可用] {“错误”:{“root_cause”:[],“类型”:“search_phase_execution_exception”,“原因”:“所有分片失败”,“阶段”:“查询”,“分组”:true,“failed_shards”:[ ]},“状态”:503}

' 我检查了分片的健康状况,它们处于绿色状态。

之前我使用的是 Java 11,我无法提交拓扑,所以我转向了 java 8。 现在拓扑已成功提交,但Elasticsearch中没有注入(inject)任何数据。

我想知道java和elasticsearch或任何其他包之间是否存在版本不兼容的问题。

最佳答案

使用种子文件的绝对路径并以远程模式运行它。本地模式主要用于调试。 sleep 参数(我认为)以毫秒为单位。上面的命令意味着拓扑将仅运行 30 秒,这并没有给它太多时间来执行任何操作。

关于java - Storm Crawler中ES查询异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62348306/

相关文章:

java - String[] 长度计数

java - 累加器生成器测试 - Java 8

java - Java 1.5 是否有默认的 -Xmx 设置?

elasticsearch - 在Elastic Search中基于named和Lat,long对文档进行分组

django - 在 SearchQuerySet 结果 Haystack 中获取外键对象

java - 可以在没有操作系统的情况下运行java程序吗?

java - 每个方法的操作数栈 V/S 每个方法的局部变量

java - 内置显示有效数字的方法

java - 具有递归的链表的链表

Elasticsearch Java API Function Score Query with script 函数