不多说,直接上干货!
Kudu安装前的建议说明(博主推荐)
Kudu官网推荐的步骤:
本篇博文是installing Kudu using parcels or packages的方式。
http://kudu.apache.org/docs/installation.html#_build_from_source
规划
kudumaster kudu-tserver
master 是 是
slave1 否 是
slave2 否 是
第一步:配置Yum的Repository
使用Yum来安装kudu,但由于kudu还不是Yum的常规组建,直接安装会找不到kudu,所以第一步需要将kudu的repo文件下载并放置到合适的位置。
下载kudu的repo,进入http://kudu.apache.org/docs/installation.html 页面,在下图中找到和自己的操作系统匹配的链接进行下载。
对于这里,其实看官网一点都不难啦。大家别恐惧,对于大数据的各个组件,也就是那么一回事。
我这里的Linux操作系统是CentOS6.5,若你是其他的版本,对应官网来,对照入座就是了。
说白了,这种安装的风格,跟ClouderManager一样的,毕竟是一个大家族的。
将下载成功的cloudera-kudu.repo文件放置到/etc/yum.repos.d/目录下(master、slave1、slave2)。
这里,因为我的大数据集群是master、slave1、slave2。
[cloudera-kudu] # Packages for Cloudera's Distribution for kudu, Version 5, on RedHat or CentOS 6 x86_64 name=Cloudera's Distribution for kudu, Version 5 baseurl=http://archive.cloudera.com/kudu/redhat/6/x86_64/kudu/5/ gpgkey = http://archive.cloudera.com/kudu/redhat/6/x86_64/kudu/RPM-GPG-KEY-cloudera gpgcheck = 1
第二步:安装kudu
#这是官网的解释
sudo yum install kudu # Base Kudu files sudo yum install kudu-master # Kudu master init.d service script and default configuration sudo yum install kudu-tserver # Kudu tablet server init.d service script and default configuration sudo yum install kudu-client0 # Kudu C++ client shared library sudo yum install kudu-client-devel # Kudu C++ client SDK
但是,我这里为了给大家更仔细详细的来安装部署。
比如我这里master是作为kudu-master的,
# yum install kudu kudu-master kudu-client0 kudu-client-devel -y
比如我这里master、slave1、slave2是作为kudu-tserver的,
# yum install kudu kudu-tserver kudu-client0 kudu-client-devel -y
第三步:配置master和tserver节点
安装完成之后。
在/etc/kudu/conf目录下有两个文件:master.gflagfile和tserver.gflagfile 。
master.gflagfile的配置修改为:
(目录可以根据自己的习惯来制定,但在启动kudu之前一定要事先创建好,否则master无法正常启动)
(当然,如果不改,则就是默认在/opt下)
以下是默认的
# 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=/opt/kudu/master --fs_data_dirs=/opt/kudu/master
以下是自定义的
# cat /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=/home/data/kudu/master
--fs_data_dirs=/home/data/kudu/master
tserver.gflagfile修改为:
以下是默认的
# cat /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=/opt/kudu/tserver --fs_data_dirs=/opt/kudu/tserver --tserver_master_addrs=master:7051
以下是自定义的
# cat /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=/home/data/kudu/tserver
--fs_data_dirs=/home/data/kudu/tserver
--tserver_master_addrs=master:7051
注意,这里的--tserver_master_addrs指明了集群中master的地址,指向同一个master的tserver形成了一个kudu集群。
设置权限
以下是默认安装的
# mkdir /opt/kudu && chown kudu:kudu /opt/kudu
以下是自定义安装的
# mkdir /home/data/kudu && chown kudu:kudu /home/data/kudu
可能遇到的问题:
根据官网的介绍,配置完成之后就可以启动kudu了。
启动master和tserver的命令分别为:
sudo service kudu-master start sudo service kudu-tserver start
或者
/etc/init.d/kudu-master start
/etc/init.d/kudu-tserver start
但启动失败,查看日志发现kudu的启动有一个前提,NTP服务必须启动并处以同步状态。
启动NTP服务的命令为:
systemctl start NTP
服务启动后,需要5-10钟来完成同步。判断是否已经完成同步可以使用命令:ntpstat,如果输出为:
synchronised to NTP server (120.25.108.11) at stratum 3 time correct to within 114 ms polling server every 1024 s
表示同步已经完成。
再次启动kudu,还是报错,查看日志,发现是对/home/data/kudu没有操作权限。这个目录是我用root账号创建的,但kudu的启动默认会使用一个叫kudu的用户。执行下列命令来改变目录的所有者:
cd /home/data/kudu chowm -R kudu:kudu ./*
再次执行启动master(在master这台服务器上启动)和tserver(在master,slave1,slave2这三台服务器上都启动)的命令,终于成功了。
再在浏览器上通过http://<_host_name_>:8051 和 http://<_host_name_>:8050 可以分别查看master和tserver的详情。
可以看到所有组件都已安装完毕了。
更多见官网,其实不难的,比如开机启动啊等,
sudo chkconfig kudu-master on
sudo chkconfig kudu-tserver on
官网
http://kudu.apache.org/docs/installation.html#rhel_from_source
另一种安装Kudu的方法。