Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11
Перетяжка, Премия ТПрогер, 13.11

Как развернуть StarRocks — подготовка среды

Подготовка среды для развертывания StarRocks на CentOS 7+: требования к оборудованию, обязательные проверки и системные оптимизации для высокой производительности и надёжности.

98 открытий2К показов
Как развернуть StarRocks — подготовка среды

Рекомендации по аппаратному обеспечению кластера

Базовые требования StarRocks к конфигурации серверов невысоки: даже в тестовой среде с CPU 2 ядра и 4 ГБ ОЗУ можно выполнять запросы по небольшим объемам данных.

В производственной среде или когда важна производительность, рекомендуемые аппаратные конфигурации для различных инстансов StarRocks следующие:

  • FE — 8 ядер CPU, 16 ГБ ОЗУ, сетевой адаптер 10GbE (10‑гигабитный Ethernet) и выше (при невысоком уровне одновременных запросов FE можно совместно размещать с BE на одном узле).
  • BE — 16 ядер CPU, 64 ГБ ОЗУ, сетевой адаптер 10GbE и выше; CPU должен поддерживать набор инструкций AVX2.
  • Broker — специальных требований нет; обычно совместно размещается с BE, число Broker‑узлов соответствует числу BE.

Чтобы обеспечить высокую производительность кластера и безопасность данных, в продакшене рекомендуется использовать минимум три сервера с 16 ядрами CPU, 32 ГБ ОЗУ и 10GbE.

Предположим, что node01, node02 и node03 — сервера, удовлетворяющие требованиям. Минимальный пример архитектуры развертывания в продакшене:

  • На node01 разворачивается один FE в роли Leader.
  • На node02 разворачивается один FE Observer для резервирования метаданных.
  • На каждом из трех узлов кластера разворачивается по одному BE, что обеспечивает хранение с тремя репликами по умолчанию в StarRocks (в тестовой среде можно использовать одну реплику).

На node01 также можно установить mysql-client. StarRocks совместим с протоколом MySQL; рекомендуется использовать mysql-client для доступа, также можно применять графические инструменты, такие как SQLyog, DBeaver, Navicat, DataGrip, подключая StarRocks как MySQL.

Особое внимание:

  • На одной машине можно развернуть только один FE‑инстанс данного кластера, поскольку все FE‑инстансы в одном кластере должны иметь одинаковый http_port.
  • Хотя на одной машине можно развернуть несколько BE‑инстансов на разных портах, для обеспечения трех реплик данных необходимо как минимум три машины с по одному BE‑инстансу на каждой. Это связано с тем, что стратегия балансировки реплик в StarRocks не размещает реплики одного и того же Tablet на BE с одинаковым IP.

Проверки и подготовка среды кластера

После того как вы ознакомились с аппаратными требованиями кластера StarRocks, необходимо выполнить обязательные проверки окружения серверов кластера и системную оптимизацию. Подготовку среды выполнения StarRocks условно можно разделить на две категории: «обязательная» и «оптимизационная».

Перед развертыванием кластера рекомендуется выполнить все перечисленные ниже шаги (с учетом вашей ситуации), поскольку параметры из категории «оптимизационных» также влияют на производительность StarRocks.

Обязательная подготовка

Проверка CPU

Векторизация StarRocks требует поддержки набора инструкций AVX2 на CPU, поэтому CPU на машинах с BE‑сервисом должен поддерживать AVX2. В Linux проверьте поддержку CPU следующим образом:

			[root@node01 ~]# cat /proc/cpuinfo | grep avx2
flags                   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm rdseed adx smap xsaveopt arat
		

Наличие вывода означает поддержку AVX2 CPU. Если вывода нет, потребуется машина с поддержкой AVX2.

В некоторых случаях используется виртуальная машина с CentOS в среде Windows для тестов; тогда можно проверить поддержку набора инструкций CPU на хосте Windows с помощью CPU‑Z, AIDA64 и т. п.

Проверка операционной системы

