kudu:安装kudu

目录

安装kudu

下载kudu rpm包

使用yum安装

配置集群

修改配置文件

配置ntp服务

启动kudu

检查是否安装成功

常见问题


安装kudu

本想使用官方文档上的方法编译kudu源码进行安装的,可是官网的方式需要解决一大堆依赖关系,搞了好久没装上,这个链接是我记录了按照官网方式编译时遇到的一些问题:https://blog.csdn.net/x950913/article/details/107394704

不过后面还提示gcc版本太低,所以就没有继续琢磨了,转而使用rpm包安装的方式。

下载rpm包后直接用rpm命令安装会因为缺失依赖而报错,而由于网络原因,也不能直接使用yum安装kudu,我直接使用yum install kudu时,都下不下来kudu的安装包。最后通过代理到cdh官网上下载了rpm包后,再使用yum进行安装。

以下介绍我的安装步骤。

下载kudu rpm包

kudu的rpm包可以在cdh官网上下载,附上1.9版本的下载地址:https://archive.cloudera.com/cdh6/6.2.1/redhat7/yum/RPMS/x86_64/

如果需要其他版本的,则在该网站中选择其他版本进行下载。

如果链接较慢或打不开网站,可以从我上传的资源中下载,有1.4和1.9两个版本。

1.4:https://download.csdn.net/download/x950913/12651715

1.9:https://download.csdn.net/download/x950913/12651728

下载以下六个包:

kudu-1.9.0+cdh6.2.1-1425774.el6.x86_64.rpm
kudu-client-devel-1.9.0+cdh6.2.1-1425774.el6.x86_64.rpm     
kudu-client0-1.9.0+cdh6.2.1-1425774.el6.x86_64.rpm     
kudu-debuginfo-1.9.0+cdh6.2.1-1425774.el6.x86_64.rpm     
kudu-master-1.9.0+cdh6.2.1-1425774.el6.x86_64.rpm     
kudu-tserver-1.9.0+cdh6.2.1-1425774.el6.x86_64.rpm

使用yum安装

下载后将rpm包上传至centos,推荐使用centos7,如果是centos6的话,需要升级gcc。

mkdir /tmp/yum

上传rpm包到/tmp/yum

[root@localhost yum]# ll
总用量 278116
-rw-r--r--. 1 root root  61941720 7月  22 22:09 kudu-1.4.0+cdh5.12.2+0-1.cdh5.12.2.p0.8.el7.x86_64.rpm
-rw-r--r--. 1 root root   3901860 7月  22 22:09 kudu-client0-1.4.0+cdh5.12.2+0-1.cdh5.12.2.p0.8.el7.x86_64.rpm
-rw-r--r--. 1 root root     54456 7月  22 22:09 kudu-client-devel-1.4.0+cdh5.12.2+0-1.cdh5.12.2.p0.8.el7.x86_64.rpm
-rw-r--r--. 1 root root 218868836 7月  22 22:09 kudu-debuginfo-1.4.0+cdh5.12.2+0-1.cdh5.12.2.p0.8.el7.x86_64.rpm
-rw-r--r--. 1 root root      5784 7月  22 22:09 kudu-master-1.4.0+cdh5.12.2+0-1.cdh5.12.2.p0.8.el7.x86_64.rpm
-rw-r--r--. 1 root root      5812 7月  22 22:09 kudu-tserver-1.4.0+cdh5.12.2+0-1.cdh5.12.2.p0.8.el7.x86_64.rpm


进入/tmp/yum,安装所有包,使用yum localinstall会自动安装所有依赖:

cd /tmp/yum
yum localinstall *.rpm

以上kudu就算安装完成了,接下来进行集群配置。

配置集群

kudu可单独部署,也可集群部署,机器数量官方建议是奇数个,如果集群数量为三台,可容忍一台故障;如果是四台,则也只允许一台故障。

我使用了三台机器搭建集群,每台都部署了master和tserver服务,实际生产环境中可适当调整,节点主机名:kudu1、kudu2、kudu3。

修改配置文件

 /etc/default/kudu-master

该配置文件配置master节点保存日志的目录,以及自身提供master服务所使用的端口。

vim /etc/default/kudu-master

kudu1

export FLAGS_log_dir=/var/log/kudu
export FLAGS_rpc_bind_addresses=kudu1:7051

kudu2

export FLAGS_log_dir=/var/log/kudu
export FLAGS_rpc_bind_addresses=kudu2:7051

kudu3

export FLAGS_log_dir=/var/log/kudu
export FLAGS_rpc_bind_addresses=kudu3:7051

/etc/default/kudu-tserver 

该配置文件配置tserver节点保存日志的目录,以及自身提供tserver服务所使用的端口。

vim /etc/default/kudu-tserver

内容与/etc/default/kudu-master一致。

export FLAGS_log_dir=/var/log/kudu
export FLAGS_rpc_bind_addresses=kudu1:7050

