Apache Kudu 入门(伪分布式)

本文主要完成Kudu 伪分布式安装,方便Kudu入门

安装包下载

地址:http://archive.cloudera.com/kudu/redhat/7/x86_64/kudu/5/RPMS/x86_64/

image.png

环境准备

节点配置NTP服务

集群中NTP的配置必不可少,伪分布式可以只配主节点。

集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 具体思路如下:

master节点作为ntp服务器与外界对时中心同步时间,随后对所有datanode节点提供时间同步服务。

所有datanode节点以master节点为基础同步时间。

所有节点安装相关组件:yum install ntp

启动服务: systemctl start ntpd

配置开机启动:systemctl enable ntpd

主节点配置

在配置之前,先使用ntpdate手动同步一下时间,免得本机与对时中心时间差距太大,使得ntpd不能正常同步。这里选用65.55.56.206作为对时中心,
ntpdate -u ntp1.aliyun.com

编辑配置文件名命令:


vim /etc/ntp.conf

ntp服务只有一个配置文件,配置好了就OK。

这里只给出有用的配置,不需要的配置都用#注掉,这里就不在给出:

driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict default nomodify notrap
server ntp1.aliyun.com prefer
minpoll 6
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

配置文件完成,保存退出,启动服务,执行如下命令:service ntpd start

检查是否成功,用 ntpstat

命令查看同步状态,出现以下状态代表启动成功:


synchronised to NTP server () at stratum 2
time correct to within 74 ms
polling server every 128 s

如果出现异常请等待几分钟,一般等待5-10分钟才能同步。

配置ntp客户端(所有datanode节点)
driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
#这里是主节点的主机名或者ip
server  masterHostName
minpoll 6
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys

ok保存退出,请求服务器前,请先使用ntpdate手动同步一下时间:ntpdate -u masterHostName (主节点ntp服务器).

关闭防火墙和SELinux

注意: 需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。

关闭防火墙并关闭自启动:

systemctl stop firewalld

Systemctl disable firewalld

关闭SELINUX(实际安装过程中发现没有关闭也是可以的,不知道会不会有问题,还需进一步进行验证):

setenforce 0 (临时生效)

修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)

需要单独安装一个软件:
yum install redhat-lsb

KUDU 安装:

安装命令:
rpm -ivh kudu-1.4.0+cdh5.12.2+0-1.cdh5.12.2.p0.8.el7.x86_64.rpm  
rpm -ivh kudu-client-devel-1.4.0+cdh5.12.2+0-1.cdh5.12.2.p0.8.el7.x86_64.rpm     
rpm -ivh kudu-client0-1.4.0+cdh5.12.2+0-1.cdh5.12.2.p0.8.el7.x86_64.rpm  
rpm -ivh kudu-debuginfo-1.4.0+cdh5.12.2+0-1.cdh5.12.2.p0.8.el7.x86_64.rpm 
rpm -ivh kudu-master-1.4.0+cdh5.12.2+0-1.cdh5.12.2.p0.8.el7.x86_64.rpm   
rpm -ivh kudu-tserver-1.4.0+cdh5.12.2+0-1.cdh5.12.2.p0.8.el7.x86_64.rpm
配置参数(需要创建好相应目录)
  master:   
    1./etc/default/kudu-master 
      export FLAGS_log_dir=/opt/kudu-0.9.1/log //日志目录 
      export FLAGS_rpc_bind_addresses=hadoop01:7051 
    2./etc/kudu/conf.dist/master.gflagfile 
      –fs_wal_dir=/opt/kudu-0.9.1/data/master 
      –fs_data_dirs=/opt/kudu-0.9.1/data/master 
      –default_num_replicas=1 //设置备份数 不设置默认为3 
  tserver: 
    1./etc/default/kudu-tserver 
      export FLAGS_log_dir=/opt/kudu-0.9.1/log 
      export FLAGS_rpc_bind_addresses=hadoop02:7050 
    2./etc/kudu/conf.dist/tserver.gflagfile 
      –fs_wal_dir=/opt/kudu-0.9.1/data/tserver 
      –fs_data_dirs=/opt/kudu-0.9.1/data/tserver 
      –tserver_master_addrs=hadoop01:7051 //绑定master节点 
            ###单节点要修改成1 否则会报错
            –unlock_unsafe_flags=true
            –allow_unsafe_replication_factor=true
            –default_num_replicas=1
      