StarRocks требует Linux CentOS версии 7 и выше (ниже показано на примере CentOS 7.6). Версия ядра рекомендуется 3.10 и выше. Просмотр информации о системе и ядре:

			[root@node01 ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

[root@node01 ~]# uname -a
Linux node01 3.10.0-1160.25.1.el7.x86_64 #1 SMP Wed Apr 28 21:49:45 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
		

Настройка IP сервера

При развертывании FE или BE, чтобы избежать проблем выбора IP на серверах с несколькими сетевыми интерфейсами, используйте параметр priority_networks в конфигурации каждого инстанса для привязки IP.

Кроме того, при работе StarRocks сведения о привязанных IP инстансов кластера и др. сохраняются в локальном каталоге. Если внутренний IP узла изменится, инстансы кластера не смогут корректно работать (или потребуется сложное восстановление метаданных). Поэтому внутренний IP сервера, на котором работает StarRocks, должен быть фиксированным.

Операции по настройке фиксированного IP в системе сервера см. в Приложении 1: Настройка фиксированного IP.

Синхронизация времени в кластере

Максимально допустимое расхождение часов между серверами с FE — 5 секунд. Можно использовать протокол NTP для синхронизации времени по сети или выполнить внутреннюю синхронизацию в кластере. Подробные операции см. в Приложении 2: Синхронизация времени в кластере.

Изменение лимита на количество открытых файлов

Если лимит на количество открытых файлов слишком мал, BE‑инстанс может не запуститься. Проверьте лимит:

			[root@node01 ~]# ulimit -n
1024
		

Если возвращаемое значение < 65535, измените /etc/security/limits.conf

			[root@node01 ~]# vi /etc/security/limits.conf
		

Добавьте в конец файла (для всех пользователей и групп мягкий и жесткий лимиты на число открытых файлов — 65535):

			* soft nofile 65535
* hard nofile 65535
		

После изменения необходимо разорвать и заново установить удаленное подключение (например, Xshell), чтобы изменения вступили в силу, либо временно задать лимит повторно:

			[root@node01 ~]# ulimit -n 65535
		

Подтвердите применение:

			[root@node01 ~]# ulimit -n
65535
		

Проверка часового пояса

Чтобы избежать смещения времени при импорте данных с метками времени, установите системный часовой пояс Asia/Shanghai. Просмотр часового пояса:

			[root@node01 ~]# timedatectl
Local time: Tue 2021-09-07 19:31:28 CST
Universal time: Tue 2021-09-07 11:31:28 UTC
RTC time: Tue 2021-09-07 11:31:29
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
		

Если часовой пояс отличается от Asia/Shanghai, выполните:

			[root@node01 ~]# timedatectl set-timezone Asia/Shanghai
		

Настройка брандмауэра

Чтобы обеспечить нормальное взаимодействие между узлами кластера, в зависимости от ситуации выберите одно из двух: отключить внутренний брандмауэр или открыть в нем порты, необходимые для работы инстансов кластера. Ниже представлены два варианта (a или b):

a) Отключить службу firewalld (брандмауэр)

			[root@node01 ~]# systemctl stop firewalld
		

Проверьте, что служба отключена:

			[root@node01 ~]# systemctl status firewalld
○ firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
		

Отключите автозапуск:

			[root@node01 ~]# systemctl disable firewalld
		

b) Открыть порты во внутреннем сегменте брандмауэра

Инстансы StarRocks по умолчанию используют порты: 8000, 8030, 8040, 8060, 9010, 9020, 9030, 9050, 9060. Если эти порты не конфликтуют с другими сервисами на сервере, обычно не рекомендуется их изменять.

Например, для FE при необходимости изменения портов до развертывания можно отредактировать файл конфигурации

			# store metadata, create it if it is not exist.
# Default value is ${STARROCKS_HOME}/meta
# meta_dir = ${STARROCKS_HOME}/meta
http_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
mysql_service_nio_enabled = true
		

Открытие стандартных портов в службе firewalld (брандмауэр):

			firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --zone=public --add-port=8030/tcp --permanent
firewall-cmd --zone=public --add-port=8040/tcp --permanent
firewall-cmd --zone=public --add-port=8060/tcp --permanent
firewall-cmd --zone=public --add-port=9010/tcp --permanent
firewall-cmd --zone=public --add-port=9020/tcp --permanent
firewall-cmd --zone=public --add-port=9030/tcp --permanent
firewall-cmd --zone=public --add-port=9050/tcp --permanent
firewall-cmd --zone=public --add-port=9060/tcp --permanent

firewall-cmd --reload
		

Просмотр открытых портов:

			[root@node01 ~]# firewall-cmd --list-port
