15 数据仓库工具impala

Impala是一款由Cloudera提供的高效SQL查询工具,比Hive快10到100倍,基于Hive元数据,兼容大部分Hive SQL语法。文章详细介绍了Impala的安装、架构、优缺点及使用方法,包括数据导入、Java开发等。
摘要由CSDN通过智能技术生成

15 数据仓库工具impala

impala介绍

impala是cloudera提供的一款高效率的sql查询工具,提供实时的查询效果,官方测试性能比hive快10到100倍,其sql查询比sparkSQL还要更加快速,号称是当前大数据领域最快的查询sql工具,
impala是参照谷歌的新三篇论文(Caffeine、Pregel、Dremel
)当中的Dremel实现而来,其中旧三篇论文分别是(BigTable,GFS,MapReduce)分别对应我们即将学的HBase和已经学过的HDFS以及MapReduce
impala是基于hive并使用内存进行计算,兼顾数据仓库,具有实时,批处理,多并发等优点

impala与hive关系

impala是基于hive的大数据分析查询引擎,直接使用hive的元数据库metadata,意味着impala元数据都存储在hive的metastore当中,并且impala兼容hive的绝大多数sql语法。所以需要安装impala的话,必须先安装hive,保证hive安装成功,并且还需要启动hive的metastore服务
在这里插入图片描述

impala的优点

1、impala比较快,非常快,特别快,因为所有的计算都可以放入内存当中进行完成,只要你内存足够大
2、摈弃了MR的计算,改用C++来实现,有针对性的硬件优化
3、具有数据仓库的特性,对hive的原有数据做数据分析
4、支持ODBC,jdbc远程访问

impala的缺点:

1、基于内存计算,对内存依赖性较大
2、改用C++编写,意味着维护难度增大
3、基于hive,与hive共存亡,紧耦合
4、稳定性不如hive,不存在数据丢失的情况

impala安装方式(本地yum源rpm包方式)

impala没有直接提供 tar.gz的安装包,只提供了源码包和rpm的包
安装可以有两种方式
第一种:使用源码自己编译
第二种:使用rpm包的方式来进行安装

挂载磁盘

impala  的rpm包的下载地址:http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/5.14.0/RPMS/x86_64/
使用rpm包直接安装的方式不可取,需要下载的依赖包太多了,挨个下,太费劲了

rpm的repository仓库的下载地址

http://archive.cloudera.com/cdh5/repo-as-tarball/5.14.0/
将我们对应版本的rpm的仓库下载下来之后,这个仓库里面就包含了所有软件安装包的rpm的包

在这里插入图片描述
在这里插入图片描述

第一步:虚拟机关机新增磁盘

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

第二步:开机之后进行磁盘挂载

分区,格式化,挂载新磁盘
磁盘挂载

df -lh 

fdisk -l 查看分区

开始分区
fdisk /dev/sdb   这个命令执行后依次输 n  p  1  回车  回车  w
fdisk -l

格式化我们的分区
mkfs -t ext4 -c /dev/sdb1   格式化我们的分区
mkdir /data02

将我们的分区挂载到/data02目录下
mount -t ext4 /dev/sdb1 /data02
df -lh
将我们的挂载磁盘设置开机启动,避免开机之后挂载的磁盘就没了
echo "/dev/sdb1 /data02 ext4 defaults 0 0" >> /etc/fstab

挂载完成之后,记得重新启动node3机器上面的mysql服务,datanode服务,nodemanager服务,zookeeper服务
启动mysql的服务命令:/etc/init.d/mysqld start

上传压缩包并解压

将我们5个G的压缩文件上传/data02目录下,并进行解压

cd /data02/
tar -zxvf cdh5.14.0-centos6.tar.gz

制作本地yum源

镜像源是centos当中下载相关软件的地址,我们可以通过制作我们自己的镜像源指定我们去哪里下载impala的rpm包,这里我们使用httpd这个软件来作为服务端,启动httpd的服务来作为我们镜像源的下载地址
这里我们选用第三台机器作为镜像源的服务端

node3机器上执行以下命令
yum  -y install httpd
service httpd start

cd /etc/yum.repos.d

vi localimp.repo 
[localimp]
name=localimp
baseurl=http://node3/cdh5.14.0/
gpgcheck=0
enabled=1

创建apache httpd的读取链接

ln -s /data02/cdh/5.14.0 /var/www/html/cdh5.14.0

页面访问本地yum源,出现这个界面表示本地yum源制作成功
在这里插入图片描述

将配置文件分发给node1/2节点

scp localimp.repo node1:$PWD
scp localimp.repo node2:$PWD

impala的架构以及查询计划:

impala的架构:

impala-server:从节点,计算几点,主要负责执行我们的查询的任务的计算,官方建议  impala-server与每一个datanode安装在一起
impala-catalog:主节点 主要是存储了元数据信息在两个地方,一个在内存当中,一个在磁盘当中。impala当中的元数据管理的服务
impala-statestore:主节点,状态存储区,主要存储了一些sql执行的进度信息,状态信息等等

在这里插入图片描述
impala-server三台机器都要安装,涉及到hadoop的一个重要特性,短路读取
在这里插入图片描述

主节点node3执行以下命令进行安装

yum  install  impala -y
yum install impala-server -y
yum install impala-state-store  -y
yum install impala-catalog  -y
yum  install  impala-shell -y

从节点node1与node2安装以下服务

yum install impala-server -y

所有节点配置impala

第一步:修改hive-site.xml

vi /export/servers/hive-1.1.0-cdh5.14.0/conf/hive-site.xml 追加以下内容

 	<property>
             <name>hive.metastore.uris</name>
             <value>thrift://node03.hadoop.com:9083</value>
 	</property>
 	<property>
             <name>hive.metastore.client.socket.timeout</name>
             <value>3600</value>
	</property>

第二步:将hive的安装包发送到node2与node1机器上

在node3机器上面执行

cd /export/servers/
scp -r hive-1.1.0-cdh5.14.0/ node2:$PWD
scp -r hive-1.1.0-cdh5.14.0/ node1:$PWD

第三步:node3启动hive的metastore服务

启动hive的metastore服务
node3机器启动hive的metastore服务

cd  /export/servers/hive-1.1.0-cdh5.14.0
nohup bin/hive --service metastore &
nohup bin/hive --service hiveserver2 &

注意:一定要保证mysql的服务正常启动,否则metastore的服务不能够启动
解决:如果先启动metastore的服务,启动成功了,再 启动hiveserver2的服务,启动不了,怎么办??
先将metastor的服务的runjar的进程给杀死,然后先启动hiveserver2的服务,再启动metastore的服务就ok了

第四步:所有hadoop节点修改hdfs-site.xml添加以下内容

所有节点创建文件夹

mkdir -p /var/run/hdfs-sockets

修改所有节点的hdfs-site.xml添加以下配置,修改完之后重启hdfs集群生效

vim  /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/hdfs-site.xml
<property>
		<name>dfs.client.read.shortcircuit</name>
		<value>true</value>
	</property>
	<property>
		<name>dfs.domain.socket.path</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值