帮助中心
如何在AlmaLinux 9上安装Apache Solr



Apache Solr或Solr是一个基于Apache Lucene库的企业级搜索平台。Solr是Searching On Lucene with Replication的缩写,是一个用Java编写的免费、开源的搜索平台。Solr是业内最受欢迎的搜索平台之一,通过复制和自动故障切换和恢复提供高可用性。

Solr是一个高度可扩展和可靠的搜索平台,用于构建企业应用,并提供高性能。它支持分布式索引并提供容错功能。一些主要的互联网公司,如Adobe、Netflix、Instagram、Magento和Bloomberg使用Apache Solr作为其产品的搜索引擎平台。

在本教程中,你将学习如何在AlmaLinux 9服务器上安装Apache Solr。你还将为Solr设置MaxHeapMemory,设置限制并为Solr设置基本认证。

前提条件


要完成本指南,请确保你有以下条件:

  • 一台至少有2/4GB内存的AlmaLinux 9服务器。这个例子使用的是主机名为almalinux9、内存为8GB的AlmaLinux。
  • 一个具有sudo/root管理员权限的非root用户。


安装Java OpenJDK 11


在写这篇文章的时候,Apache Solr的最新版本是v9.x,需要至少v11以上的Java JRE(Java Runtime Environment)。在这第一步,你将通过AlmaLinux的appstream资源库安装Java OpenJDK 11。

输入以下dnf命令,将Java OpenJDK 11安装到你的AlmaLinux服务器。当出现提示时,输入y来确认,然后按回车键。

sudo dnf install java-11-openjdk java-11-openjdk-devel



Java OpenJDK安装完毕后,运行以下命令来验证Java版本,并确保安装成功。

java --version

下面的输出确认了Java OpenJDK 11已经安装。



安装Apache Solr


安装完Java OpenJDK 11后,你将开始安装Apache Solr。Apache Solr的多个二进制包可用于多个操作系统,包括Linux、macOS和Windows。

在本节中,你将通过官方二进制包在你的AlmaLinux服务器上安装Apache Solr。

在下载Apache Solr之前,使用下面的命令将下列软件包安装到你的AlmaLinux服务器上。

sudo dnf install curl lsof chkconfig -y

接下来,使用以下curl命令下载Apache Solr 9.2.1的二进制包。

curl -qO https://downloads.apache.org/solr/solr/9.2.1/solr-9.2.1.tgz

运行下面的命令,从Apache Solr二进制包'solr-9.2.1.tgz'中提取安装程序脚本。

tar xzf solr-9.2.1.tgz solr-9.2.1/bin/install_solr_service.sh --strip-components=2

你应该在你的当前目录中看到Apache Solr安装程序脚本'install_solr_service.sh'。

接下来,通过执行安装脚本'install_solr_service.sh'来安装Apache Solr,像这样:

sudo bash ./install_solr_service.sh solr-9.2.1.tgz

当安装成功时,你收到的输出应该与此类似:



Apache Solr运行在默认的8983端口,SOLR_HOME目录为/var/solr/data。而此时,它正运行在PID(进程ID)12084上。

现在,运行以下命令来停止当前运行在PID 12084上的Apache Solr进程。

kill -9 12084

然后,你可以用下面的命令启动Apache Solr服务。

sudo service solr start



最后,使用下面的命令验证Apache Solr服务。

sudo service solr status

如果Apache Solr运行,在你的终端上会显示类似的输出。



优化Apache Solr的安装


在本节中,你将设置并优化Apache Solr的运行方式。在这个例子中,Apache Solr的最大堆内存为4GB,内部IP地址为 "192.168.10.15"。

首先,通过运行以下命令增加shmmax和nr_hugepages的值。

sudo echo 4294967295 > /proc/sys/kernel/shmmax
sudo echo 1536 > /proc/sys/vm/nr_hugepages

用nano编辑器命令打开'/etc/default/solr.in.sh'文件。

sudo nano /etc/default/solr.in.sh

取消对参数SOLAR_HEAP的注释,用你想使用的最大堆内存改变其值。请确保根据你的服务器的总内存来调整这个值。

SOLR_HEAP="4g"

取消对SOLR_JETTY_HOST和SOLR_HOST参数的注释,用你的内部IP地址来改变数值。在这个例子中,Apache Solr将在'192.168.10.15'上运行。

SOLR_HOST="192.168.10.15"
SOLR_JETTY_HOST="192.168.10.15"

保存这些修改,完成后关闭编辑器。

接下来,运行下面的命令来重启Apache Solr服务并应用这些变化。

sudo service solr restart



