はじめに
勤務先でVerticaを運用しているので自宅学習用にVertica環境を準備してみようと言うことで実際に行った操作や設定等をまとめていこうと思います。
環境について
OS:CentOS 6.10
SW:Vertica10.0.0
※Oracle VirtualBoxを使用しローカルの仮想環境にて実施しています。
※VerticaはEnterprise Modeで作成しています。
事前準備
Oracle VirtualBoxのインストール
→今回は省略させていただきます。
CentOSのisoファイルのダウンロード
以下URLからCentOS6.10のisoをダウンロードしておいてください。
https://www.centos.org/download/
Verticaの試用版のダウンロード
以下URLから「Access Our Free Community Edition Trial」の『Download Now』をクリック。
https://www.vertica.com/try/
ユーザ情報を登録するとrpmファイルがダウンロードできます。
事前作業
VirtualBoxで仮想環境を作成し、CentOS6.10をインストールする。
基本はデフォルトで進めますが、ストレージのサイズは10GB以上にしないと溢れる可能性があります。
また、以下の設定は別途実施しています。
1.ネットワークの設定
VirtualBoxの設定から「ネットワーク」→「アダプター1」→「割り当て」をブリッジアダプターに変更します。
この作業はssh接続でログインして作業できるようにプライベートLANのIPがふられるように設定しています。(詳細は調べきれていないです。。。)
2.ディスクの追加
Verticaの「data領域」と「catalog領域」を別パーティションにするために2つディスクを作成します。
VirtualBoxの設定から「ストレージ」→「コントローラ:SATA」→「ハードディスクの追加」を選択し、10GBのストレージを2つ作成します。
本作業
ディスクの追加
作成しておいたストレージがあることを確認します。
# ll /dev/sd*
brw-rw---- 1 root disk 8, 16 9月 22 15:59 2020 /dev/sdb
brw-rw---- 1 root disk 8, 32 9月 22 15:59 2020 /dev/sdc
# fdisk /dev/sdb <==ディスク作成一回目
# fdisk /dev/sdc <==ディスク作成二回目
...
コマンド (m でヘルプ): n <==nを入力してEnter
コマンドアクション
e 拡張
p 基本領域 (1-4)
p <==pを入力してEnter
領域番号 (1-4): 1 <==一回目は1を選択、二回目は2を選択
最初 シリンダ (1-652, default 1): 1 <==とりあえず左の最小値を入力
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-652, default 652): 652 <==右の最大値を入力
コマンド (m でヘルプ): w <==wを入力して書き込みを行う。
# ll /dev/sd*
brw-rw---- 1 root disk 8, 16 9月 22 15:59 2020 /dev/sdb
brw-rw---- 1 root disk 8, 17 9月 22 15:59 2020 /dev/sdb1
brw-rw---- 1 root disk 8, 32 9月 22 15:59 2020 /dev/sdc
brw-rw---- 1 root disk 8, 34 9月 22 15:59 2020 /dev/sdc2
ext4でファイルシステムを作成
# mkfs -t ext4 /dev/sdb1
# mkfs -t ext4 /dev/sdc2
Vertica用にマウントポイントを作成
# mkdir /data
# mkdir /catalog
マウントを実施
# mount -t ext4 /dev/sdb1 /data
# mount -t ext4 /dev/sdc2 /catalog
マウントされたことを確認
# df -h
ilesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
8.3G 6.7G 1.2G 85% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 477M 28M 424M 7% /boot
/dev/sdb1 9.8G 23M 9.2G 1% /data <==Verticaのdata領域
/dev/sdc2 9.8G 1.8G 7.5G 19% /catalog <==Verticaのcatalog領域
ディスクID(UUID)を確認
# blkid /dev/sdb1
# blkid /dev/sdc2
/dev/sdb1: UUID="ffb142f2-62c3-4646-950b-8f1f9e543c8c" TYPE="ext4"
OS起動時に自動でマウントされるように設定
# cp -p /etc/fstab /etc/fstab.org <==バックアップ取得
# vi /etc/fstab
UUID=<確認したUUIDを記載> /data ext4 defaults 1 1
パッケージのインストール
# yum install gcc unzip wget dialog perl
Verticaインストール時のエラーに対応
**HINT「S0305」に対応**
==エラー内容======== HINT(eS0305): TZ is unset for dbadmin. Consider updating .profile or .bashrc https://www.vertica.com/docs/10.0.x/HTML/index.htm#cshid=S0305tzdataの更新を行う
# yum update tzdata
タイムゾーンを確認
# cat /etc/sysconfig/clock
バックアップ取得
# cp -p /etc/profile /etc/profile.org
プロファイルにタイムゾーンを追加
# vi /etc/profile
以下を追加
export TZ="Asia/Tokyo"
環境変数を適用
# source /etc/profile
適用されたことを確認
# env | grep TZ
export TZ="Asia/Tokyo"
**HINT「S0041、S0040、S0045」に対応**
HINT(eS0041): Could not find the following tools normally provided by the mcelog package: mcelog
https://www.vertica.com/docs/10.0.x/HTML/index.htm#cshid=S0041
HINT(eS0040): Could not find the following tools normally provided by the pstack or gstack package: pstack/gstack
https://www.vertica.com/docs/10.0.x/HTML/index.htm#cshid=S0040
HINT(eS0045): Could not find the following tools normally provided by the sysstat package: iostat, mpstat
https://www.vertica.com/docs/10.0.x/HTML/index.htm#cshid=S0045
以下パッケージをインストール
# yum install pstack mcelog sysstat
**WARN「N0010」に対応**
==エラー内容======== WARN(eN0010): Linux iptables (firewall) has some non-trivial rules in tables: filter https://www.vertica.com/docs/10.0.x/HTML/index.htm#cshid=N0010iptablesのサービスを停止。(本番環境では非推奨)
# service iptables save
# service iptables stop
# chkconfig iptables off
# service ip6tables save
# service ip6tables stop
# chkconfig ip6tables off
**WARN「S0112」に対応**
==エラー内容======== WARN(eS0112): vm.swappiness is higher than recommended: your 60 > 1 https://www.vertica.com/docs/10.0.x/HTML/index.htm#cshid=S0112# sysctl -a | grep vm.swappiness
# cp -p /etc/sysctl.conf /etc/sysctl.conf.org
# vi /etc/sysctl.conf
以下を追加
vm.swappiness = 1
# reboot
# sysctl -a | grep vm.swappiness
# cat /proc/sys/vm/swappiness
**FAIL「S0020」に対応**
==エラー内容======== FAIL(eS0020): Readahead size of (/dev/mapper/VolGroup-lv_root) is too low for typical systems: 256 < 2048 https://www.vertica.com/docs/10.0.x/HTML/index.htm#cshid=S0020# /sbin/blockdev --setra 2048 /dev/mapper/VolGroup-lv_root
# echo '/sbin/blockdev --setra 2048 /dev/mapper/VolGroup-lv_root' >> /etc/rc.local
**FAIL「S0180」に対応**
==エラー内容======== FAIL(eS0180): Insufficient swap size. Need 2.00 GB, have 0.80 GB https://www.vertica.com/docs/10.0.x/HTML/index.htm#cshid=S0180# dd if=/dev/zero of=/swapfile bs=1M count=2048
# mkswap /swapfile
# chmod 600 /swapfile
# swapon /swapfile
# swapon -s
# vi /etc/fstab
以下を追加
/swapfile swap swap defaults 0 0
# reboot
**FAIL「S0030」に対応**
==エラー内容======== FAIL(eS0030): ntp daemon process is not running: ['ntpd', 'ntp', 'chronyd'] https://www.vertica.com/docs/10.0.x/HTML/index.htm#cshid=S0030# yum install ntp
# service ntpd start
# chkconfig ntpd on
**FAIL「S0081」に対応**
==エラー内容======== FAIL(eS0081): SELinux appears to be enabled and not in permissive mode. https://www.vertica.com/docs/10.0.x/HTML/index.htm#cshid=S0081# getenforce <==disabledが出力された場合は対応不要
# vi /etc/selinux/config
以下行をdisabledに変更し無効にする。
SELINUX=disabled
# reboot
# getenforce <==disabledが出力されること
**FAIL「S0310」に対応**
==エラー内容======== FAIL(eS0310): Transparent hugepages is set to 'always'. Must be 'never' or 'madvise'. https://www.vertica.com/docs/10.0.x/HTML/index.htm#cshid=S0310以下を実行しneverに変更する。
# echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
Verticaのインストール
WinSCPなどでサーバ上にrpmファイルを配置してください。
sshで接続している場合は以下コマンドで/home/root直下に配置が可能です。
scp <ローカルのrpm配置先> root@IPアドレス:~/
RPMからインストールを実行
# rpm -Uvh vertica-10.0.0-0.x86_64.RHEL6.rpm
インストールされた資材からさらにインストール実行
実行中にパスワードを聞かれるため、dbadminユーザのパスワードを設定
# /opt/vertica/sbin/install_vertica --hosts 127.0.0.1 --rpm ~/vertica-10.0.0-0.x86_64.RHEL6.rpm
作成したvertica用のディレクトリのパーミッションを変更する。
# chown -R dbadmin.verticadba /data
# chown -R dbadmin.verticadba /catalog
Verticaデータベースの作成
dbadminユーザに切り替え
# su - dbadmin
admintoolsを使用しコマンドラインでデータベースの作成を行う。
$ admintools -t create_db --data_path=/data --catalog_path=/catalog --database=vdb --password=<任意のデータベースのパスワード> --hosts=localhost
無事に作成が終われば以下コマンドでDBへの接続ができるようになります。
$ vsql
参考サイト
Vertica公式ドキュメント
https://www.vertica.com/docs/10.0.x/HTML/Content/Home.htm
おわりに
基本はVerticaの公式ドキュメントを読んで進めているため、大ハマりはせずに進めました。
これでVerticaを好き放題できる準備は整ったのでいろいろ検証してみたいと思います。
以上、ご覧いただきありがとうございました。