參考文章:Apache Kudu集羣安裝-use
安裝Kudu集羣必須是奇數的集羣,建議用一個主節點(無容錯)或者三個主節點(可以允許容錯一個),雙主機部署無容錯功能。
集羣環境:
節點 | 主機名 | 角色 |
---|---|---|
192.168.11.70 | hnode1 | Master Server、Tablet Server |
192.168.11.71 | hnode2 | Master Server、Tablet Server |
192.168.11.72 | hnode3 | Master Server、Tablet Server |
一、下載安裝包
# 在hnode1下載
https://archive.cloudera.com/cdh6/6.2.1/redhat7/yum/RPMS/x86_64/
# 下載如下文件
kudu-1.9.0+cdh6.2.1-1425774.el7.x86_64.rpm
kudu-client-devel-1.9.0+cdh6.2.1-1425774.el7.x86_64.rpm
kudu-client0-1.9.0+cdh6.2.1-1425774.el7.x86_64.rpm
kudu-debuginfo-1.9.0+cdh6.2.1-1425774.el7.x86_64.rpm
kudu-master-1.9.0+cdh6.2.1-1425774.el7.x86_64.rpm
kudu-tserver-1.9.0+cdh6.2.1-1425774.el7.x86_64.rpm
二、安裝rpm包並配置
2.1 安裝rpm包
# 首先添加kudu賬戶
useradd kudu
# 在hnode1使用yum 本地安裝模式,可以關聯安裝依賴包:
yum localinstall -y kudu-1.9.0+cdh6.2.1-1425774.el7.x86_64.rpm
yum localinstall -y kudu-client-devel-1.9.0+cdh6.2.1-1425774.el7.x86_64.rpm
yum localinstall -y kudu-client0-1.9.0+cdh6.2.1-1425774.el7.x86_64.rpm
yum localinstall -y kudu-debuginfo-1.9.0+cdh6.2.1-1425774.el7.x86_64.rpm
yum localinstall -y kudu-master-1.9.0+cdh6.2.1-1425774.el7.x86_64.rpm
yum localinstall -y kudu-tserver-1.9.0+cdh6.2.1-1425774.el7.x86_64.rpm
# 通過scp命令將安裝包拷貝到hnode2、hnode3,並執行上面的安裝步驟
scp -r [email protected]:/opt/modules/kudu/*.rpm /opt/modules/kudu
2.2 配置
kudu配置項分爲穩定配置(stable),高級配置(advanced)
穩定配置可用於配置常見任務;
高級配置包含有一些正在進行嘗試的調試,可能會引起bug;
採用rpm安裝之後,配置文件默認存在/etc/kudu/conf
a. 節點配置說明:
----master.gflagfile
----block_cache_capacity_mb 塊高速緩存容量(MB)(選配)
----log_force_fsync_all 每次寫入後,Log/WAL 是否應顯式調用(選配)
----fs_data_dirs Master 將放置其數據塊的目錄的逗號分隔列表(必須配置)
----master-addresses kudu-master的rpc通訊地址,不指定默認爲單節點(多master必須配置,單master不能配置)
----fs_wal_dir Master 將其預寫日誌的目錄(必須配置)
----log_dir 存儲主日誌文件的目錄。(必須配置)
----tserver.gflagfile
----fs_data_dirs Tablet Server 將放置其數據塊的目錄的逗號分隔列表(必須配置)
----fs_wal_dir Tablet Server 將放置預寫日誌的目錄(必須配置)
----log_dir 存儲 Tablet Server 日誌文件的目錄(必須配置)
----tserver_master_addrs tablet server 應連接的主機的逗號分隔地址(必須配置)
----block_cache_capacity_mb 分配給 Kudu Tablet Server 塊緩存的最大內存量(選配)
----memory_limit_hard_bytes Tablet Server 預存傳入並未寫入時消耗的最大內存量(選配)
b. 各個節點的配置kudu-master文件:
vi /etc/default/kudu-master
# hnode1
export FLAGS_log_dir=/var/log/kudu
export FLAGS_rpc_bind_addresses=hnode1:7051
# hnode2
export FLAGS_log_dir=/var/log/kudu
export FLAGS_rpc_bind_addresses=hnode2:7051
# hnode3
export FLAGS_log_dir=/var/log/kudu
export FLAGS_rpc_bind_addresses=hnode3:7051
#最後保存退出
c. 各個節點的配置master.gflagfile文件:
vi /etc/kudu/conf/master.gflagfile
# hnode1、hnode2、hnode3配置相同,文件內容如下:
# Do not modify these two lines. If you wish to change these variables,
# modify them in /etc/default/kudu-tserver.
--fromenv=rpc_bind_addresses
--fromenv=log_dir
--fs_wal_dir=/opt/modules/kudu/tserver/fs_wal_dir
--fs_data_dirs=/opt/modules/kudu/tserver/fs_data_dirs
--tserver_master_addrs=hnode1:7051,hnode2:7051,hnode3:7051
d. 各個節點的配置kudu-tserver文件:
# Server配置如下:
vi /etc/default/kudu-tserver
# hnode1
export FLAGS_log_dir=/var/log/kudu
export FLAGS_rpc_bind_addresses=hnode1:7050
# hnode2
export FLAGS_log_dir=/var/log/kudu
export FLAGS_rpc_bind_addresses=hnode2:7050
# hnode3
export FLAGS_log_dir=/var/log/kudu
export FLAGS_rpc_bind_addresses=hnode3:7050
# 保存退出
e. 各個節點的配置tserver.gflagfile文件:
vi /etc/kudu/conf/tserver.gflagfile
# hnode1、hnode2、hnode3文件內容如下:
# Do not modify these two lines. If you wish to change these variables,
# modify them in /etc/default/kudu-tserver.
--fromenv=rpc_bind_addresses
--fromenv=log_dir
--fs_wal_dir=/opt/modules/kudu/tserver/fs_wal_dir
--fs_data_dirs=/opt/modules/kudu/tserver/fs_data_dirs
--tserver_master_addrs=hnode1:7051,hnode2:7051,hnode3:7051
三、安裝NTP服務
Ntp服務用於節點之間進行時間同步,如果只有一臺主機,可以不用安裝,如果有一臺以上,則需要安裝NTP服務進行時間同步。
安裝參考:https://blog.csdn.net/justlpf/article/details/105875702
四、設置權限目錄並啓動
# 給kudu用戶設置目錄的訪問權限
chown -R kudu:kudu /opt/modules/kudu
# 啓動
service kudu-master start
service kudu-tserver start
五、驗證
5.1 查看所有Master
http://hnode1:8051/masters
5.2 查看所有Tablet
http://hnode1:8051/tablet-servers