Fork me on GitHub

Kudu-Deploy-Non-ClouderaManager

CDH 5.10.x开始支持Kudu 1.2.0+的管理,但是由于版本匹配问题,很多时候想用比较新的Kudu但是CDH版本不允许,此时就需要脱离CM手动搭建集群

环境与前期准备

  • Kudu与CDH版本的依赖关系

CDH版本支持

  • RPMS查询

(具体版本可更换url上的版本号进行查看)

CDH5.16.2-Kudu 1.7.0

  • root用户

在安装部署Kudu的时候必须是root用户,过程中还会涉及新建kudu用户

安装依赖与配置

  • 依赖安装
1
2
3
4
sudo yum install autoconf automake cyrus-sasl-devel cyrus-sasl-gssapi \
cyrus-sasl-plain flex gcc gcc-c++ gdb git java-1.8.0-openjdk-devel \
krb5-server krb5-workstation libtool make openssl-devel patch \
pkgconfig redhat-lsb-core rsync unzip vim-common which
  • 修改系统最大文件句柄数
1
2
3
4
vim /etc/security/limits.conf 

* soft nofile 65535
* hard nofile 65535
  • 域名互通

如果节点之间有域名,则必须添加hosts,使得各节点之间可以用域名互通

下载并安装RPM安装包

CDH5.16.2-Kudu 1.7.0下载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 依次wget

kudu-1.7.0+cdh5.16.2+0-1.cdh5.16.2.p0.24.el6.x86_64.rpm
kudu-client-devel-1.7.0+cdh5.16.2+0-1.cdh5.16.2.p0.24.el6.x86_64.rpm
kudu-client0-1.7.0+cdh5.16.2+0-1.cdh5.16.2.p0.24.el6.x86_64.rpm
kudu-debuginfo-1.7.0+cdh5.16.2+0-1.cdh5.16.2.p0.24.el6.x86_64.rpm
kudu-master-1.7.0+cdh5.16.2+0-1.cdh5.16.2.p0.24.el6.x86_64.rpm
kudu-tserver-1.7.0+cdh5.16.2+0-1.cdh5.16.2.p0.24.el6.x86_64.rpm

// 下载目录
rpm -ivh --nodeps *

Preparing... ########################################### [100%]
1:kudu ########################################### [ 17%]
2:kudu-client0 ########################################### [ 33%]
3:kudu-client-devel ########################################### [ 50%]
4:kudu-master ########################################### [ 67%]
5:kudu-tserver ########################################### [ 83%]
6:kudu-debuginfo ########################################### [100%]

创建数据目录,用户授权

由于Kudu对文件系统要求很高,坏盘会导致节点Crash,元数据损坏会导致节点无法重启,所以尽量将 datawal、metadatalogs 分多盘符存储

1
2
3
4
5
6
7
mkdir -p /app/kudu/master/data
mkdir -p /app/kudu/master/logs
mkdir -p /app/kudu/master/metadata
mkdir -p /app/kudu/master/wal

// 授权必须为kudu用户
chown -R kudu:kudu kudu/

Master and Tserver config

  • Master
1
2
3
4
5
6
7
8
9
10
11
12
vim /etc/kudu/conf/master.gflagfile

--fromenv=rpc_bind_addresses
--fromenv=log_dir

--fs_wal_dir=/app/kudu/master/wal
--fs_data_dirs=/app/kudu/master/data
--fs_metadata_dir=/app/kudu/master/metadata
--log_dir=/app/kudu/master/logs
--master_addresses=xxxx:7051,xxxx:7051,xxxx:7051
--block_cache_capacity_mb=4096
--max_log_size=40
  • Tserver
1
2
3
4
5
6
7
8
9
10
11
12
vim /etc/kudu/conf/tserver.gflagfile

--fromenv=rpc_bind_addresses
--fromenv=log_dir

--fs_wal_dir=/app/kudu/tserver/wal
--fs_data_dirs=/app/kudu/tserver/data
--fs_metadata_dir=/app/kudu/tserver/metadata
--log_dir=/app/kudu/tserver/logs
--tserver_master_addrs=xxxx:7051,xxxx:7051,xxxx:7051
--block_cache_capacity_mb=4096
--max_log_size=40

NTP同步

Kudu对NTP同步要求很高,不同步会导致节点Crash

1
2
3
sudo yum install ntp

sudo /etc/init.d/ntpd restart

启动、停止、重启

1
2
3
4
5
6
7
8
9
10
11
// start
/etc/init.d/kudu-master start
/etc/init.d/kudu-tserver start

// restart
/etc/init.d/kudu-master restart
/etc/init.d/kudu-tserver restart

// stop
/etc/init.d/kudu-master stop
/etc/init.d/kudu-tserver stop

Web UI

1
2
3
4
5
// master管理界面
http://ip:8051/masters

// tablet server管理界面
http://ip:8050/

转载请注明出处:https://github.com/imperio-wxm


Thank you for your support.