測試環境:RHEL 6.4 + Vertica 6.1.3-7
需求:搭建Vertica數據庫3節點的測試環境,建立測試用戶,建表,測試數據入庫。
1.各節點關閉防火牆和SELinux,配置主機名,IP地址,統一root密碼,確認系統字符集為utf-8
關閉防火牆和selinux:
service iptables status;getenforce;service iptables stop;setenforce 0;service iptables status;getenforce
關閉防火牆開機啟動:
chkconfig --list |grep ip;chkconfig iptables off;chkconfig ip6tables off;chkconfig --list |grep ip
系統字符集:
vi /etc/sysconfig/i18n
2.各節點配置root用戶ssh互信
ssh互信配置參考:http://www.cnblogs.com/jyzhao/p/3781072.html
3.統一各節點/etc/hosts文件
127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 192.168.1.101 vnode1 192.168.1.102 vnode2 192.168.1.103 vnode3
4.統一各節點的時間,生產環境建議建立NTP服務器同步,這里直接手動修改下
驗證時間:
ssh vnode1 date;ssh vnode2 date;ssh vnode3 date;
更正系統時間:
ssh vnode1 date 061210102014;ssh vnode2 date 061210102014;ssh vnode3 date 061210102014; --代表設置時間為2014年6月12日10:10:00
驗證hwclock時間:
ssh vnode1 hwclock -r;ssh vnode2 hwclock -r;ssh vnode3 hwclock -r;
更正hwclock時間:
ssh vnode1 hwclock -w;ssh vnode2 hwclock -w;ssh vnode3 hwclock -w;
5.root用戶,節點1上安裝vertica的rpm包
rpm -ivh /opt/vertica-*.rpm
6.root用戶,節點1上安裝各節點vertica
/opt/vertica/sbin/install_vertica -s vnode1,vnode2,vnode3 -r /opt/vertica-*.rpm
7.dbadmin用戶,用admintools 建庫
提示讓輸入license file pathname:此處不輸入直接Accept,這樣默認就為社區版(3節點,1TB裸數據),如果社區版滿足不了需求,就只能向HP購買license。 然后依次選擇 6 Configuration Menu -> 1 Create Database -> 輸入數據庫名稱 -> 輸入數據庫密碼 -> 選擇安裝的節點 -> 指定Catalog pathname和Data pathname -> 確認建庫 -> 建庫成功
注:建庫過程中建議動態去關注Dblog,看是否有什么問題,因為等建庫失敗后再去看有可能這個日志連同上級目錄就被自動刪除了。有一次搭建測試環境,同事裝完系統用root用戶限制了ulimit的open files最大為10240,導致dbadmin用戶無權自動修改這個參數,而Vertica要求這個參數至少是32768,默認安裝過程中會自動修改這個參數為65536。所以導致無法成功建庫,坑人的是屏幕輸出卻是毫不相關的一些Python的報錯信息。這時反過來找有沒有日志記錄了有效信息,才發現建庫失敗后,建庫過程中所建立的目錄都被自動刪除,回頭再找目錄下的日志自然已經是不復存在了。
8.新建用戶、方案、授權、初始化表
CREATE USER test identified by 'testpwd';
CREATE SCHEMA test AUTHORIZATION test;
vsql -Utest -wtestpwd
create table t_jingyu(
col1 int,
col2 varchar,
col3 timestamp not null)
PARTITION BY (date_part('doy', t_jingyu.col3));
9.入庫測試
[dbadmin@vnode1 test]$ more loadData.sh
#!/bin/bash
# loading data
vsql -Udbadmin -wadmin<<-EOF 2>&1
\timing
copy test.t_jingyu(
col1,
col2,
col3
)
from '$1' on v_verticadb_node0001
delimiter E'|' NULL '' NO ESCAPE DIRECT;
EOF
[dbadmin@vnode1 test]$ more sourceData.dat
1|jingyu|2014-06-19
2|xiaobei|2014-06-20
3|alfred|2014-05-20
4|martin|2014-06-20
5|靖宇|2014-06-19
[dbadmin@vnode1 test]$ sh loadData.sh /home/dbadmin/test/sourceData.dat
Timing is on.
Rows Loaded
-------------
5
(1 row)
Time: First fetch (1 row): 119.669 ms. All rows formatted: 119.919 ms
[dbadmin@vnode1 test]$
提示:入庫文件的字符集默認要求是utf-8的,否則入庫中文會亂碼。
