Here is my full-text construction:
Fess: 14.10.0
Opensearch: 2.8.0
OS: Windows
Installation: Zip file
Opensearch Cluster nodes:
cluster_manager node: 192.168.10.225
cluster data node: 192.168.10.226
I created a opensearch cluster in which contains Cluster Manager node, and Data nodes.
However, no matter I ran FESS on cluster_manager node
or on Data node, its startup failed with following error:
================= Start ========================
Windows PowerShell
Copyright (C) 2014 Microsoft Corporation. All rights reserved.
PS C:\Users\Administrator> f:
PS F:> cd .\fess_cluster\fess-14.10.0\bin
PS F:\fess_cluster\fess-14.10.0\bin>
PS F:\fess_cluster\fess-14.10.0\bin> .\fess.bat
org.lastaflute.di.exception.ContainerInitFailureException: Look! Read the message below.
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Failed to initialize the container.
[Path]
esclient.xml
[Namespace]
null
[Included by]
esflute_config.xml
esflute_user.xml
esflute_log.xml
-
-
-
-
-
-
-
-
- */
at org.lastaflute.di.core.meta.impl.LaContainerImpl.throwContainerInitFailureException(LaContainerImpl.java:463)
at org.lastaflute.di.core.meta.impl.LaContainerImpl.init(LaContainerImpl.java:415)
at org.lastaflute.di.core.meta.impl.LaContainerImpl.doInit(LaContainerImpl.java:431)
at org.lastaflute.di.core.meta.impl.LaContainerImpl.init(LaContainerImpl.java:413)
at org.lastaflute.di.core.meta.impl.LaContainerImpl.doInit(LaContainerImpl.java:431)
at org.lastaflute.di.core.meta.impl.LaContainerImpl.init(LaContainerImpl.java:413)
at org.lastaflute.di.core.meta.impl.LaContainerImpl.doInit(LaContainerImpl.java:431)
at org.lastaflute.di.core.meta.impl.LaContainerImpl.init(LaContainerImpl.java:413)
at org.lastaflute.di.core.factory.SingletonLaContainerFactory.init(SingletonLaContainerFactory.java:65)
at org.lastaflute.web.container.WebLastaContainerInitializer.doInitContainer(WebLastaContainerInitializer.java:81)
at org.lastaflute.web.container.WebLastaContainerInitializer.initialize(WebLastaContainerInitializer.java:45)
at org.lastaflute.web.servlet.filter.LastaPrepareFilter.initializeContainer(LastaPrepareFilter.java:137)
at org.lastaflute.web.servlet.filter.LastaPrepareFilter.init(LastaPrepareFilter.java:94)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:262)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:244)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:97)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4345)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4972)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1328)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1318)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:795)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1328)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1318)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:249)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:428)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:922)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:486)
at org.dbflute.tomcat.TomcatBoot.startServer(TomcatBoot.java:713)
at org.dbflute.tomcat.TomcatBoot.go(TomcatBoot.java:402)
at org.dbflute.tomcat.TomcatBoot.bootAwait(TomcatBoot.java:347)
at org.codelibs.fess.FessBoot.main(FessBoot.java:111)
Caused by: org.lastaflute.di.core.exception.IllegalMethodRuntimeException: [ESSR0060]Can not configure method(open) of org.codelibs.fess.es.client.SearchEngineClient, because [fess.20231008] IndexNotFoundException[no such index [fess.20231008]]
at org.lastaflute.di.core.assembler.AbstractMethodAssembler.invoke(AbstractMethodAssembler.java:61)
at org.lastaflute.di.core.assembler.DefaultInitMethodAssembler.assemble(DefaultInitMethodAssembler.java:40)
at org.lastaflute.di.core.deployer.SingletonComponentDeployer.assemble(SingletonComponentDeployer.java:57)
at org.lastaflute.di.core.deployer.SingletonComponentDeployer.deploy(SingletonComponentDeployer.java:41)
at org.lastaflute.di.core.deployer.SingletonComponentDeployer.init(SingletonComponentDeployer.java:35)
at org.lastaflute.di.core.meta.impl.ComponentDefImpl.init(ComponentDefImpl.java:85)
at org.lastaflute.di.core.meta.impl.LaContainerImpl.doInit(LaContainerImpl.java:434)
at org.lastaflute.di.core.meta.impl.LaContainerImpl.init(LaContainerImpl.java:413)
… 42 more
Caused by: [fess.20231008] IndexNotFoundException[no such index [fess.20231008]]
at org.codelibs.fesen.client.action.HttpGetMappingsAction.lambda$execute$0(HttpGetMappingsAction.java:48)
at org.codelibs.curl.CurlRequest.lambda$execute$5(CurlRequest.java:260)
at org.codelibs.curl.CurlRequest.lambda$connect$4(CurlRequest.java:231)
at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1423)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1311)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1840)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1806)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
- */
-
-
-
-
-
-
-
===================== END =======================
As I though according to error, it seems index data can not
be created.
But if I did not set “cluster manager” role setting, just used default node role setting, everything is going well, Fess startup
succeed, and index data created without problem.
Please teach me how to run fess with opensearch cluster?
Which node I should run FESS? On cluster manager node, or
on cluster data node?
By the way, I also post my fess.in.bat content:
==================== fess.in.bat ====================
@echo off
if DEFINED JAVA_HOME goto cont
:err
ECHO JAVA_HOME environment variable must be set! 1>&2
EXIT /B 1
:cont
set SCRIPT_DIR=%~dp0
for %%I in (“%SCRIPT_DIR%…”) do set FESS_HOME=%%~dpfI
REM ***** JAVA options *****
if “%FESS_MIN_MEM%” == “” (
set FESS_MIN_MEM=256m
)
if “%FESS_MAX_MEM%” == “” (
set FESS_MAX_MEM=1g
)
if NOT “%FESS_HEAP_SIZE%” == “” (
set FESS_MIN_MEM=%FESS_HEAP_SIZE%
set FESS_MAX_MEM=%FESS_HEAP_SIZE%
)
REM min and max heap sizes should be set to the same value to avoid
REM stop-the-world GC pauses during resize, and so that we can lock the
REM heap in memory on startup to prevent any of it from being swapped
REM out.
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Xms%FESS_MIN_MEM% -Xmx%FESS_MAX_MEM%
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:MaxMetaspaceSize=256m -XX:CompressedClassSpaceSize=32m
REM new generation
if NOT “%FESS_HEAP_NEWSIZE%” == “” (
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Xmn%FESS_HEAP_NEWSIZE%
)
REM max direct memory
if NOT “%FESS_DIRECT_SIZE%” == “” (
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:MaxDirectMemorySize=%FESS_DIRECT_SIZE%
)
REM set to headless, just in case
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Djava.awt.headless=true
REM maximum # keep-alive connections to maintain at once
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dhttp.maxConnections=20
REM Force the JVM to use IPv4 stack
if NOT “%FESS_USE_IPV4%” == “” (
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Djava.net.preferIPv4Stack=true
)
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Djna.nosys=true
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Djdk.io.permissionsUseCanonicalPath=true
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:+UseG1GC
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:InitiatingHeapOccupancyPercent=75
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dio.netty.noUnsafe=true
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dio.netty.noKeySetOptimization=true
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dio.netty.recycler.maxCapacityPerThread=0
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dlog4j.shutdownHookEnabled=false
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dlog4j2.disable.jmx=true
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dlog4j2.formatMsgNoLookups=true
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dlog4j.skipJansi=true
REM SSL truststore for certificate validation over https
REM FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Djavax.net.ssl.trustStore=/tech/elastic/config/truststore.jks
REM FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Djavax.net.ssl.trustStorePassword=changeit
REM Causes the JVM to dump its heap on OutOfMemory.
REM set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:+HeapDumpOnOutOfMemoryError
REM The path to the heap dump location, note directory must exists and have enough
REM space for a full heap dump.
REM FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:HeapDumpPath=%FESS_HOME%/logs/heapdump.hprof
REM Disables explicit GC
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:+DisableExplicitGC
REM Ensure UTF-8 encoding by default (e.g. filenames)
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfile.encoding=UTF-8
REM Application Configuration
set APP_NAME=fess
set SEARCH_ENGINE_HOME=%FESS_HOME%/es
if NOT “%FESS_USE_GC_LOGGING%” == “” set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Xlog:gc*,gc+age=trace,safepoint:file=%FESS_HOME%/logs/gc-%APP_NAME%.log:utctime,pid,tags:filecount=5,filesize=64m
set FESS_CLASSPATH=%FESS_HOME%\lib\classes
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Des-foreground=yes
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.home=“%FESS_HOME%”
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.es.dir=“%SEARCH_ENGINE_HOME%”
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.context.path=/
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.port=80
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.webapp.path=%FESS_HOME%\app
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.temp.path=%FESS_HOME%\temp
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.log.name=%APP_NAME%
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.log.path=%FESS_HOME%\logs
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.log.level=warn
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dlasta.env=web
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dtomcat.config.path=tomcat_config.properties
REM External opensearch cluster
REM set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.search_engine.http_address=http://localhost:9200
REM set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.dictionary.path=%SEARCH_ENGINE_HOME%/config/
set GROOVY_TURN_OFF_JAVA_WARNINGS=true
REM Added by me: 192.168.10.225 is my cluster manager node
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.search_engine.http_address=http://192.168.10.225:9200
set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfess.dictionary.path=F:/fess_cluster/opensearch-2.8.0/data/config/
==================== End of fess.in.bat ==============