|NO.Z.00003|——————————|^^ 部署 ^^|——|Hadoop&OLAP_Kudu.V03|——|kudu.v03|安装运行|ntp|
一、安装和运行
### --- 安装前提和准备
~~~ # 硬件:
~~~ 一台或者多台机器跑kudu-master。
~~~ 建议跑一个master(无容错机制)、
~~~ 三个master(允许一个节点运行出错)或者五个master(允许两个节点出错)。
~~~ 一台或者多台机器跑kudu-tserver。当需要使用副本,至少需要三个节点运行kudu-tserver服务。
~~~ # 操作系统(主要是linux系统,windows系统不支持):
~~~ RHEL 6, RHEL 7, CentOS 6, CentOS 7, Ubuntu 14.04 (Trusty), Ubuntu 16.04 (Xenial),
~~~ Debian 8 (Jessie), or SLES 12.
~~~ # 内核和文件系统支持 hole punching 选项。
~~~ ntp服务。
~~~ xfs or ext4 formatted drives
~~~ # 存储:
~~~ 尽量使用固态存储,将显著提高kudu性能。
~~~ # 管理
~~~ 如果你使用的是CDH,需要Cloudera Manager 5.4.3及以上的版本。
~~~ # 环境说明
~~~ os:CentOS Linux release 7.6.1810 (Core)
~~~ hadoop01、hadoop02、hadoop03 三台机器hadoop01启动Master;
~~~ hadoop01、hadoop02、hadoop03启动tserver
二、安装ntp服务
### --- 安装ntp服务
~~~ # hadoop01、hadoop02、hadoop03安装ntp服务:
[root@hadoop01 ~]# yum -y install ntp
### --- 配置文件修改
~~~ # 修改ntp.conf配置文件:hadoop01、hadoop02、hadoop03
[root@hadoop01 ~]# vim /etc/ntp.conf
~~~所有主机注释掉这四行:21~24行
# 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
### --- 修改ntp-server:192.168.1.121服务器配置文件:
~~~ # 以hadoop01作为ntp-server服务器:修改hadoop01:192.168.1.121节点上的配置文件
[root@hadoop01 ~]# vim /etc/ntp.conf
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap # 第18行:给192.168.1.0网段,子网掩码为255.255.255.0的局域网机的机器有同步时间的权限
server 192.168.1.121 prefer # 第26行:prefer代表优先使用此ip做同步
server 127.127.1.0 # 第27行:当所有服务器都不能使用时,使用本机作为同步服务器
fudge 127.127.1.0 stratum 10 # 第28行
### --- 修改ntp-client:192.168.1.122和192.168.1.123节点上的配置文件
~~~ # 修改ntp-client:hadoop02、hadoop03配置文件
[root@hadoop02 ~]# vim /etc/ntp.conf
~~~第25~27行添加如下内容
server 192.168.1.121 prefer
server 127.127.1.0
fudge 127.127.1.0 stratum 10
### --- 启动NTP服务
~~~ # 所有主机:hadoop01、hadoop02、hadoop03启动ntp服务
[root@hadoop01 ~]# systemctl status ntpd
[root@hadoop01 ~]# systemctl enable ntpd
### --- 检验
~~~ # 所有主机:时间同步验证:检查ntp服务是否成功输入:ntpstat:输出如下则启动成功并且同步已完成
[root@hadoop01 ~]# ntpstat
synchronised to local net (127.127.1.0) at stratum 11
time correct to within 3948 ms
polling server every 64 s
[root@hadoop02 ~]# ntpstat
synchronised to NTP server (192.168.1.121) at stratum 12
time correct to within 55 ms
polling server every 64 s
[root@hadoop03 ~]# ntpstat
synchronised to NTP server (192.168.1.121) at stratum 12
time correct to within 55 ms
polling server every 64 s
### --- 在所有主机效验时间效验
~~~ # systemctl status ntpd.service 各个节点检查启动成功:hadoop01、hadoop02、hadoop03
~~~ # 否则启动kudu相关服务会报错时钟同步,kudu对时间要求很精准
[root@hadoop01 ~]# ntpdate -u ntp.api.bz
[root@hdp-1 kudu]# systemctl status ntpd.service
三、配置Yum的Repository
### --- 配置Repository
~~~ 在使用 yum来安装kudu的时候,
~~~ 由于kudu不是yum的常规组建,直接安装会找不到kudu,
~~~ 所以第一步需要将kudu的repo文件下载并放置到合适的位置。
### --- 下载kudu的repo文件 下载repo文件: wget
~~~ # 下载kude.repo配置文件:hadoop01、hadoop02、hadoop03
[root@hadoop01 ~]# wget http://archive.cloudera.com/kudu/redhat/7/x86_64/kudu/cloudera-kudu.repo
~~~ # 将下载的repo文件放置到/etc/yum.repos.d/目录下
[root@hadoop01 ~]# mv cloudera-kudu.repo /etc/yum.repos.d/
四、安装kudu
### --- 安装,在每个节点上执行
~~~ # 安装kudu-master:hadoop01、hadoop02、hadoop03
[root@hadoop01 ~]# yum install kudu kudu-master kudu-client0 kudu-client-devel -y
~~~ # 安装kudu-slave:hadoop01、hadoop02、hadoop03
[root@hadoop01 ~]# yum install kudu kudu-tserver kudu-client0 kudu-client-devel -y
### --- 配置并启动kudu
~~~ master:hadoop01
~~~ slaver:hadoop01、hadoop02、hadoop03
~~~ 安装完成,在/etc/kudu/conf目录下有两个文件:master.gflagfile和tserver.gflagfile
~~~ kudu-master-ip地址:192.168.1.121
~~~ kudu-slaver-ip地址:192.168.1.121、192.168.1.122、192.168.1.123
~~~ 所以192.168.1.121节点需要修改master.gflagfile和tserver.gflagfile文件,
~~~ 而192.168.1.122和192.168.1.123只需要修改tserver.gflagfile文件
### --- 修改hadoop01:kube-master配置文件
~~~ # 修改kudu-master启动配置 hadoop01节点
[root@hadoop01 ~]# vim /etc/default/kudu-master
~~~修改以下内容,主要是修改ip:第2行
export FLAGS_rpc_bind_addresses=192.168.1.121:7051
### --- 修改每个节点的kudu-tserver启动配置
~~~ # 修改kudu-tserver配置文件:hadoop01、hadoop02、hadoop03
~~~ # 修改以下内容,主要是修改ip为当前节点ip:第2行
[root@hadoop01 ~]# vim /etc/default/kudu-tserver
export FLAGS_rpc_bind_addresses=192.168.1.121:7050
[root@hadoop02 ~]# vim /etc/default/kudu-tserver
export FLAGS_rpc_bind_addresses=192.168.1.122:7050
[root@hadoop03 ~]# vim /etc/default/kudu-tserver
export FLAGS_rpc_bind_addresses=192.168.1.123:7050
### --- master.gflagfile的配置修改
~~~ # 在hadoop01、hadoop02、hadoop03上修改master.gflagfile配置文件
[root@hadoop01 ~]# vim /etc/kudu/conf/master.gflagfile
--fromenv=rpc_bind_addresses
--fromenv=log_dir
--fs_wal_dir=/var/lib/kudu/master
--fs_data_dirs=/var/lib/kudu/master
-unlock_unsafe_flags=true
-allow_unsafe_replication_factor=true
-default_num_replicas=1 # 此参数可以调整备份数量,默认为3
### --- tserver.gflagfile 的配置修改
~~~ 注意,这里的–tserver_master_addrs指明了集群中master的地址,
~~~ 指向同一个master的tserver形成了一个kudu集群
# --- 在hadoop01、hadoop02、hadoop03修改配置文件:tserver.gflagfile
[root@hadoop01 ~]# vim /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
--fs_data_dirs=/var/lib/kudu/tserver
--tserver_master_addrs=hadoop01:7051
-unlock_unsafe_flags=true
-allow_unsafe_replication_factor=true
-default_num_replicas=1
--tserver_master_addrs=192.168.1.121:7051 # 此参数指定master
### --- 创建master.gflagfile和tserver.gflagfile文件中指定的目录,并将所有者更改为kudu,执行如下命令:
~~~ # 所有主机创建数据目录:hadoop01、hadoop02、hadoop03
[root@hadoop01 ~]# mkdir -p /var/lib/kudu/master /var/lib/kudu/tserver
[root@hadoop01 ~]# chown -R kudu:kudu /var/lib/kudu/
### --- 修改 /etc/security/limits.d/20-nproc.conf 文件,
~~~ # 解除kudu用户的线程限制,注意:20可能不同,根据自己的来修改
~~~ # 所有主机:hadoop01、hadoop02、hadoop03节点
[root@hadoop01 ~]# vim /etc/security/limits.d/20-nproc.conf
~~~加入以下两行内容
kudu soft nproc unlimited
impala soft nproc unlimited
五、启动kudu
### --- master节点(hadoop01::192.168.1.121)执行:
[root@hadoop01 ~]# systemctl start kudu-master
### --- 启动tserver:hadoop01、hadoop02、hadoop03上执行
[root@hadoop01 ~]# systemctl start kudu-tserver
六、通过web-Ui访问kudu
### --- 通过web-Ui访问kudu
~~~ 通过Chrome访问kudu-Ui:http://hadoop01:8051/masters:验证master节点是否启动ok
~~~ 通过Chrome访问kudu-Ui:http://hadoop01:8051/tablet-servers:验证slave节点是否启动ok


附录一:报错处理一:
### --- 报错现象:kudu-master启动失败
[root@hadoop01 ~]# systemctl start kudu-master
Job for kudu-master.service failed because the control process exited with error code. See "systemctl status kudu-master.service" and "journalctl -xe" for details.
### --- 报错分析
### --- 查看/var/log/kudu/err在master启动不起来时,时间不同步导入启动不起来
[root@hadoop01 ~]# cat /var/log/kudu/kudu-master.ERROR
Log file created at: 2020/06/20 11:11:50
Running on machine: hadoop01
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
F0620 11:11:50.889829 8824 master_main.cc:68] Check failed: _s.ok() Bad status: Service unavailable: Cannot initialize clock: Error reading clock. Clock considered unsynchronized
### --- 解决方案
~~~ # 重启ntp服务:所有主机
[root@hadoop01 ~]# systemctl restart ntpd
~~~ # 或者同步时间
[root@hadoop01 ~]# ntpdate -u ntp.api.bz
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
bdv022-kudu
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」