Vertica: установка и запуск кластера на AWS EC2

Автор: | 10/10/2019
 

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 офиса/дома:

Подключаемся:

ssh -i vertica-dev-eu-west-1.pem dbadmin@34.242.8.164
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 ~]$

Лицензия

Файл лицензии:

[dbadmin@ip-172-31-9-216 ~]$ cat /opt/vertica/config/licensing/vertica_community_edition.license.key
Vertica Community Edition
2011-11-22
Perpetual
1TB CE Nodes 3
767***E87

Настройка диска

Т.к. для данных мы подключали отдельный EBS — надо его отформатировать и смонтировать.

Проверяем диски:

[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

xvdf — вот он.

Создаём на нём один раздел (будьте аккуратны с sfdisk):

[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.

Проверяем:

[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

Раздел создан, форматируем его в ext4:

[root@ip-172-31-9-216 dbadmin]# mkfs.ext4 /dev/xvdf1

Создаём каталог, в который будем монтировать:

[root@ip-172-31-9-216 dbadmin]# mkdir -p /data/vertica

Монтируем:

[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

Создание кластера

Выполняем /opt/vertica/sbin/install_vertica --hosts 127.0.0.1 --dba-user-password-disabled --data-dir /data/vertica/:

[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.
Vertica и readahead size

Ошибка:

Readahead size of xvda (/dev/xvda1) is too low

Читаем доку по ссылке тут>>>, задаём readahead в 2048 в rc.local, что бы применялось во время перезагрузки:

[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

И сейчас вручную:

[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

Проверяем:

[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

RA == 2048, OK.

Перезапускаем создание кластера:

[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.

Создание базы данных Vertica

Переключаемся на пользователя dbadmin, и запускаем adminTools:

[dbadmin@ip-172-31-9-216 ~]$ /opt/vertica/bin/adminTools

Принимаем условия лицензии:

Выбираем Configuration Menu:

Создаём базу данных:

Выбираем модель базы данных, см. документацию тут>>>.

Оставляем значение по умолчанию — Enterprise, и задаём имя базы:

Задаём пароль:

Оставляем localhost, т.к. у нас одна нода в кластере:

Указываем каталог для данных:

Окей — у нас PoC, а не Production:

Подтверждаем создание базы:

Ждём минуту, проверяем порт:

[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

И подключаемся к базе как dbadmin используя /opt/vertica/bin/vsql:

[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=>

Готово.

Документация по адмнинистрированию — тут>>>.