8030/tcp 8000/tcp 8060/tcp 9010/tcp 9020/tcp 9030/tcp 9050/tcp 9060/tcp 8040/tcp
		

Обратите внимание: перечисленные выше порты относятся к внутренним (для взаимодействия внутри кластера), а не к портам, открытым для доступа из внешней сети. В производственной среде для внешнего доступа обычно достаточно открыть два порта:

  • FE http_port: по умолчанию 8030
  • FE query_port: по умолчанию 9030

Подробное описание портов см. в Приложении 3: Порты StarRocks.

Установка JDK

StarRocks зависит от среды JDK 1.8+. Можно использовать Oracle JDK 1.8+ или OpenJDK 8+ (ниже показан пример с OpenJDK 1.8.0_41):

			[root@node01 ~]# java -version

openjdk version "1.8.0_41"
OpenJDK Runtime Environment (build 1.8.0_41-b04)
OpenJDK 64-Bit Server VM (build 25.40-b25, mixed mode)
		

Инструкции по установке OpenJDK 8 см. в Приложении 4: Установка OpenJDK.

Установка mysql-client

StarRocks использует протокол MySQL для взаимодействия; пользователи могут подключаться к кластеру StarRocks через клиент MySQL (mysql-client). Выбирая версию mysql-client, используйте версию новее 5.1, поскольку версии до 5.1 не поддерживают имена пользователей длиннее 16 символов (ниже показан пример mysql-client‑5.7.35).

Для удобства развертывания и эксплуатации кластера обычно рекомендуется установить mysql-client на одном из серверов кластера. Разумеется, можно не устанавливать mysql-client, а получить доступ к StarRocks с помощью внешних графических инструментов, таких как SQLyog, DBeaver, Navicat и др.

Инструкции по установке mysql-client‑5.7.35 см. в Приложении 5: Установка mysql-client‑5.7.35.

Оптимизационная подготовка

Отключение SELinux

Если в вашей продакшен‑среде уже применены меры безопасности (например, VPN, jump‑host, bastion и т. п.), рекомендуется отключить SELinux. Проверьте состояние:

			[root@node01 ~]# getenforce
Enforcing
		

Чтобы избежать перезагрузки, можно сначала временно отключить, затем — отключить навсегда.

Временное отключение:

			[root@node01 ~]# setenforce 0
		

