kudu-列式存储管理器-第一篇

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

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值