Install Apache Solr Server on CentOS 8 - CentLinux

Latest

Monday, 16 November 2020

Install Apache Solr Server on CentOS 8

Install Apache Solr Server on CentOS 8

Apache Solr is an open search enterprise search software. Here, you will learn how to install Apache Solr Server on CentOS 8.

 

Table of Contents:

     

    What is Solr? :

    Solr (pronounced "solar") is an open-source enterprise-search platform, written in Java, from the Apache Lucene project. Solr is available to use under Apache License 2.0.

    Solr major features include full-text search, hit highlighting, faceted search, real-time indexing, dynamic clustering, database integration, NoSQL features and rich document (e.g., Word, PDF) handling. Providing distributed search and index replication.

    Solr is designed for scalability and fault tolerance. Solr is widely used for enterprise search and analytics use cases and has an active development community and regular releases.

    Solr runs as a standalone full-text search server. It uses the Lucene Java search library at its core for full-text indexing and search, and has REST-like HTTP/XML and JSON APIs that make it usable from most popular programming languages. Solr's external configuration allows it to be tailored to many types of applications without Java coding, and it has a plugin architecture to support more advanced customization.

    Solr powers the search and navigation features of many of the world's largest internet sites.

     

    Environment Specification:

    We are using a minimal CentOS 8 KVM machine with following specifications.

    • CPU - 3.4 Ghz (2 cores)
    • Memory - 2 GB
    • Storage - 20 GB
    • Operating System - CentOS 8.2
    • Hostname - solr-01.centlinux.com
    • IP Address - 192.168.116.230 /24

     

    Update CentOS 8 Software Packages:

    Connect with solr-01.centlinux.com as root user by using a ssh client.

    By using dnf command, update software packages in your Linux server.

    [root@solr-01 ~]# dnf update -y Last metadata expiration check: 0:00:24 ago on Sun 15 Nov 2020 08:12:06 PM PKT. Dependencies resolved. Nothing to do. Complete!

    Our Linux operating system is already up-to-date. The output may vary on your Linux server.

    Verify the Linux operating system and Kernel version.

    [root@solr-01 ~]# uname -r 4.18.0-193.28.1.el8_2.x86_64 [root@solr-01 ~]# cat /etc/redhat-release CentOS Linux release 8.2.2004 (Core)

     

    Install OpenJDK on Linux Server:

    Apache Solr is written in Java programming language, therefore it requires Java Development Kit (JDK) 8 or later.

    OpenJDK is available in standard yum repository and can be installed easily. Alternatively, you can also install Oracle Java SE on your Linux server.

    For the sake of simplicity, we are installing OpenJDK 11 on the Linux server.

    [root@solr-01 ~]# dnf install -y java-11-openjdk ... Installed: abattis-cantarell-fonts-0.0.25-4.el8.noarch adwaita-cursor-theme-3.28.0-2.el8.noarch adwaita-icon-theme-3.28.0-2.el8.noarch alsa-lib-1.2.1.2-3.el8.x86_64 at-spi2-atk-2.26.2-1.el8.x86_64 at-spi2-core-2.28.0-1.el8.x86_64 atk-2.28.1-1.el8.x86_64 avahi-libs-0.7-19.el8.x86_64 cairo-1.15.12-3.el8.x86_64 cairo-gobject-1.15.12-3.el8.x86_64 colord-libs-1.4.2-1.el8.x86_64 copy-jdk-configs-3.7-1.el8.noarch cups-libs-1:2.2.6-33.el8.x86_64 dconf-0.28.0-3.el8.x86_64 fontconfig-2.13.1-3.el8.x86_64 fontpackages-filesystem-1.44-22.el8.noarch fribidi-1.0.4-8.el8.x86_64 gdk-pixbuf2-2.36.12-5.el8.x86_64 gdk-pixbuf2-modules-2.36.12-5.el8.x86_64 giflib-5.1.4-3.el8.x86_64 glib-networking-2.56.1-1.1.el8.x86_64 graphite2-1.3.10-10.el8.x86_64 gsettings-desktop-schemas-3.32.0-4.el8.x86_64 gtk-update-icon-cache-3.22.30-5.el8.x86_64 gtk3-3.22.30-5.el8.x86_64 harfbuzz-1.7.5-3.el8.x86_64 hicolor-icon-theme-0.17-2.el8.noarch jasper-libs-2.0.14-4.el8.x86_64 java-11-openjdk-1:11.0.9.11-0.el8_2.x86_64 java-11-openjdk-headless-1:11.0.9.11-0.el8_2.x86_64 javapackages-filesystem-5.3.0-1.module_el8.0.0+11+5b8c10bd.noarch jbigkit-libs-2.1-14.el8.x86_64 json-glib-1.4.4-1.el8.x86_64 lcms2-2.9-2.el8.x86_64 libX11-1.6.8-3.el8.x86_64 libX11-common-1.6.8-3.el8.noarch libXau-1.0.8-13.el8.x86_64 libXcomposite-0.4.4-14.el8.x86_64 libXcursor-1.1.15-3.el8.x86_64 libXdamage-1.1.4-14.el8.x86_64 libXext-1.3.3-9.el8.x86_64 libXfixes-5.0.3-7.el8.x86_64 libXft-2.3.2-10.el8.x86_64 libXi-1.7.9-7.el8.x86_64 libXinerama-1.1.4-1.el8.x86_64 libXrandr-1.5.1-7.el8.x86_64 libXrender-0.9.10-7.el8.x86_64 libXtst-1.2.3-7.el8.x86_64 libdatrie-0.2.9-7.el8.x86_64 libepoxy-1.5.3-1.el8.x86_64 libfontenc-1.1.3-8.el8.x86_64 libgusb-0.3.0-1.el8.x86_64 libjpeg-turbo-1.5.3-10.el8.x86_64 libmodman-2.0.1-17.el8.x86_64 libproxy-0.4.15-5.2.el8.x86_64 libsoup-2.62.3-1.el8.x86_64 libthai-0.1.27-2.el8.x86_64 libtiff-4.0.9-17.el8.x86_64 libwayland-client-1.17.0-1.el8.x86_64 libwayland-cursor-1.17.0-1.el8.x86_64 libwayland-egl-1.17.0-1.el8.x86_64 libxcb-1.13.1-1.el8.x86_64 lksctp-tools-1.0.18-3.el8.x86_64 lua-5.3.4-11.el8.x86_64 pango-1.42.4-6.el8.x86_64 pixman-0.38.4-1.el8.x86_64 rest-0.8.1-2.el8.x86_64 ttmkfdir-3.0.9-54.el8.x86_64 tzdata-java-2020d-1.el8.noarch xorg-x11-font-utils-1:7.5-40.el8.x86_64 xorg-x11-fonts-Type1-7.5-19.el8.noarch Complete!

    After successful installation, verify the Java version.

    [root@solr-01 ~]# java -version openjdk version "11.0.9" 2020-10-20 LTS OpenJDK Runtime Environment 18.9 (build 11.0.9+11-LTS) OpenJDK 64-Bit Server VM 18.9 (build 11.0.9+11-LTS, mixed mode, sharing)

    OpenJDK has been installed on Linux server.

     

    Install Apache Solr on Linux Server:

    You can download Apache Solr from Github or their official website.

    01-install-apache-solr-server-on-centos-8-download

    From Solr Download Page, copy the URL of your required version of Apache Solr and then use wget command to download Solr from the copied URL.

    [root@solr-01 ~]# cd /tmp [root@solr-01 tmp]# wget https://downloads.apache.org/lucene/solr/8.7.0/solr-8.7.0.tgz --2020-11-15 20:28:48-- https://downloads.apache.org/lucene/solr/8.7.0/solr-8.7.0.tgz Resolving downloads.apache.org (downloads.apache.org)... 88.99.95.219, 2a01:4f8:10a:201a::2 Connecting to downloads.apache.org (downloads.apache.org)|88.99.95.219|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 200805960 (192M) [application/x-gzip] Saving to: âsolr-8.7.0.tgzâ solr-8.7.0.tgz 100%[===================>] 191.50M 125KB/s in 28m 24s 2020-11-15 20:57:13 (115 KB/s) - âsolr-8.7.0.tgzâ saved [200805960/200805960]

    Extract the Solr installation script from downloaded tarball as follows.

    [root@solr-01 tmp]# tar xf solr-8.7.0.tgz solr-8.7.0/bin/install_solr_service.sh --strip-components=2

    Now, use the extracted installation script to install Apache Solr on your Linux server.

    [root@solr-01 tmp]# ./install_solr_service.sh solr-8.7.0.tgz We recommend installing the 'lsof' command for more stable start/stop of Solr id: âsolrâ: no such user Creating new user: solr Extracting solr-8.7.0.tgz to /opt Installing symlink /opt/solr -> /opt/solr-8.7.0 ... Installing /etc/init.d/solr script ... Installing /etc/default/solr.in.sh ... Service solr installed. Customize Solr startup configuration in /etc/default/solr.in.sh *** [WARN] *** Your open file limit is currently 1024. It should be set to 65000 to avoid operational disruption. If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh *** [WARN] *** Your Max Processes Limit is currently 3674. It should be set to 65000 to avoid operational disruption. If you no longer wish to see this warning, set SOLR_ULIMIT_CHECKS to false in your profile or solr.in.sh NOTE: Please install lsof as this script needs it to determine if Solr is listening on port 8983. Started Solr server on port 8983 (pid=2241). Happy searching! Found 1 Solr nodes: Solr process 2241 running on port 8983 Solr at http://localhost:8983/solr not online.

    Don't worry about the above warnings, we will rectify them one by one.

    Install lsof software package as required by the Apache Solr.

    [root@solr-01 tmp]# dnf install -y lsof Last metadata expiration check: 1:07:30 ago on Sun 15 Nov 2020 08:12:06 PM PKT. Dependencies resolved. ================================================================================ Package Architecture Version Repository Size ================================================================================ Installing: lsof x86_64 4.91-2.el8 BaseOS 253 k Transaction Summary ================================================================================ Install 1 Package Total download size: 253 k Installed size: 630 k Downloading Packages: lsof-4.91-2.el8.x86_64.rpm 114 kB/s | 253 kB 00:02 -------------------------------------------------------------------------------- Total 76 kB/s | 253 kB 00:03 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : lsof-4.91-2.el8.x86_64 1/1 Running scriptlet: lsof-4.91-2.el8.x86_64 1/1 Verifying : lsof-4.91-2.el8.x86_64 1/1 Installed: lsof-4.91-2.el8.x86_64 Complete!

    Enable Apache Solr service using following Linux command.

    [root@solr-01 tmp]# systemctl enable solr solr.service is not a native service, redirecting to systemd-sysv-install. Executing: /usr/lib/systemd/systemd-sysv-install enable solr

    Verify that the Solr service is running on default port 8983.

    [root@solr-01 tmp]# ss -tulpn | grep 8983 tcp LISTEN 0 50 *:8983 *:* users:(("java",pid=2241,fd=153))

    To rectify the warnings during startup of Apache Solr about File and Process limits. You need to define the security limits as required by the Apache Solr.

    Open limits.conf file in vim editor.

    solr-01 tmp]# vi /etc/security/limits.conf

    And add following directives in this file.

    solr soft nofile 65536 solr hard nofile 65536 solr soft nproc 65536 solr hard nproc 65536

    Restart the Solr service using legacy service command. There will be no warnings this time.

    [root@solr-01 tmp]# service solr restart Sending stop command to Solr running on port 8983 ... waiting up to 180 seconds to allow Jetty process 4524 to stop gracefully. Waiting up to 180 seconds to see Solr running on port 8983 [/] Started Solr server on port 8983 (pid=4865). Happy searching!

    Apache Solr uses default network port 8983/tcp. Therefore, you need to allow this port in Linux firewall.

    [root@solr-01 tmp]# firewall-cmd --permanent --add-port=8983/tcp success [root@solr-01 tmp]# firewall-cmd --reload success

    Create a test collection in Apache Solr server.

    [root@solr-01 tmp]# su - solr -c "/opt/solr/bin/solr create -c testcol1 -n data_driven_schema_configs" Created new core 'testcol1'

    Open URL http://192.168.116.230:8983/solr/ in a client browser.

    02-install-apache-solr-server-on-centos-8-dashboard

    You are now at the dashboard of the Apache Solr web UI. You can check the recently created collection by selecting it from the drop-down box in left-side pane.

    03-install-apache-solr-server-on-centos-8-collection

     

    Conclusion:

    In this installation guide, you have learned how to install Apache Solr Server on CentOS 8. Have a look at Mastering Apache Solr 7.x: An expert guide to advancing, optimizing, and scaling your enterprise search by Packt Publishing.

    No comments:

    Post a comment