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

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

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

Готово.

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