Постоянное отключение:

			[root@node01 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
		

Проверка:

			[root@node01 ~]# cat /etc/selinux/config
		
			SELINUX=disabled
		

означает, что отключено навсегда:

			# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled

# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
		

Использование overcommit

Рекомендуется включить overcommit, установив 1, что означает: ядро разрешает выделять всю физическую память независимо от текущего состояния памяти.

			[root@node01 ~]# echo 1 | sudo tee /proc/sys/vm/overcommit_memory

1
		

Настройка выше сбрасывается после перезагрузки системы; для постоянного применения выполните:

			[root@node01 ~]# echo "vm.overcommit_memory=1" > /etc/sysctl.conf
[root@node01 ~]# sysctl -p /etc/sysctl.conf
		

Не использовать область подкачки (swap)

Это устраняет влияние перехода в область подкачки на производительность. Чтобы избежать перезагрузки, можно сначала временно, затем — постоянно.

Проверка текущего значения:

			[root@node01 ~]# cat /proc/sys/vm/swappiness
30
		

Временная настройка:

			[root@node01 ~]# echo 0 | sudo tee /proc/sys/vm/swappiness
		

Постоянная настройка:

			[root@node01 ~]# echo vm.swappiness=0 >> /etc/sysctl.conf
[root@node01 ~]# sysctl -p
		

Отключение прозрачных больших страниц (Transparent Huge Pages, THP)

Проверьте настройки и состояние THP:

			[root@node01 ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never

[root@node01 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
		

Вывод [always] означает, что THP включены; [never]— что THP отключены; [madvise]— что THP используются только для VMA с флагом MADV_HUGEPAGE.

Временное отключение:

			[root@node01 ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag
[root@node01 ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
		

Постоянное отключение (добавьте команды временного отключения в /etc/rc.d/rc.localи назначьте права на исполнение):

			[root@node01 ~]# echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.d/rc.local
[root@node01 ~]# echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.d/rc.local
[root@node01 ~]# chmod a+x /etc/rc.d/rc.local
		

Проверка:

			[root@node01 ~]# cat /etc/rc.d/rc.local
		

Настройки очереди буферов TCP‑подключений

1. tcp_abort_on_overflow:

			[root@node01 ~]# echo 1 | sudo tee /proc/sys/net/ipv4/tcp_abort_on_overflow

1
		

2. somaxconn:

			[root@node01 ~]# echo 1024 | sudo tee /proc/sys/net/core/somaxconn

1024
		

Эти настройки сбрасываются после перезагрузки; чтобы применялись постоянно, добавьте их в /etc/rc.d/rc.local:

			[root@node01 ~]# echo 'echo 1 > /proc/sys/net/ipv4/tcp_abort_on_overflow' >> /etc/rc.d/rc.local
[root@node01 ~]# echo 'echo 1024 > /proc/sys/net/core/somaxconn' >> /etc/rc.d/rc.local
		

Повторная проверка:

			[root@node01 ~]# cat /etc/rc.d/rc.local
		

Настройка максимального числа пользовательских процессов

			[root@node01 ~]# ulimit -u
14989
		

Временная установка:

			[root@node01 ~]# ulimit -u 40960
		

Постоянная установка:

			[root@node01 ~]# vi /etc/security/limits.conf
		

Добавьте в конец файла и сохраните:

			* soft nproc 40960
* hard nproc 40960
		

Настройки для высокой конкурентности

Если в кластере высокая конкурентность нагрузки, рекомендуется добавить следующие настройки:

			[root@node01 ~]# echo 120000 > /proc/sys/kernel/threads-max
[root@node01 ~]# echo 60000 > /proc/sys/vm/max_map_count
[root@node01 ~]# echo 200000 > /proc/sys/kernel/pid_max
		

Чтобы эти настройки применялись постоянно, добавьте их в /etc/rc.d/rc.local , как указано выше.

Приложение 1: Настройка фиксированного IP на сервере

Обычно инженеры эксплуатации предоставляют серверы уже с привязанным IP. Для удобства локального тестирования ниже приведен пример привязки IP в виртуальной машине.

Перед настройкой IP обратите внимание, в каком режиме настроен сетевой адаптер ВМ: «bridged» или «NAT». Упрощенно: в режиме bridged систему ВМ могут видеть другие машины в той же локальной сети; в режиме NAT — только хост‑машина, где установлена ВМ. Поэтому при настройке IP учитывайте различия в шлюзе.

Например, для одиночного развертывания на сервере starrocks текущий шлюз —192.168.110.1 .Нужно привязать IP:192.168.110.98. Действия:

			[root@node01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
		

Измененные или добавленные параметры:

			TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.110.98
GATEWAY=192.168.110.1
DNS1=114.114.114.114
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=35d2c8b5-72a1-4775-92ed-e9f089790be2
DEVICE=ens33
ONBOOT=yes
		

После изменений перезапустите сетевой сервис:

			[root@node01 ~]# service network restart
		

Просмотр IP:

			[root@node01 ~]# ifconfig
		

Или (в минимальной установке

			ifconfig
		

по умолчанию отсутствует):

			[root@node01 ~]# ip add show
		

Приложение 2: Синхронизация времени в кластере

Распространены два способа: синхронизация через интернет и внутренняя синхронизация в кластере. В продакшене достаточно выбрать один из них.

Синхронизация через интернет (под root)

В среде с доступом во внешнюю сеть можно установить NTP‑службу, чтобы каждая машина в кластере синхронизировалась с интернет‑временем.

(1) Установка пакета NTP:

			[root@node01 ~]# yum --y install ntp
		

(2) Выполнение синхронизации:

			[root@node01 ~]# ntpdate cn.pool.ntp.org
		

(3) Добавление cron‑задания:

			[root@node01 ~]# crontab -e
		

Добавьте строку:

			00 2 * * * /usr/sbin/ntpdate cn.pool.ntp.org
		

(означает автоматическую синхронизацию каждые 2 часа; формат: минута, час, день, месяц, день недели)

(4) Перезагрузка службы crond:

			[root@node01 ~]# service crond reload
		

Внутренняя синхронизация в кластере (под root)

В внутренней сети можно выбрать одну машину в кластере в качестве сервера времени, а остальные машины периодически синхронизировать с ней. При таком подходе время в кластере может не совпадать с эталоном, но внутри кластера будет согласованным.

(1) Настройки на всех узлах

Проверьте, установлен ли ntp (если нет, установите:yum install -y ntp):

			[root@node01 ~]# rpm -qa | grep ntp
ntpdate-4.2.6p5-29.el7.centos.2.x86_64
ntp-4.2.6p5-29.el7.centos.2.x86_64
		

Проверьте статус ntpd:

			[root@node01 ~]# systemctl status ntpd
○ ntpd.service - Network Time Service
   Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
		

Если статус не dead, остановите службу и отключите автозапуск:

			[root@node01 ~]# systemctl stop ntpd
[root@node01 ~]# systemctl disable ntpd
		

(2) Настройка сервера времени

  1. Выберите сервер времени, например node01, и отредактируйте конфигурацию NTP:
			[root@node01 ~]# vi /etc/ntp.conf
		

Изменения:

a) Разрешение для подсети (пример для диапазона 192.168.1.0–192.168.1.255):

Строку

			#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
		

раскомментируйте и укажите свою подсеть:

			restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
		

b) Отключение интернет‑источников времени (кластер в локальной сети):

Закомментируйте строки:

			#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
		

c) Добавление локального источника (при потере сети узел сможет служить сервером времени):

			server 127.127.1.0
fudge 127.127.1.0 stratum 10
		
  1. Измените файл /etc/sysconfig/ntpd:
			[root@node01 ~]# vi /etc/sysconfig/ntpd
		

Добавьте (синхронизировать аппаратное время с системным):

			SYNC_HWCLOCK=yes
		
  1. Запустите службу ntpd:
			[root@node01 ~]# systemctl start ntpd
		
  1. Включите автозапуск ntpd:
			[root@node01 ~]# systemctl enable ntpd
		

(3) Настройка остальных машин

Для всех узлов, кроме сервера времени, создайте cron‑задачу:

  1. Настройте синхронизацию с сервером времени каждые 10 минут:
			[root@node01 ~]# crontab -e
		
  1. Добавьте задание:
			*/10 * * * * /usr/sbin/ntpdate node01
		
  1. Перезагрузите службу crond:
			[root@node01 ~]# service crond reload
		
  1. Тест (необязательно)

Измените время на любом узле, не являющемся сервером времени, и проверьте синхронизацию.

Например, на node02:

			[root@node02 ~]# date -s "2021-6-6 06:06:06"
		

Подождите 10 минут (или временно измените интервал в cron на 1 минуту) и проверьте время:

			[root@node02 ~]# date
Fri Sep 10 04:19:13 CST 2021
		

Приложении 3: Порты StarRocks

Как развернуть StarRocks — подготовка среды 1
Порты StarRocks

Приложение 4: Установка OpenJDK

Способ 1: онлайн‑установка через yum

Проверьте, есть ли в системе среда Java:

			[root@node01 ~]# rpm -qa | grep java
		

При минимальной установке Java отсутствует. Если в текущей системе CentOS 7 есть пакеты OpenJDK и среди них присутствует java-1.8.0-openjdk-devel, значит, установлен Java 8 JDK, и можно сразу найти путь установки OpenJDK и настроить переменные окружения. Если openjdk-devel отсутствует, значит установлен только JRE. Например (пакеты, связанные с OpenJDK):

			[root@node01 ~]$ rpm -qa | grep java
tzdata-java-2018e-3.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
		

Официальная документация OpenJDK:

The java-1.8.0-openjdk package contains just the Java Runtime Environment. If you want to develop Java programs then install the java-1.8.0-openjdk-devel package.

Установка/обновление OpenJDK через yum:

			[root@node01 ~]# yum -y install java-1.8.0-openjdk-devel
		

Поиск пути установки OpenJDK:

			[root@node01 ~]# which java       # найти путь исполняемого файла java
/usr/bin/java

[root@node01 ~]# ls -lrt /usr/bin/java       # ссылка на альтернативы окружения
lrwxrwxrwx 1 root root 22 Sep 10 21:23 /usr/bin/java -> /etc/alternatives/java

[root@node01 ~]# ls -lrt /etc/alternatives/java     # конечная ссылка на путь установки
lrwxrwxrwx 1 root root 73 Sep 10 21:23 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/jre/bin/java
		

Настройка переменных окружения (рекомендуемый способ): создайте файл/etc/profile.d/my_env.sh:

			[root@node01 java]# vi /etc/profile.d/my_env.sh
		

Добавьте переменные:

			#JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64
export PATH=$PATH:$JAVA_HOME/bin
		

Сохраните и обновите окружение (или перезапустите окно Xshell):

			[root@node01 java]# source /etc/profile.d/my_env.sh

[root@node01 ~]# java -version
openjdk version "1.8.0_302"
OpenJDK Runtime Environment (build 1.8.0_302-b08)
OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)
		

Способ 2: офлайн‑установка

Если у кластера нет доступа во внешнюю сеть, используйте двоичный пакет OpenJDK для офлайн‑развертывания. Заранее скачайте OpenJDK 1.8.0_41‑b04.

Проверьте, установлен ли JRE, и при наличии удалите его.

Проверка:

			[root@node01 ~]# rpm -qa | grep java
		

Примеры выводов для наличия JRE см. выше.

Удаление предустановленного JRE:

			[root@node01 ~]# yum -y remove java*
[root@node01 ~]# yum -y remove tzdata-java*
		

Загрузите

			openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
		

в каталог /opt/software:

			[root@node01 ~]# mkdir /opt/software
# Загрузите пакет посредством Xftp и т. п.
[root@node01 ~]# cd /opt/software/

[root@node01 software]# ll
total 170204
-rw-r--r-- 1 root root 174287938 Sep 10 19:47 openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
		

Распакуйте:

			[root@node01 software]# tar xf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
		

Переместите распакованный каталог в /usr/java/:

			[root@node01 software]# mv /opt/software/java-se-8u41-ri /usr/java
[root@node01 software]# cd /usr/java

[root@node01 java]# ll
total 0
drwxr-xr-x 9 10 143 219 Jan 15  2020 java-se-8u41-ri
		

Настройка переменных окружения (рекомендуемый способ): создайте файл /etc/profile.d/my_env.sh:

			[root@node01 java]# vi /etc/profile.d/my_env.sh
		

Добавьте переменные:

			#JAVA_HOME
export JAVA_HOME=/usr/java/java-se-8u41-ri
export PATH=$PATH:$JAVA_HOME/bin
		

Сохраните и обновите окружение (или перезапустите окно Xshell):

			[root@node01 java]# source /etc/profile.d/my_env.sh

[root@node01 ~]# java -version
openjdk version "1.8.0_41"
OpenJDK Runtime Environment (build 1.8.0_41-b04)
OpenJDK 64-Bit Server VM (build 25.40-b25, mixed mode)
		

Приложение 5: Установка mysql-client‑5.7.35

Проверьте наличие mariadb:

			[root@node01 ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
		

Если установлен, удалите в соответствии с выводом:

			[root@node01 ~]# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
		

Для mysql-client требуются три RPM‑пакета (адрес загрузки укажите по корпоративным источникам). Загрузите пакеты в каталог /opt/software:

			[root@node01 ~]# cd /opt/software/

[root@node01 software]# ll
total 28764
-rw-r--r-- 1 root root 26658592 Sep 10 02:10 mysql-community-client-5.7.35-1.el7.x86_64.rpm
-rw-r--r-- 1 root root   317800 Sep 10 02:10 mysql-community-common-5.7.35-1.el7.x86_64.rpm
-rw-r--r-- 1 root root  2473348 Sep 10 02:10 mysql-community-libs-5.7.35-1.el7.x86_64.rpm
		

Между тремя RPM есть зависимости; порядок установки:

  1. mysql-community-common-5.7.35-1.el7.x86_64.rpm
  2. mysql-community-libs-5.7.35-1.el7.x86_64.rpm
  3. mysql-community-client-5.7.35-1.el7.x86_64.rpm

Установка:

			[root@node01 software]# rpm -ivh mysql-community-common-5.7.35-1.el7.x86_64.rpm
warning: mysql-community-common-5.7.35-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql-community-common-5.7.35-1.e################################# [100%]

[root@node01 software]# rpm -ivh mysql-community-libs-5.7.35-1.el7.x86_64.rpm
warning: mysql-community-libs-5.7.35-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql-community-libs-5.7.35-1.el7################################# [100%]

[root@node01 software]# rpm -ivh mysql-community-client-5.7.35-1.el7.x86_64.rpm
warning: mysql-community-client-5.7.35-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql-community-client-5.7.35-1.e################################# [100%]
		
Следите за новыми постами
Следите за новыми постами по любимым темам
98 открытий2К показов