搭建nlp_server服务器

时间:2023-03-10 03:44:32
搭建nlp_server服务器

这是文档

如何启动斯坦福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,按照文档继续执行就好了。