Apache Impala

一丶 Impala的概述

  • impala是个实时的sql查询工具,类似于hive的操作方式,只不过执行的效率极高,号称当下大数据生态圈中执行效率最高的sql类软件。
  • impala来自于cloudera,后来贡献给了apache。
  • impala工作底层依赖于hive 与hive共用一套元数据存储,在使用impala时,必须保证hive服务是正常可靠的,至少metastore开启。
  • impala最大的跟hive不同在于,不在把sql编译成MapReduce程序执行 。
  • impala的sql语句几乎兼容hive的sql语句。

二丶Impala的安装部署

1.集群提前安装好hadoop,hive。

hive安装包scp在所有需要安装impala的节点上,因为impala需要引用hive的依赖包。

hadoop框架需要支持C程序访问接口,查看下图,如果有该路径下有这么文件,就证明支持C接口。

2.下载安装包,依赖包

由于impala没有提供tar包进行安装,只提供了rpm包。因此在安装impala的时候,需要使用rpm包来进行安装。rpm包只有cloudera公司提供了,所以去cloudera公司网站进行下载rpm包即可。

下载地址如下:

http://archive.cloudera.com/cdh5/repo-as-tarball/5.14.0/cdh5.14.0-centos6.tar.gz

3.配置本地yum源

3.1上传安装包解压

tar -zxvf cdh5.14.0-centos6.tar.gz

3.2配置本地yum源信息

安装 Apache Server 服务器
yum -y install httpd
service httpd start
chkconfig httpd on

配置本地 yum 源的文件
cd /etc/yum.repos.d
vim localimp.repo

[localimp]
name=localimp
baseurl=http://node-3/cdh5.14.0/
gpgcheck=0
enabled=1

 创建 apache httpd 的读取链接

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

确保 linux 的 的 Selinux 关闭

临时关闭:
[root@localhost ~]# getenforce
Enforcing
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive
永久关闭:
[root@localhost ~]# vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
重启服务 reboot

通过浏览器访问本地 yum 源,如果出现下述页面则成功。
http://192.168.227.153/cdh5.14.0/

将本地 yum 源配置文件 localimp.repo 发放到所有需要安装 impala 的节点。 

cd /etc/yum.repos.d/
scp localimp.repo node-2:$PWD
scp localimp.repo node-3:$PWD

4.安装Impala

4.1主节点安装

在规划的 主节点 node-1 执行以下命令进行安装:

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

4.2从节点安装

在规划的 主节点 node-2,node-3 执行以下命令进行安装:

yum install -y impala-server

5.修改hadoop,hive的配置

需要在 3 台机器整个集群上进行操作,都需要修改。hadoop、hive 是否正常
服务并且配置好,是决定 impala 是否启动成功并使用的前提。

5.1修改hive配置

在一台机器配置,scp给其他机器

vim /export/servers/hive/conf/hive-site.xml

<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node-
1:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hadoop</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<!-- 绑定运行 hiveServer2 的主机 host,默认 localhost -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>node-1</value>
</property>
<!-- 指定 hive metastore 服务请求的 uri 地址 -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://node-1:9083</value>
</property>
<property>
<name>hive.metastore.client.socket.timeout</name>
<value>3600</value>
</property>
</configuration>

将 hive 安装包 cp 给其他两个机器。
cd /export/servers/
scp -r hive/ node-2:$PWD
scp -r hive/ node-3:$PWD

5.2修改hadoop配置

所有节点创建下述文件夹
mkdir -p /var/run/hdfs-sockets
修改所有节点的 hdfs-site.xml 添加以下配置,修改完之后重启 hdfs 集群生效
vim etc/hadoop/hdfs-site.xml

<property>
<!-- 
打开 DFSClient 本地读取数据的控制,
-->
<name>dfs.client.read.shortcircuit</name>
<value>true</value>
</property>
<property>
<!-- 
dfs.domain.socket.path 是 Datanode 和 DFSClient 之间沟通的 Socket
的本地路径。
-->
<name>dfs.domain.socket.path</name>
<value>/var/run/hdfs-sockets/dn</value>
</property>
<property>
<name>dfs.client.file-block-storage-
locations.timeout.millis</name>
<value>10000</value>
</property>
<property>
<name>dfs.datanode.hdfs-blocks-
metadata.enabled</name>
<value>true</value>
</property>

把更新 hadoop 的配置文件,scp 给其他机器。
cd /export/servers/hadoop-2.7.5/etc/hadoop
scp -r hdfs-site.xml node-2:$PWD
scp -r hdfs-site.xml node-3:$PWD

5.3重启hadoop,hive

在node01启动hive

cd /export/servers/hive
nohup bin/hive --service metastore &
nohup bin/hive --service hiveserver2 &

5.4复制hadoop,hive配置文件

impala 的配置目录为/etc/impala/conf,这个路径下面需要把 core-site.xml,
hdfs-site.xml 以及 hive-site.xml