/etc/kudu/conf/master.gflagfile

该配置文件配置当前节点所属集群的master节点信息,以及预写入日志目录,和data存放目录,各节点的配置应该保持一致。

# Do not modify these two lines. If you wish to change these variables,
# modify them in /etc/default/kudu-master.
--fromenv=rpc_bind_addresses
--fromenv=log_dir


#部署master服务的所有结点
--master_addresses=kudu1:7051,kudu2:7051,kudu3:7051

#预写入日志存放目录
--fs_wal_dir=/var/lib/kudu/master/wal

#数据存放目录
--fs_data_dirs=/var/lib/kudu/master/data

#副本数 默认为3
--default_num_replicas=2

/etc/kudu/conf/tserver.gflagfile

# 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=/var/lib/kudu/tserver/wal

#数据存放路径
--fs_data_dirs=/var/lib/kudu/tserver/data

#部署tserver服务的所有结点
--tserver_master_addrs=kudu1:7051,kudu2:7051,kudu3:7051

并创建配置文件中配置的目录(每台机器)

mkdir -p /var/lib/kudu/master/wal 
mkdir -p /var/lib/kudu/master/data 
mkdir -p /var/lib/kudu/tserver/wal 
mkdir -p /var/lib/kudu/tserver/data

创建kudu用户

kudu运行时以kudu用户权限运行的,因此需要为kudu用户配置文件目录(使kudu可以读写以上创建的目录)权限,和bash权限。

以下操作每台机器都要做。

将目录所有者修改为kudu:

chown -R kudu:kudu /var/lib/kudu

配置kudu bash权限(如果kudu的bash已经是/bin/bash则不用修改)

vim /etc/passwd

#将kudu:x:996:995:Kudu:/var/lib/kudu:/bin/bash修改为
kudu:x:996:995:Kudu:/var/lib/kudu:/bin/bash

配置ntp服务

kudu对ntp有依赖,如果不配置,则无法启动kudu服务。如果机器已经配置了,则可以略过。

yum install -y ntp ntpdate

选择一台机器作为ntp服务节点,主节点从阿里服务器同步时间,其他节点从这个节点同步时间。以kudu1节点为例。

vim /etc/ntp.conf

#将server部分修改为以下内容
server ntp1.aliyun.com
server ntp2.aliyun.com
server ntp3.aliyun.com
server ntp4.aliyun.com
server ntp5.aliyun.com
server ntp6.aliyun.com
server ntp7.aliyun.com
server  127.127.1.0
Fudge 127.127.1.0 stratum 10

修改主节点以外的所有节点,使之从主节点同步时间。

vim /etc/ntp.conf


#在server部分添加如下语句,将server指向主节点。
server 192.168.68.121
Fudge 192.168.68.121 stratum 10

修改所有节点

vim /etc/ntp.conf


#将ip修改为本机,每台都不一样
restrict 192.168.68.121 nomodify notrap nopeer noquery  

#网关和子网掩码
restrict 192.168.68.1 mask 255.255.255.0 nomodify notrap

启动ntpd服务

#启动服务
systemctl start ntpd

#设置开机自启
chkconfig ntpd on

启动kudu

systemctl start kudu-master
systemctl start kudu-tserver

关闭防火墙

systemctl stop firewalld

检查是否安装成功

访问master节点的8051端口:

常见问题

8051端口无法访问,查看日志:

vim /var/log/kudu/kudu-master.ERROR 

发现报错:

Log file created at: 2020/07/25 19:31:13
Running on machine: kudu1
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
E0725 19:31:13.913631 15347 master.cc:183] [email protected]:7051: Unable to init master catalog manager: Not found: Unable to initialize catalog manager: Failed to initialize sys tables async: Unable to load consensus metadata for tablet 00000000000000000000000000000000: /var/lib/kudu/master/data/consensus-meta/00000000000000000000000000000000: No such file or directory (error 2)
F0725 19:31:13.913826 15286 master_main.cc:71] Check failed: _s.ok() Bad status: Not found: Unable to initialize catalog manager: Failed to initialize sys tables async: Unable to load consensus metadata for tablet 00000000000000000000000000000000: /var/lib/kudu/master/data/consensus-meta/00000000000000000000000000000000: No such file or directory (error 2)

原因是上次启动失败导致已经再存储目录中创建了文件,删除这些文件,并重启master服务解决:

#删除文件
[root@kudu2 ~]# rm -rf /var/lib/kudu/master/wal/*
[root@kudu2 ~]# rm -rf /var/lib/kudu/master/data/*
[root@kudu2 ~]# rm -rf /var/lib/kudu/tserver/wal/*
[root@kudu2 ~]# rm -rf /var/lib/kudu/tserver/data/*

#重启服务
[root@kudu2 ~]# systemctl restart kudu-master

猜你喜欢

转载自blog.csdn.net/x950913/article/details/107477566