启动kudu
  service kudu-master start|stop 
  service kudu-tserver start|stop 
image.png
image.png

常见错误整理:

转自

kudu启动报错:

报错一:

Log file created at: 2018/04/02 10:40:33
Running on machine: mrj001
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
F0402 10:40:33.091943 51977 master_options.cc:46] At least 2 masters are required for a distributed config, but master_addresses flag ('192.168.137.6') only specifies 1 masters.

报错分析:

至少需要配置两个master,但是只配置了一个

报错处理:

kudu-master支持多master备份机制,所以配置时需注意;

 vi /etc/kudu/kudu-master

 注释掉--master-addresses 

该参数配置为master节点以及ip列表,不指定默认为单master节点;如果指定了该配置,但是只有一个master节点就会报错;

报错二:

Log file created at: 2018/04/02 10:46:39
Running on machine: mrj001
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
F0402 10:46:39.101296 52137 tablet_server_main.cc:72] Check failed: _s.ok() Bad status: IO error: Failed to load FS layout: Could not lock /soft/kudu/data/data/block_manager_instance: Could not lock /soft/kudu/data/data/block_manager_instance: lock /soft/kudu/data/data/block_manager_instance: Resource temporarily unavailable (error 11)

报错分析:

kudu-tserver启动报错,对目录/soft/kudu/data/data/block_manager_instance不能够进行锁定

报错三:

Log file created at: 2018/04/06 16:13:39
Running on machine: mrj001
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg

F0406 16:13:39.828665  2572 master_main.cc:68] Check failed: _s.ok() Bad status: Service unavailable: Cannot initialize clock: Error reading clock. Clock considered unsynchronized

报错分析:

kudu在启动之前必须保证各个服务器ntp一致,当各个table server不一致时会导致此报错;

解决办法:

查看ntpd服务是否开启:service ntpd status

查看ntpd服务是否已经同步:ntpstat

报错四:

Log file created at: 2018/04/07 13:24:52
Running on machine: mrj001
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg

F0407 13:24:52.627974  5771 master_main.cc:68] Check failed: _s.ok() Bad status: IO error: Could not create new FS layout: Unable to write instance metadata: Call to mkstemp() failed on name template /soft/kudu/master/data/instance.kudutmp.XXXXXX: Permission denied (error 13)

报错分析:

经过分析报错可以得出:/soft/kudu/master/data/目录下没有创建文件的权限,同时kudu在启动的时候默认是使用kudu用户进行创建,所以要确定kudu用户能够对该文件夹下面的所有目录进行管理

报错处理:

在没有权限的目录下面执行:chown -R kudu:kudu ./*,改变用户组和用户为kudu即可解决

报错五:

Log file created at: 2018/04/07 13:37:05
Running on machine: mrj001
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg

F0407 13:37:05.960657  5931 tablet_server_main.cc:72] Check failed: _s.ok() Bad status: IO error: Failed to load FS layout: Filesystem root /soft/kudu/tserver/wal   contains illegal whitespace

报错分析:

/soft/kudu/tserver/wal包含不符合规则的空白

报错处理:

这个报错是因为tserver配置文件中没有指定master地址造成的;

检查/etc/kudu/conf/tserver.gflagfile配置文件,在该配置文件中添加:--tserver_master_addrs=mrj001:7051

接下来完成JAVA API的增删改查

Presto-Kudu 安装等

你可能感兴趣的:(Apache Kudu 入门(伪分布式))