所有节点执行以下命令
cp -r /export/servers/hadoop-2.7.5/etc/hadoop/core-site.xml
/etc/impala/conf/core-site.xml
cp -r /export/servers/hadoop-2.7.5/etc/hadoop/hdfs-site.xml
/etc/impala/conf/hdfs-site.xml
cp -r /export/servers/hive/conf/hive-site.xml /etc/impala/conf/hive-site.xml

6.修改impala配置

6.1 修改 impala 默认配置


所有节点更改 impala 默认配置文件
vim /etc/default/impala
IMPALA_CATALOG_SERVICE_HOST=node03
IMPALA_STATE_STORE_HOST=node03


6.2 添加 mysql 驱动

通过配置/etc/default/impala 中可以发现已经指定了 mysql 驱动的位置名字。

使用软链接指向该路径即可(3 台机器都需要执行)
ln -s /export/servers/hive/lib/mysql-connector-java-
5.1.32.jar /usr/share/java/mysql-connector-java.jar

6.3修改bigtop配置

修改 bigtop 的 java_home 路径(3 台机器)
vim /etc/default/bigtop-utils
export JAVA_HOME=/export/servers/jdk1.8.0_141

7.启动,关闭impala服务

主节点 node01启动以下三个服务进程

service impala-state-store start
service impala-catalog start
service impala-server start

从节点启动 node02 与 node03 启动 impala-server
service impala-server start

查看 impala 进程是否存在
ps -ef | grep impala

关闭impala只需要改为stop即可

如果遇到关闭不了的僵尸进程:

就去/tmp把他删了

7.1 impala web ui


访问 impalad 的管理界面 http://node03:25000/
访问 statestored 的管理界面 http://node03:25010/

三丶impala-shell命令参数

1 . impala-shell 外部命令

外部命令是指不需要进入impala-shell交互命令行就可以执行的命令,可以在启动 impala-
shell 时设置,用于修改命令执行环境

  • impala-shell –h 可以帮助我们查看帮助手册。也可以参考课程附件资料。比如几个常见的:
  • impala-shell –r 刷新 impala 元数据,与建立连接后执行 REFRESH 语句效果相同
  • impala-shell –f 文件路径 执行指的的 sql 脚本文件。
  • impala-shell –i 指定连接运行 impalad 守护进程的主机。默认端口是21000。你可以连接到集群中运行 impalad 的任意主机。
  • impala-shell –o 保存执行结果到文件当中去。

2 . impala-shell 内部命令

  • connect hostname 连接到指定的机器 impalad 上去执行
  • refresh dbname.tablename 增量刷新,刷新某一张表的元数据,主要用于刷新 hive 当中数据表里面的数据改变的情况。
  • invalidate metada 全量刷新,性能消耗较大,主要用于hive中新建数据库或者数据表时刷新
  • explain 用于查看sql语句执行计划explain 的值可以设置成 0,1,2,3 等几个值,其中 3 级别是最高的,可以打印
    出最全的信息
    set explain_level=3;
    profile 命令 执行 sql 语句之后执行,可以
    打印出更加详细的执行步骤,主要用于查询结果的查看,集群的调优等
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Apache Atlas 是一个开源的数据治理和元数据管理框架,可以帮助用户对数据资产进行分类、发现、定义和管理。而Impala则是一个高性能、面向数据仓库的分布式SQL查询引擎。 Apache Atlas 与 Impala 可以进行整合,以实现更好的数据治理和元数据管理。具体来说,整合的好处主要有以下几点: 1. 元数据管理:Apache Atlas 可以通过其丰富的元数据模型来管理 Impala 的数据资产。它可以自动捕获和存储 Impala 表、列、分区、统计信息等重要的元数据信息,从而帮助用户了解和探索数据资产。 2. 数据分类:Apache Atlas 可以帮助用户对 Impala 中的数据进行分类和标记。通过定义和应用标签、分类和属性,用户可以更好地理解和管理 Impala 中的数据。例如,可以使用 Atlas 标记某个表包含敏感信息,从而在后续的数据治理策略中进行限制。 3. 数据发现和探索:借助于 Apache Atlas 的数据发现功能,用户可以快速和准确地搜索和定位 Impala 中的数据集,以满足数据需求。此外,Atlas 还可以提供多种可视化工具,帮助用户理解 Impala 数据的依赖关系和血缘关系,进而更好地进行数据分析和处理。 4. 安全和合规性:通过整合 Apache Atlas 和 Impala,用户可以建立和实施更严格的数据安全和合规性策略。Atlas 可以跟踪和记录数据资产的访问、变更历史以及与 Impala 相关的安全事件,以帮助用户监控和控制数据资产的使用和访问权限。 综上所述,Apache Atlas 可以与 Impala 进行整合,提供更强大的数据治理和元数据管理功能。通过联合使用这两个工具,用户可以更好地理解和管理 Impala 中的数据资产,以实现更高效、安全和合规性的数据处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月初,

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值