上学期的大数据处理课程,笔者被分配到Impala的汇报主题。然而汇报内容如果单纯只介绍Impala的理论知识,实在是有些太过肤浅,最起码得有一些实际操作来展示一下Impala的功能。但是Impala的配置实在是有些困难与繁琐,于是笔者通过各种渠道找到了Cloudera公司(Hadoop数据管理软件与服务提供商)在早些年发行的虚拟机文件,通过配置该虚拟机可以直接获得一个较为完整的大数据处理应用环境(包括Hadoop、Impala等数种大数据处理应用)。
【虚拟机文件资源已上传百度网盘,没办法,这个虚拟机文件实在是太大了(5+G),要不然我就直接在博客上资源绑定了】
链接:https://pan.baidu.com/s/1hRhJySvZTqmxUvqZJ3tYuQ?pwd=a6t3
提取码:a6t3
虚拟机软件
笔者使用的虚拟机软件是Oracle VM VirtualBox(图标如下),关于该软件的详细安装步骤请恕笔者不在此赘述,直接进入配置阶段。

配置cloudera-quickstart虚拟机
将文件夹全部下载下来后,文件夹里应该有这两个文件,不能有缺漏。

确认无误后,打开虚拟机,导入该虚拟机文件,如下图。

在下列划横线处选择下载好的虚拟机文件路径
(选择图标为黄色方块的那个文件,文件格式为ovf)

进入下一步,该页面全部采用默认设置即可👇

设置完成后,点击导入即可在虚拟机首页看到虚拟机文件。但此时还不能直接运行,因为该虚拟机对于内存和显存都有一定要求,必须进行额外的设置才能满足虚拟机运行的条件,笔者尝试了一种可正常运行的设置方案如下:
首先点击设置

在"系统-主板"选项中,将内存改为7500MB(也可以再稍微调大一些,根据实际情况来)

在"系统-处理器"界面,将"处理器数量"更改为4个。

在"显示-屏幕"选项中,将"显存大小"更改为28MB
完成如上设置后,点击运行虚拟机,一般情况下即可正常完成运行。虚拟机的启动过程比较缓慢,需要耐心等待,启动成功后虚拟机如下图所示。该虚拟机中基本包含了大数据处理的所有基本应用(包括Hadoop、Impala、Hive等),虚拟机的操作系统是Red Hat,跟Ubuntu差不多,启动这些应用可以直接通过终端命令行进行操作。
实操应用
本部分主要对Impala的大数据处理操作进行一些实操演示,并将其与Hive进行一个简单对比。
Impala适用于处理在Hadoop集群中的大量数据的MPP(大规模并行处理)SQL查询引擎。它是一个用C++和Java编写的开源软件。与其他Hadoop的SQL引擎相比,它提供了高性能和低延迟。
简而言之,它提供了访问存储在Hadoop分布式文件系统中的数据的最快方法。但是Impala只能处理PB级别的数量级,更大数量级的数据处理起来性能很差。它的主要应用在于处理实时数据、进行交互计算。
接下来进行Impala的相关操作
首先启动Impala,如下在命令行中直接输入"impala-shell"。

Impala的控制语句和数据库的控制语句基本相同,以下演示几个基本命令。
【创建数据库】

【向表格中插入数据】

在Impala中的相关操作,都可以在虚拟机中自带的Hue中进行可视化数据查看,如下展示了笔者通过Impala插入了若干数据后查看的结果。

为了更好地理解Impala"快"的特点,笔者简单插入了20个数据,并将impala和hive进行取数据的时间对比,比较两者的速度差异。(左侧为hive,右侧为impala)

笔者进行多次操作确保时间达到相对稳定的值,可以看到,在较少样本的情况下,impala仍然能比hive快0.06s。
当然以上的对比差异可能不够显著,主要是因为样本的数量实在过少,但是根据笔者搜索到的一个大样本数据测试显示,impala在实时处理、交互计算方面确实存在明显的优势。
以上就是本篇博客的全部内容,欢迎大家下载资源进行测试。cloudera的虚拟机文件近年来已经不再发行了,本篇博客中的虚拟机文件差不多算是绝品了,笔者当时能找到这个文件真的是费劲了九牛二虎之力啊,实属不易~果然做研究是必须要下大功夫的!