最后,运行下面的命令来验证Apache Solr的状态。如果Apache Solr配置成功,你应该看到最大堆内存已经改变。在这个例子中,它变成了4GB。

sudo service solr status



设置Ulimits和Firewalld


运行Apache Solr的另一个重要系统配置是配置最大进程和最大打开文件,这需要至少65.000。为了实现这一点,你需要修改文件"/etc/security/limits.conf"。而后,你还需要设置firewalld,并为Apache Solr打开8983端口。

使用下面的nano编辑器命令打开'/etc/security/limits.conf'文件。

sudo nano /etc/security/limits.conf

在该行的末尾添加以下配置。

solr   soft   nofile   65000
solr   hard   nofile   65000
solr   soft   nproc    65000
solr   hard   nproc    65000

保存该文件并关闭编辑器。

现在,运行下面的命令来检查你系统上的最大进程和最大打开文件。如果成功的话,你应该在这两个设置上看到一个65.000的值。

sudo -H -u solr bash -c "ulimit -aH"



现在运行以下命令以确保ulimit配置成功。

sudo service solr restart

ulimit的警告信息消失了,这证实了配置是成功的。



接下来,用下面的命令在firewalld上打开8983端口。

sudo firewall-cmd --add-port=8983/tcp --permanent

然后,重新加载firewalld以应用这些变化,并验证firewalld规则列表。

sudo firewall-cmd --reload
sudo firewall-cmd --list-all

如果firewalld配置成功,你应该在firewalld列表规则中看到端口8983。



最后,启动你的网络浏览器,导航到你的服务器IP地址,然后是8983端口(即:http://192.168.10.15:8983/)。你应该得到像下面这样的Apache Solr仪表板:




用基本认证保证Apache Solr的安全


默认情况下,Apache Solr的安装是没有认证的。为了保护它,你可以使用多种方法,如基本认证、Kerberos认证、JWT认证和基于规则的认证。在这个例子中,你将通过基本认证来保证Apache Solr的安全。

使用下面的nano编辑器在Apache Solr数据目录/var/solr/data/下创建一个新文件security.json。

sudo nano /var/solr/data/security.json

插入以下配置,创建一个新用户solr,密码为SolrRocks。

{
  "authentication":{
    "blockUnknown": true,
    "class":"solr.BasicAuthPlugin",
    "credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="},
    "realm":"My Solr users",
    "forwardCredentials": false
  },
  "authorization":{
    "class":"solr.RuleBasedAuthorizationPlugin",
    "permissions":[{"name":"all", "role":"admin"}],
    "user-role":{"solr":"admin"}
  }
}

保存并在你完成后退出编辑器。

接下来,运行下面的命令来重启Apache Solr并应用这些变化。

sudo service solr restart

在这一点上,Apache Solr现在已经启动并运行,并启用了基本认证。

现在回到网页浏览器,刷新Apache Solr管理仪表板。或者你可以直接访问i.e: http://192.168.10.15:8983/。如果成功,你应该得到像这样的Apache Solr登录页面:



输入Apache Solr用户solr和密码SolrRocks,然后点击登录。如果认证成功,你应该得到Apache Solr的仪表板。

除此之外,点击安全菜单,你会发现Apache Solr在运行时启用了basic_auth插件。



创建第一个索引


在配置好一切之后,你就可以准备创建第一个Solr索引了。

首先,使用以下nano编辑器命令打开/etc/default/solr.in.sh文件。

sudo nano /etc/default/solr.in.sh

取消对参数SOLR_AUTH_TYPE和SOLR_AUTHENTICATION_OPTS的注释。

SOLR_AUTH_TYPE="basic"
SOLR_AUTHENTICATION_OPTS="-Dbasicauth=solr:SolrRocks"

完成后保存并退出该文件。

现在运行下面的命令来重启Apache Solr并应用这些改变。

sudo service restart solr

接下来,使用下面的命令创建一个新的Solr索引,名为test_core。

su - solr -c "/opt/solr/bin/solr create -c test1_core -n Test1Core"

一旦创建,你应该得到一个输出 "Created new core test1_core"。



回到Apache网络管理仪表板,点击菜单Core Admin,你应该会得到test1_core的信息。




结论


恭喜你!你现在已经成功地安装了Apache Solr!你现在已经在AlmaLinux 9服务器上成功安装了Apache Solr。你还配置了ulimit来优化Apache Solr,配置了firewalld来保护Apache Solr。最后,你还在Apache Solr上启用了基本认证,访问了Apache Solr网络管理仪表板,并创建了第一个Solr索引。

文章相关标签: Apache Solr AlmaLinux 9
购物车