实用 | CDH 上 Kudu1.0及Impala2.6实测

Posted CareCloud大数据学习中心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实用 | CDH 上 Kudu1.0及Impala2.6实测相关的知识,希望对你有一定的参考价值。

概述


Kudu1.0发布也有一段时间了,一直没有机会在物理环境上进行测试。这次正好借着PoC的机会,在一个配置还算不错的10节集群上分别测试了CDH 5.7/5.8/5.9+Kudu1.0+Impala_Kudu2.6的安装及功能验证,有些心得,也迫不及待的把这些心得分享给各位感兴趣的小伙伴。


本次技术分享分两部分:

第一部分、Cloudera CDH上安装Kudu及Impala_Kudu。环境准备及安装主要步骤包括:

1.准备CDH版本及准备Kudu安装包;

2.安装Kudu;

3.安装Impala_Kudu;

4.安装验证。

第二部分、Kudu及Impala_Kudu功能测试验证。

第一部分:安装


测试环境说明:


操作系统版本: RedHat 6

1.      CDH版本:CDH 5.8

2.      采用root对集群进行部署


版本要求说明


1.Kudu本身对CDH的版本匹配要求不高。在CDH5.7、5.8、5.9上均可以安装Kudu 1.0版本。

2. 如果需要安装并使用Impala_Kudu,则需要注意Impala_Kudu的版本与所使用CDH自带Impala版本匹配。

安装 Kudu


1.安装 CSD 文件

这里假设用户通过 Cloudera Manager 添加服务向导来部署 Kudu 1.0。

1) 下载CSD文件

wget http://archive.cloudera.com/beta/kudu/csd/KUDU-1.0.0.jar

2) 并把下载的jar文件移动到/opt/cloudera/csd目录

mv KUDU-1.0.0.jar /opt/cloudera/csd/

3)修改文件的owner及权限

chown cloudera-scm:cloudera-scm /opt/cloudera/csd/KUDU-1.0.0.jar 

chmod 644 /opt/cloudera/csd/KUDU-1.0.0.jar 

4)重启cloudera management服务

service cloudera-scm-server restart

2.安装Kudu软件

1)管理员用户登录部署 Cloudera Manager 的机器:

http://archive.cloudera.com/beta/kudu/parcels/1/


3)通过 Cloudera Manager 管理界面(Parcel 管理界面)下载、分发、激活 Kudu Parcel 包。


3.安装配置Kudu实例

1) 在 Cloudera Manager 管理界面添加 Kudu 服务


实用 | CDH 上 Kudu1.0及Impala2.6实测

2)配置Kudu角色


实用 | CDH 上 Kudu1.0及Impala2.6实测


3)配置Kudu参数(主要是存储WAL、数据的文件目录)

实用 | CDH 上 Kudu1.0及Impala2.6实测


实用 | CDH 上 Kudu1.0及Impala2.6实测


4)关于配置 block_manager的问题

并非所有文件系统格式都需要设置该选项。ext4、xfs格式支持hole punching,所以不需要设置block_manager=file,但是ext3 格式需要。可以通过df命令来查看文件系统的格式。


实用 | CDH 上 Kudu1.0及Impala2.6实测

如果是ext3 格式,请在kudu服务的配置中,找到属性Kudu (Beta) Service Advanced Configuration Snippet (Safety Valve) for gflagfile,并添加如下行:

--block_manager=file

5) 启动 Kudu 服务


安装 Impala on Kudu


1.卸载原先安装的 Impala

Impala服务 (stop > Delete)

http://archive.cloudera.com/beta/impala-kudu/parcels/0.8/

实用 | CDH 上 Kudu1.0及Impala2.6实测


3.安装Impala_Kudu软件包

通过 Cloudera Manager 管理界面(Parcel 管理界面)下载、分发、激活 Impala on Kudu Parcel 包: 通过添加服务向导添加 Impala 服务,添加完毕后

4.修改 Impala 配置,启动Impala on Kudu


实用 | CDH 上 Kudu1.0及Impala2.6实测

5.重启 Impala 服务

实用 | CDH 上 Kudu1.0及Impala2.6实测

6.修改 Impala-shell 二进制程序链接

由于系统的impala-shell仍然是链接到默认的impala程序,需要修改其链接。

1)使用命令 alternatives --display impala-shell 查看当前的版本。

2)使用名利修改为正确版本

alternatives --set impala-shell /opt/cloudera/parcels/IMPALA_KUDU-2.6.0-1.cdh5.8.0.p0.17/bin/impala-shell

3)再 alternatives --display impala-shell验证修改成功


验证 impala-shell 版本


实用 | CDH 上 Kudu1.0及Impala2.6实测


第二部分:功能验证


本部分主要测试Kudu+Impala提供的随机查询、更新、删除,以及复杂jion及聚合查询的能力。

以下是Kudu+Impala功能验证的脚本及执行结果:

创建数据库及测试表



实用 | CDH 上 Kudu1.0及Impala2.6实测
实用 | CDH 上 Kudu1.0及Impala2.6实测
实用 | CDH 上 Kudu1.0及Impala2.6实测
实用 | CDH 上 Kudu1.0及Impala2.6实测
实用 | CDH 上 Kudu1.0及Impala2.6实测


插入测试数据

实用 | CDH 上 Kudu1.0及Impala2.6实测
实用 | CDH 上 Kudu1.0及Impala2.6实测


验证单行记录的select、update、delete操作

1)单行记录查找

实用 | CDH 上 Kudu1.0及Impala2.6实测

2)单行记录更新

实用 | CDH 上 Kudu1.0及Impala2.6实测

3)单行记录删除

实用 | CDH 上 Kudu1.0及Impala2.6实测

验证单行记录的select、update、delete操作

1)多行记录范围查找

实用 | CDH 上 Kudu1.0及Impala2.6实测

2)多行记录范围更新

实用 | CDH 上 Kudu1.0及Impala2.6实测

3)多行记录范围删除

实用 | CDH 上 Kudu1.0及Impala2.6实测

多表关联查询

实用 | CDH 上 Kudu1.0及Impala2.6实测

多表关联更新

1)准备测试数据

实用 | CDH 上 Kudu1.0及Impala2.6实测


2)验证更新前的测试数据


实用 | CDH 上 Kudu1.0及Impala2.6实测
实用 | CDH 上 Kudu1.0及Impala2.6实测


3)多表关联更新

实用 | CDH 上 Kudu1.0及Impala2.6实测

4)验证更新后的测试数据

实用 | CDH 上 Kudu1.0及Impala2.6实测


第三部分:使用小技巧

以下这些内容Kudu的官方文档并没有给出说明,完全是在自己测试过程中发现并积累的,供大家参考。


Kudu版本选择

Kudu0.8.0版本中存在一些缺陷,比如在执行select/update/delete等查询跨越多个tablet的时候会造成impalad异常退出,并在客户端报“Socket error 104: Connection reset by peer”错误。这个是kudu 0.8.0的bug,请查看Jira: KUDU-1010。

这些问题在1.0中已修复。所以,建议各位小伙伴使用1.0及以后的版本进行测试。


Kudu优化参数设置

目前,Kudu可以设置的能够用以优化的参数不多,主要有以下几个参数。

以上是关于实用 | CDH 上 Kudu1.0及Impala2.6实测的主要内容,如果未能解决你的问题,请参考以下文章

CDH 5.3.2 - 需要从 shell/脚本重新启动 impala 守护进程

CDH5上安装Hive,HBase,Impala,Spark等服务

impala cdh 上查看kudu表大小

CDH impala安装

CDH之impala

CDH之impala