1、节点规划
节点 | kudu-master | kudu-server |
node1 | 是 | 是 |
node2 | 是 | 是 |
node3 | 是 | 是 |
2、本地yum
源配置
2.1、cdh
包下载
2.2、上传解压
把 5 个 G 的压缩文件上传其中某一台服务器,作为本地 yum
源服务器。
cd /cloudera_data
tar -zxvf cdh5.14.0-centos6.tar.gz
2.3、制作本地 yum
源
使用 Apache Server
来充当 web
服务器,使得其他机器可以通过 http
方式读取本地制作的 yum
源软件。这里我们选用第三台机器(node-3
)作为 yum
源。执行以下命令安装 apache Server
:
yum -y install httpd
service httpd start
然后创建新增一个解析本地 yum
源的配置文件:
cd /etc/yum.repos.d
vim localimp.repo
[localimp]
name=localimp
baseurl=http://node-3/cdh5.14.0
gpgcheck=0
enabled=1
2.4、创建连接、启动 httpd
ln -s /export/servers/cdh/5.14.0 /var/www/html/cdh5.14.0
访问 http://node-3/cdh5.14.0 验证是否成功。
问题:如果出现访问异常:You don't have permission to access /cdh5.14.0/on this server
,则需要关闭 Selinux
服务
-
临时关闭:执行命令:
setenforce 0
-
永久关闭
vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
# 重启服务 reboot
# 将 node-3 上制作好的 localimp 配置文件发放到所有需要 kudu 的节点上去
scp /etc/yum.repos.d/localimp.repo node-1:/etc/yum.repos.d
scp /etc/yum.repos.d/localimp.repo node-2:/etc/yum.repos.d
3、安装Kudu
使用 yum
命令,在不同的服务器下载对应的服务。
服务器 | 安装命令 |
node-1 | yum install -y kudu kudu-master kudu-tserver kudu-client0 kudu-client-devel |
node-2 | yum install -y kudu kudu-master kudu-tserver kudu-client0 kudu-client-devel |
node-3 | yum install -y kudu kudu-master kudu-tserver kudu-client0 kudu-client-devel |
# Kudu 的基本包
yum install kudu
# KuduMaster
yum install kudu-master
# KuduTserver
yum install kudu-tserver
#Kudu C ++客户端共享库
yum install kudu-client0
# Kudu C ++客户端共享库 SDK
yum install kudu-client-devel
4、Kudu
节点配置
安装完成之后。 需要在所有节点的/etc/kudu/conf
目录下有两个文件:master.gflagfile
和 tserver.gflagfile
。
4.1、修改 master.gflagfile
# cat /etc/kudu/conf/master.gflagfile
# 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
--fs_wal_dir=/export/servers/kudu/master
--fs_data_dirs=/export/servers/kudu/master
--master_addresses=node-1:7051,node-2:7051,node-3:7051
4.2、修改 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=/export/servers/kudu/tserver
--fs_data_dirs=/export/servers/kudu/tserver
--tserver_master_addrs=node-1:7051,node-2:7051,node-3:7051
4.3、 修改/etc/default/kudu-master
export FLAGS_log_dir=/var/log/kudu
#每台机器的 master 地址要与主机名一致,这里是在 node-1 上
export FLAGS_rpc_bind_addresses=node-1:7051
4.4、修改 /etc/default/kudu-tserver
export FLAGS_log_dir=/var/log/kudu
#每台机器的 tserver 地址要与主机名一致,这里是在 node-1 上
export FLAGS_rpc_bind_addresses=node-1:7050
Kudu
默认用户就是 Kudu
,所以需要将/export/servers/kudu
权限修改成Kudu
:
mkdir /export/servers/kudu
chown -R kudu:kudu /export/servers/kudu
(如果使用的是普通的用户,那么最好配置 sudo
权限)/etc/sudoers
文件中添加:
5、Kudu
集群启动和关闭
5.1、安装ntp
服务
# 启动的时候要注意时间同步 安装 ntp 服务
yum -y install ntp
# 设置开机启动
service ntpd start
chkconfig ntpd on
# 可以在每台服务器执行
/etc/init.d/ntpd restart
5.2、启动 Kudu
集群
在每台服务器上都执行下面脚本
service kudu-master start
service kudu-tserver start
如果启动失败,请前往日志目录下查看输出日志信息进行排错。
5.3、关闭 Kudu
集群
在每台服务器上都执行下面脚本
service kudu-master stop
service kudu-tserver stop
6、Kudu web UI
Kudu
的 web
管理界面。 http://master 主机名:8051
6.1、Master
的web
地址
6.2、TServer
的web
地址
http://node1:8051/tablet-servers
7、安装注意事项
7.1、给普通用户授权sudo
出错
# 问题
sudo: /etc/sudoers is world writable
# 解决方式:
pkexec chmod 555 /etc/sudoers
7.2、启动Kudu
的时候报错
:<<LongComment
blockFailed to start Kudu Master Server. Return value: 1 [FAILED]
去日志文件中查看:
Service unavailable: Cannot initialize clock: Error reading clock. Clock considered
unsynchronized
LongComment
# 解决:
## 第一步:首先检查是否有安装 ntp:如果没有安装则使用以下命令安装:
yum -y install ntp
## 第二步:设置随机启动:
service ntpd start
chkconfig ntpd on
7.3、启动过程中报错
:<<Long
Invalid argument: Unable to initialize catalog manager: Failed to initialize sys
tables
async: on-disk master list
Long
# 解决:
(1):停掉 master 和 tserver
(2):删除掉之前所有的/export/servers/kudu/master/*和/export/servers/kudu/tserver/*
7.4、启动过程中报错
:<<Long
error: Could not create new FS layout: unable to create file system roots: unable to
write instance metadata: Call to mkstemp() failed on name template
/export/servers/kudu/master/instance.kudutmp.XXXXXX: Permission denied (error 13)
Long
这是因为 kudu 默认使用 kudu 权限进行执行,可能遇到文件夹的权限不一致情况,更改文件夹权限即可