1、kudu介绍
Kudu 是一个针对 Apache Hadoop 平台而开发的列式存储管理器。Kudu 共享 Hadoop 生态系统应用的常见技术特性: 它在 commodity hardware(商品硬件)上运行,horizontally scalable(水平可扩展),并支持 highly available(高可用)性操作。
2、kudu特点
1、OLAP 工作的快速处理。
2、与 MapReduce,Spark 和其他 Hadoop 生态系统组件集成。
3、与 Apache Impala(incubating)紧密集成,使其与 Apache Parquet 一起使用 HDFS 成为一个很好的可变的替代方案。
强大而灵活的一致性模型,允许您根据每个 per-request(请求选择)一致性要求,包括 strict-serializable(严格可序列化)一致性的选项。
针对同时运行顺序和随机工作负载的情况性能很好。 使用 Cloudera Manager 轻松维护和管理。 High availability(高可用性)。Tablet server 和 Master 使用 Raft Consensus Algorithm 来保证节点的高可用,确保只要有一半以上的副本可用,该 tablet 便可用于读写。
例如,如果 3 个副本中有 2 个或 5 个副本中的 3 个可用,则该 tablet 可用。即使在 leader tablet 出现故障的情况下,读取功能也可以通过 read-only(只读的)follower tablets 来进行服务。
3、Kudu 常见的几个应用场景
1、实时更新的应用。刚刚到达的数据就马上要被终端用户使用访问到。
2、时间序列相关的应用,需要同时支持:
3、根据海量历史数据查询。
4、非常快地返回关于单个实体的细粒度查询。
5、实时预测模型的应用,支持根据所有历史数据周期地更新模型。
4、kudu的架构体系
与HDFS和HBase相似,Kudu使用单个的Master节点,用来管理集群的元数据,并且使用任意数量的Tablet Server节点用来存储实际数据。可以部署多个Master节点来提高容错性。
5、kudu基本概念
Table(表)
一张 talbe 是数据存储在 Kudu 的位置。表具有 schema 和全局有序的 primary key(主键)。table 被分成称为 tablets 的 segments。
Tablet
一个 tablet 是一张 table 连续的 segment,与其它数据存储引擎或关系型数据库中的 partition(分区)相似。给定的 tablet 冗余到多个 tablet 服务器上,并且在任何给定的时间点,其中一个副本被认为是 leader tablet。任何副本都可以对读取进行服务,并且写入时需要在为 tablet 服务的一组 tablet server之间达成一致性。
Tablet Server
一个 tablet server 存储 tablet 和为 tablet 向 client 提供服务。对于给定的 tablet,一个 tablet server 充当 leader,其他 tablet server 充当该 tablet 的 follower 副本。只有 leader服务写请求,然而 leader 或 followers 为每个服务提供读请求。leader 使用 Raft Consunsus Algorithm来进行选举 。一个 tablet server 可以服务多个 tablets ,并且一个 tablet 可以被多个 tablet servers 服务着。
6、kudu的搭建
6.1、kudu下载地址
http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/5.14.0/RPMS/x86_64/
6.2、上传到服务器
将下载好的kudu安装包上传到一台服务器
[root@hadoop-01 kudu]# pwd
/export/software/kudu
[root@hadoop-01 kudu]# ll
total 467624
-rw-r--r--. 1 root root 124300220 Jan 7 2018 kudu-1.6.0+cdh5.14.0+0-1.cdh5.14.0.p0.47.el6.x86_64.rpm
-rw-r--r--. 1 root root 3755624 Jan 7 2018 kudu-client0-1.6.0+cdh5.14.0+0-1.cdh5.14.0.p0.47.el6.x86_64.rpm
-rw-r--r--. 1 root root 55648 Jan 7 2018 kudu-client-devel-1.6.0+cdh5.14.0+0-1.cdh5.14.0.p0.47.el6.x86_64.rpm
-rw-r--r--. 1 root root 350704948 Jan 7 2018 kudu-debuginfo-1.6.0+cdh5.14.0+0-1.cdh5.14.0.p0.47.el6.x86_64.rpm
-rw-r--r--. 1 root root 5744 Jan 7 2018 kudu-master-1.6.0+cdh5.14.0+0-1.cdh5.14.0.p0.47.el6.x86_64.rpm
-rw-r--r--. 1 root root 5780 Jan 7 2018 kudu-tserver-1.6.0+cdh5.14.0+0-1.cdh5.14.0.p0.47.el6.x86_64.rpm
6.3、将安装包分发到其他机器(通过两台做测试)
scp -r /export/software/kudu root@hadoop-02:/export/software
scp -r /export/software/kudu root@hadoop-03:/export/software
6.4、安装
进入软件安装目录中,,在每台机器执行安装命令
rpm -ivh *.rpm
6.5、修改配置文件
6.5.1、默认配置文件不需要修改--主要查看使用
主要查看需要修改的文件在什么位置?
# modify them in /etc/default/kudu-master.
配置文件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=/opt/kudu/master
--fs_data_dirs=/opt/kudu/master
配置文件tserver.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=/opt/kudu/master
--fs_data_dirs=/opt/kudu/master
6.5.2、统一目录管理
安装规划目录-每台机器都要创建
mkdir -p /export/servers/kudu/master
mkdir -p /export/servers/kudu/tserver
6.5.3、修改master的配置文件:kudu-master
a、hadoop-01机器自定义配置:/etc/default/kudu-master
export FLAGS_log_dir=/var/log/kudu
export FLAGS_rpc_bind_addresses=hadoop-01:7051
b、hadoop-02机器自定义配置:/etc/default/kudu-master
export FLAGS_log_dir=/var/log/kudu
export FLAGS_rpc_bind_addresses=hadoop-02:7051
c、hadoop-03机器自定义配置:/etc/default/kudu-master
export FLAGS_log_dir=/var/log/kudu
export FLAGS_rpc_bind_addresses=hadoop-02:7051
6.5.4、修改master的配置文件:master.gflagfile
a、hadoop-01机器自定义配置:/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=hadoop-01:7051,hadoop-02:7051,hadoop-03:7051
b、配置好后给hadoop-02机器分发该文件,命令如下:
scp /etc/kudu/conf/master.gflagfile root@hadoop-02: /etc/kudu/conf/
c、配置好后给hadoop-03机器分发该文件,命令如下:
scp /etc/kudu/conf/master.gflagfile root@hadoop-03: /etc/kudu/conf/
6.5.5、修改tserver的配置文件:kudu-tserver
a、hadoop-01机器自定义配置:/etc/default/kudu-tserver
export FLAGS_log_dir=/var/log/kudu
export FLAGS_rpc_bind_addresses=hadoop-01:7050
b、hadoop-02机器自定义配置:/etc/default/kudu-tserver
export FLAGS_log_dir=/var/log/kudu
export FLAGS_rpc_bind_addresses=hadoop-02:7050
c、hadoop-03机器自定义配置:/etc/default/kudu-tserver
export FLAGS_log_dir=/var/log/kudu
export FLAGS_rpc_bind_addresses=hadoop-03:7050
6.5.6、修改tserver的配置文件:tserver.gflagfile
a、hadoop-01机器自定义配置:/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=/export/servers/kudu/tserver
--fs_data_dirs=/export/servers/kudu/tserver
--tserver_master_addrs=hadoop-01:7051,hadoop-02:7051,hadoop-03:7051
b、配置好后给hadoop-02机器分发该文件,命令如下:
scp /etc/kudu/conf/tserver.gflagfile root@hadoop-02: /etc/kudu/conf/
c、配置好后给hadoop-03机器分发该文件,命令如下:
scp /etc/kudu/conf/tserver.gflagfile root@hadoop-03: /etc/kudu/conf/
7、kudu启动前准备工作
7.1、关闭防火墙
7.2、配置免密登录
7.3、修改权限
kudu默认权限是kudu 所以使用root用户的话/export/servers/kudu的权限修改为kudu 修改命令为:
chown -R kudu:kudu /export/servers/kudu
修改完后:
drwxr-xr-x. 4 kudu kudu 4096 Nov 8 09:35 kudu
7.4、服务器始终同步
7.4.1、安装ntp
yum -y install ntp
7.4.1、设置开机自启
service ntpd start
chkconfig ntpd on
每台机器执行如下命令
/etc/init.d/ntpd restart
8、启动命令
sudo service kudu-master start
sudo service kudu-tserver start
9、停止命令
sudo service kudu-master stop
sudo service kudu-tserver stop
10、查看进程是否启动正常
netstat -nltp
11、UI界面
11.1、Master的UI界面为:
http://hadoop-01:8051/masters
11.2、Tserver的web监控地址
http://hadoop-01:8051/tablet-servers
只要出现以上界面,并且启动的都正确,即可安装成功,可以使用了。。。
有问题请联系QQ:765120845