在 Cent os 7 上将 Apache Solr 从 4.10.4 升级到 6.6.0

vik*_*are 4 solr upgrade solr4 centos7 solr6

如何将 Apache solr 从现有版本 4.10.4 升级到 6.6.0(最新版本)在 linux centos 7 操作系统上。

vik*_*are 6

停止现有的正在运行的 solr

sudo service solr stop
Run Code Online (Sandbox Code Playgroud)

确认是否停止

sudo service solr status
Run Code Online (Sandbox Code Playgroud)

您可以从 /var/solr/data/<core_name> 备份现有的 solr 数据,但是在升级 solr 版本后重新索引 solr 数据将提供最佳性能,而不会出现任何未知问题。

现在从centos中删除现有的solr

sudo rm -r /var/solr
Run Code Online (Sandbox Code Playgroud)

如果它在那里,则从以下位置删除 solr

sudo rm -r /opt/solr
sudo rm /etc/init.d/solr
Run Code Online (Sandbox Code Playgroud)

在我的情况下,以下路径不存在删除,如果在您的情况下存在,请删除

sudo rm -r /opt/solr/solr-4.10.4
Run Code Online (Sandbox Code Playgroud)

删除具有主目录的现有 solr 用户

sudo userdel -r solr
Run Code Online (Sandbox Code Playgroud)

对于 ubuntu

sudo deluser --remove-home solr
Run Code Online (Sandbox Code Playgroud)

删除现有组

sudo groupdel solr
Run Code Online (Sandbox Code Playgroud)

对于 ubuntu

sudo deluser --group solr
Run Code Online (Sandbox Code Playgroud)

重启你的系统

sudo reboot
Run Code Online (Sandbox Code Playgroud)

检查支持应用程序并下载 solr 6.6

检查您的机器上安装了哪个版本的 Java 版本

java -version
Run Code Online (Sandbox Code Playgroud)

检查可用的 Java 版本,并更新到最新版本

yum list available java*
Run Code Online (Sandbox Code Playgroud)

安装最新的java版本

sudo yum install <jdk version>
Run Code Online (Sandbox Code Playgroud)

下载并解压安装文件夹

mkdir /home/user/temp
cd temp
wget http://apache.org/dist/lucene/solr/6.6.0/solr-6.6.0.tgz
tar -zxvf solr-6.6.0.tgz
Run Code Online (Sandbox Code Playgroud)

安装solr

cd solr-6.6.0/
sudo bin/install_solr_service.sh /home/user/temp/solr-6.6.0.tgz
Run Code Online (Sandbox Code Playgroud)

安装成功后可以看到如下输出

id: solr: no such user 创建新用户: solr

将 /home/user/temp/solr-6.6.0.tgz 解压到 /opt

安装符号链接 /opt/solr -> /opt/solr-6.6.0 ...

安装 /etc/init.d/solr 脚本...

安装 /etc/default/solr.in.sh ...

已安装服务 solr。在 /etc/default/solr.in.sh 中自定义 Solr 启动配置 等待长达 180 秒才能看到 Solr 在端口 8983 上运行 [] 在端口 8983 (pid=4802) 上启动 Solr 服务器。搜索愉快!

 Found 1 Solr nodes: 
Run Code Online (Sandbox Code Playgroud)

Solr 进程 4802 在端口 8983 上运行 {
"solr_home":"/var/solr/data", "version":"6.6.0 5c7a7b65d2aa7ce5ec96458315c661a18b320241 - ishan - 2017-05:"Time:", 3 2017-06-26T07:02:51.523Z", "uptime":"0 天 0 小时 0 分钟 13 秒", "内存":"34.4 MB (%7) of 490.7 MB"}

现在检查您是否可以访问 solr 管理面板

http://localhost:8983/solr/
Run Code Online (Sandbox Code Playgroud)

检查 solr 是否正在运行,如果没有运行则启动 solr 然后尝试

sudo service solr status
Run Code Online (Sandbox Code Playgroud)

如果您仍然无法访问 solr 管理面板,那么您可能操作系统防火墙阻止了端口 8983

使用以下命令在防火墙中允许端口 8983

sudo firewall-cmd --zone = public --add-port = 8983 / tcp --permanent
sudo firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)

如需进一步的数据迁移,请参阅Cent os 7 上 solr 版本从 4.10.4 升级到 6.6.0 后迁移 solr 核心