这是文档
如何启动斯坦福NLP-Service 1.sudo apt-get install gearman-job-server安装gearman-server 2.启动gearman服务: gearmand -d 3.maven命令打包前,进入 nlp_server/gearman-java 目录下,执行(在阿里云上,需要命令前加上sudo): mvn install:install-file -Dfile=java-gearman-service-0.6.6.jar -DgroupId=org.gearman.jgs -DartifactId=java-gearman-service -Dversion=0.6.6 -Dpackaging=jar 原因是:java-gearman-service-0.6.6.jar不在maven中央仓库,需手动添加 4.打包命令 mvn clean package, 在nlp_server路径下 5.命令行启动(在target路径下启动,其中的jvm参数可以调,这里设置的初始为1G内存,最大为4G内存。目前来看,条件允许的情况下,jvm内存是越大响应速度越快。) # 如果gearmand server 没有启动 sudo gearmand -d # 启动服务 java -Xms1024m -Xmx4096m -cp nlp_gearman-1.0-SNAPSHOT-jar-with-dependencies.jar com.baina.dolphin.NLPWorker 6.出现一些配置加载日志信息,说明已经开始正常启动 例如: serDictionary=edu/stanford/nlp/models/segmenter/chinese/dict-chris6.ser.gz sighanCorporaDict=edu/stanford/nlp/models/segmenter/chinese inputEncoding=UTF-8 sighanPostProcessing=true ....... 7. 如果nlpclient无法连上server # 首先确认一下gearmand server是否启动, 在nlp server机器上执行 telnet localhost 4730 # 确认gearmand server 监听的是0.0.0.0, 确保其他机器能访问gearmand server ps aux | grep gearman # 正常应该是 ``` root 3065 0.0 0.0 467780 1616 ? Ssl 11:30 0:00 gearmand -d ``` # 如果出现 ``` gearman 1129 /usr/sbin/gearmand --pid-file=/var/run/gearman/gearmand.pid --user=gearman --daemon --log-file=/var/log/gearman-job-server/gearman.log --listen=127.0.0.1 ``` # 注意最后的参数--listen=127.0.0.1 # 把gearmand server和nlp server进程杀掉,按照步骤5重新启动 # 按照上面第六步骤确认nlp server worker已经注册到gearmand
在用gearmand -d启动gearman服务时,会出现错误:
Could not open log file "var/log/gearmand.log", from "/var/log", switching to stderr. (No such file or directory)
这时需要在/var/log/目录下建立文件gearmand.log,之后继续运行gearmand -d,会出现错误:
gearmand: Could not open log file "/var/log/gearmand.log", from "/var/log", switching to stderr. (Permission denied)
这时需要改变文件gearmand.log的权限,我用的chmod 777,之后就能正确运行gearmand -d。
注意:一看到Permission denied,就应该想到改变权限!自己在这一步浪费了很多时间。
之后安装一个maven,按照文档继续执行就好了。