实用 | 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 服务
2)配置Kudu角色
3)配置Kudu参数(主要是存储WAL、数据的文件目录)
4)关于配置 block_manager的问题
并非所有文件系统格式都需要设置该选项。ext4、xfs格式支持hole punching,所以不需要设置block_manager=file,但是ext3 格式需要。可以通过df命令来查看文件系统的格式。
如果是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/
3.安装Impala_Kudu软件包
通过 Cloudera Manager 管理界面(Parcel 管理界面)下载、分发、激活 Impala on Kudu Parcel 包: 通过添加服务向导添加 Impala 服务,添加完毕后
4.修改 Impala 配置,启动Impala on Kudu
5.重启 Impala 服务
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 版本
第二部分:功能验证
本部分主要测试Kudu+Impala提供的随机查询、更新、删除,以及复杂jion及聚合查询的能力。
以下是Kudu+Impala功能验证的脚本及执行结果:
创建数据库及测试表
插入测试数据
验证单行记录的select、update、delete操作
1)单行记录查找
2)单行记录更新
3)单行记录删除
验证单行记录的select、update、delete操作
1)多行记录范围查找
2)多行记录范围更新
3)多行记录范围删除
多表关联查询
多表关联更新
1)准备测试数据
2)验证更新前的测试数据
3)多表关联更新
4)验证更新后的测试数据
第三部分:使用小技巧
以下这些内容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 守护进程