Kudu安装和部署

(1)下载Kudu相关安装包
Kudu版本是1.7.0-cdh5.15.1,使用rpm包安装,网址如下:

http://archive.cloudera.com/cdh5/redhat/7/x86_64/cdh/5.15.1/RPMS/x86_64/

打开后直接Ctrl + F 搜索Kudu,出现的rpm安装包总共6个,全部下载

kudu-1.7.0+cdh5.15.1+0-1.cdh5.15.1.p0.4.el7.x86_64.rpm

kudu-client-devel-1.7.0+cdh5.15.1+0-1.cdh5.15.1.p0.4.el7.x86_64.rpm

kudu-client0-1.7.0+cdh5.15.1+0-1.cdh5.15.1.p0.4.el7.x86_64.rpm

kudu-debuginfo-1.7.0+cdh5.15.1+0-1.cdh5.15.1.p0.4.el7.x86_64.rpm

kudu-master-1.7.0+cdh5.15.1+0-1.cdh5.15.1.p0.4.el7.x86_64.rpm

kudu-tserver-1.7.0+cdh5.15.1+0-1.cdh5.15.1.p0.4.el7.x86_64.rpm

(2)进入到安装包所在目录,执行以下命令

sudo rpm -ivh --nodeps *

(3)创建master元数据目录和table数据目录以及log日志目录

sudo mkdir -p /data/kudu/kudu_master_data
sudo mkdir -p /data/kudu/kudu_tserver_data
sudo mkdir -p /data/log/kudu

进入/data目录,将下面所有目录和文件的用户和组修改为kudu(Kudu默认用户,不修改可能会出现权限问题)

sudo chown -R kudu:kudu *

(4)修改Kudu配置文件
/etc/kudu/conf/master.gflagfile

--fs_wal_dir=/data/kudu/kudu_master_data
--fs_data_dirs=/data/kudu/kudu_master_data

/etc/kudu/conf/tserver.gflagfile

--fs_wal_dir=/data/kudu/kudu_tserver_data
--fs_data_dirs=/data/kudu/kudu_tserver_data
--tserver_master_addrs=hadoop000:7051

(5)启动Kudu
分别启动master和tserver

sudo /etc/init.d/kudu-master start
sudo /etc/init.d/kudu-tserver start

启动报错:

Failed to start Kudu Master Server. Return value: 1        [FAILED]

查看Master日志

tail -200f var/log/kudu-master.out

发现如下错误:

Check failed: _s.ok() Bad status: Service unavailable: Cannot initialize clock: Error reading clock. Clock considered unsynchronized

原因:
Kudu 默认的一致性模型是 Snapshot Consistency,即客户端可以一致的访问到某个时间点的一个快照。为了实现更高要求的外部一致性(External Consistency),Kudu借鉴 Spanner 使用 commit-wait 机制,但是 commit-wait 强依赖于 TrueTime,而 TrueTime 需要各种昂贵的硬件设备支持,目前 Kudu通过纯软件算法的方式来实现时钟算法,因此它要求Master和Tablet Server之间必须保证时钟同步,否则无法启动。

解决方法:
如果没有安装ntp,先安装它

sudo yum -y install ntp

然后启动ntp服务

sudo service ntpd start

设置ntp开机自启

sudo chkconfig ntpd on

可以使用ntpd命令查看ntp是否同步,如果显示unsynchronised,则需要等待。因为ntpd服务开启之后需要等待一段时间才能完成同步,可能三五分钟,也可能一个小时才行,可以通过ntptime命令查看是否同步成功,等待ntp同步之后然后再重新启动master和tserver。具体细节可以查看官网文档中关于ntp的描述:

https://kudu.apache.org/docs/troubleshooting.html#ntp

重启虚拟机之后发现时钟又不同步,导致Kudu又无法启动,不堪其扰,于是修改ntp配置文件,一劳永逸:

sudo vim /etc/ntp.conf

加入以下内容:

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst
# 上面的server配置全部注释,加入以下两条
server 127.127.1.0 # 同步本地时间
fudge 127.127.1.0 stratum 8 # 本地服务器的stratum(层次)大小不能超过16

(6)验证Kudu是否启动成功
ps -ef | grep kudu
也可以通过WebUI查看,默认端口是8050:

hadoop000:8050

你可能感兴趣的:(Kudu)