Vertica — сервер баз данных для аналитиков, рассчитанный на большие объёмы данных.
Задача на сейчас — запустить Proof of Concept инстанс Vertica на AWS EC2, что бы посмотреть как она вообще сетапится и дать потестить дата-аналитикам.
Обладает достаточно неплохой документацией.
Содержание
AWS
Проверяем список инстансов, на которых можно запустить Vertica тут>>>.
Находим AMI:
Используем минимальный инстанс m4.4xlarge:
Так как мы делаем PoC, или Dev, то пропускаем создание VPC и Placement Group, плюс запускаем только один EC2 — кластер из нескольких хостов/нод делать сейчас не будем.
Кроме того, документация говорит:
add a number of drives equal to the number of physical cores in your instance. For example, for a c3.8xlarge instance, 8 drives. For an r3.2xlarge, add 4 drives.
Но не сейчас — будет только один дополнительный EBS для данных, ну и RAID-0 делать не будем:
Security Group уже настроена — можно только заменить ALL (0.0.0.0) на IP офиса/дома:
Подключаемся:
[simterm]
$ ssh -i vertica-dev-eu-west-1.pem [email protected] Vertica Analytics Platform. You can find documentation for using Vertica on Amazon Web Services here: https://www.vertica.com/docs/latest/HTML/index.htm#Authoring/UsingVerticaOnAWS/UsingVerticaOnAWS.htm You can also access the full documentation set for all releases here: https://www.vertica.com/documentation/vertica/ [dbadmin@ip-172-31-9-216 ~]$
[/simterm]
Лицензия
Файл лицензии:
[simterm]
[dbadmin@ip-172-31-9-216 ~]$ cat /opt/vertica/config/licensing/vertica_community_edition.license.key Vertica Community Edition 2011-11-22 Perpetual 0 1TB CE Nodes 3 767***E87
[/simterm]
Настройка диска
Т.к. для данных мы подключали отдельный EBS — надо его отформатировать и смонтировать.
Проверяем диски:
[simterm]
[root@ip-172-31-9-216 dbadmin]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 30G 0 disk └─xvda1 202:1 0 30G 0 part / xvdf 202:16 0 100G 0 disk
[/simterm]
xvdf
— вот он.
Создаём на нём один раздел (будьте аккуратны с sfdisk
):
[simterm]
[root@ip-172-31-9-216 dbadmin]# echo ';' | sfdisk /dev/xvdf ... Device Boot Start End Sectors Size Id Type /dev/xvdf1 2048 209715199 209713152 100G 83 Linux The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks.
[/simterm]
Проверяем:
[simterm]
[root@ip-172-31-9-216 dbadmin]# lsblk /dev/xvdf NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvdf 202:16 0 100G 0 disk └─xvdf1 202:17 0 100G 0 part
[/simterm]
Раздел создан, форматируем его в ext4
:
[simterm]
[root@ip-172-31-9-216 dbadmin]# mkfs.ext4 /dev/xvdf1
[/simterm]
Создаём каталог, в который будем монтировать:
[simterm]
[root@ip-172-31-9-216 dbadmin]# mkdir -p /data/vertica
[/simterm]
Монтируем:
[simterm]
[root@ip-172-31-9-216 dbadmin]# mount /dev/xvdf1 /data/vertica/ [root@ip-172-31-9-216 dbadmin]# ll /data/vertica/ total 16 drwx------ 2 root root 16384 Oct 10 08:38 lost+found
[/simterm]
Создание кластера
Выполняем /opt/vertica/sbin/install_vertica --hosts 127.0.0.1 --dba-user-password-disabled --data-dir /data/vertica/
:
[simterm]
[root@ip-172-31-9-216 dbadmin]# /opt/vertica/sbin/install_vertica --hosts 127.0.0.1 --dba-user-password-disabled --data-dir /data/vertica/ Vertica Analytic Database 9.2.1-7 Installation Tool ... >> Validating node and cluster prerequisites... Prerequisites not fully met during local (OS) configuration for verify-127.0.0.1.xml: HINT (S0305): https://www.vertica.com/docs/9.2.x/HTML/index.htm#cshid=S0305 TZ is unset for dbadmin. Consider updating .profile or .bashrc FAIL (S0020): https://www.vertica.com/docs/9.2.x/HTML/index.htm#cshid=S0020 Readahead size of xvda (/dev/xvdf1) is too low for typical systems: 256 < 2048 System prerequisites failed. Threshold = WARN Hint: Fix above failures or use --failure-threshold Installation FAILED with errors.
[/simterm]
Vertica и readahead size
Ошибка:
Readahead size of xvda (/dev/xvda1) is too low
Читаем доку по ссылке тут>>>, задаём readahead в 2048 в rc.local
, что бы применялось во время перезагрузки:
[simterm]
[root@ip-172-31-9-216 dbadmin]# echo '/sbin/blockdev --setra 2048 /dev/xvda' >> /etc/rc.local [root@ip-172-31-9-216 dbadmin]# echo '/sbin/blockdev --setra 2048 /dev/xvdf' >> /etc/rc.local
[/simterm]
И сейчас вручную:
[simterm]
[root@ip-172-31-9-216 dbadmin]# /sbin/blockdev --setra 2048 /dev/xvda [root@ip-172-31-9-216 dbadmin]# /sbin/blockdev --setra 2048 /dev/xvdf
[/simterm]
Проверяем:
[simterm]
[root@ip-172-31-9-216 dbadmin]# blockdev --report /dev/xvda RO RA SSZ BSZ StartSec Size Device rw 2048 512 4096 0 32212254720 /dev/xvda [root@ip-172-31-9-216 dbadmin]# blockdev --report /dev/xvdf RO RA SSZ BSZ StartSec Size Device rw 2048 512 4096 0 107374182400 /dev/xvdf
[/simterm]
RA == 2048, OK.
Перезапускаем создание кластера:
[simterm]
[root@ip-172-31-9-216 dbadmin]# /opt/vertica/sbin/install_vertica --hosts 127.0.0.1 --dba-user-password-disabled --data-dir /data/vertica/ Vertica Analytic Database 9.2.1-7 Installation Tool AWS Detected. Using AWS defaults. AWS Default: --point-to-point was not specified, enabling point-to-point spread communication by default while on AWS ... Default shell on nodes: 127.0.0.1 /bin/bash ... >> Creating or validating DB Admin user/group... Successful on hosts (1): 127.0.0.1 Provided DB Admin account details: user = dbadmin, group = verticadba, home = /home/dbadmin Creating group... Group already exists Validating group... Okay Creating user... User already exists Validating user... Okay >> Validating node and cluster prerequisites... Prerequisites not fully met during local (OS) configuration for verify-127.0.0.1.xml: HINT (S0305): https://www.vertica.com/docs/9.2.x/HTML/index.htm#cshid=S0305 TZ is unset for dbadmin. Consider updating .profile or .bashrc System prerequisites passed. Threshold = WARN >> Establishing DB Admin SSH connectivity... Installing/Repairing SSH keys for dbadmin >> Setting up each node and modifying cluster... Creating Vertica Data Directory... Updating agent... Creating node node0001 definition for host 127.0.0.1 ... Done >> Sending new cluster configuration to all nodes... AWS node-hour pricing enabled Starting agent... >> Completing installation... Running upgrade logic No spread upgrade required: /opt/vertica/config/vspread.conf not found on any node Installation complete. ... To add or remove hosts, select Cluster Management from the Advanced Menu.
[/simterm]
Создание базы данных Vertica
Переключаемся на пользователя dbadmin, и запускаем adminTools
:
[simterm]
[dbadmin@ip-172-31-9-216 ~]$ /opt/vertica/bin/adminTools
[/simterm]
Принимаем условия лицензии:
Выбираем Configuration Menu:
Создаём базу данных:
Выбираем модель базы данных, см. документацию тут>>>.
Оставляем значение по умолчанию — Enterprise, и задаём имя базы:
Задаём пароль:
Оставляем localhost, т.к. у нас одна нода в кластере:
Указываем каталог для данных:
Окей — у нас PoC, а не Production:
Подтверждаем создание базы:
Ждём минуту, проверяем порт:
[simterm]
[root@ip-172-31-9-216 dbadmin]# netstat -anp | grep 4804 udp 0 0 127.0.0.1:4804 0.0.0.0:* 8612/spread
[/simterm]
И подключаемся к базе как dbadmin используя /opt/vertica/bin/vsql
:
[simterm]
[root@ip-172-31-9-216 dbadmin]# /opt/vertica/bin/vsql testdb dbadmin Password: Welcome to vsql, the Vertica Analytic Database interactive terminal. Type: \h or \? for help with vsql commands \g or terminate with semicolon to execute query \q to quit testdb=>
[/simterm]
Готово.
Документация по адмнинистрированию — тут>>>.