Impala 介绍与安装步骤
impala的安装部署
1、软件包的上传解压
安装包大于4G,所以需要另行上传。
每个节点需要优先安装nc yum install -y nc
安装impala的节点至少需要有12G的剩余空间(5.1G 安装包,5.1G解压后的包)
2、制作网络源
将安装包解压后,配置成yum源
3、安装impala
在主节点(node03)安装
yum install -y impala impala-server impala-state-store impala-catalog impala-shell
在从节点(node01,node02)安装
yum install -y impala-server
4、修改hadoop hive的配置文件
4.1 修改hive 配置文件
vim /export/servers/hive/conf/hive-site.xml
添加:
<property>
<name>hive.metastore.uris</name>
<value>thrift://node01:9083</value>
</property>
说明:该配置配置的是那个节点,最后启动metastore时,必须在这个节点启动
4.2 修改hadoop配置
在 hdfs-site.xml 添加一下配置
<property>
<name>dfs.client.read.shortcircuit</name>
<value>true</value>
</property>
<property>
<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>
添加成功后,将更新后的配置同步到集群所有的节点。
5、复制hadoop、hive配置文件到impala配置文件
/etc/impala/conf
[aaa@qq.com conf]# cp /export/servers/hive-1.1.0-cdh5.14.0/conf/hive-site.xml /etc/impala/conf
[aaa@qq.com conf]# cp /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/core-site.xml /etc/impala/conf
[aaa@qq.com conf]# cp /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/hdfs-site.xml /etc/impala/conf
查看复制结果 ll /etc/impala/conf/
6、修改impala配置(三个节点都要操作)
6.1 编辑impala配置
vim /etc/default/impala
IMPALA_CATALOG_SERVICE_HOST=node03
IMPALA_STATE_STORE_HOST=node03
6.2 添加mysql驱动
取消MYSQL_CONNECTOR_JAR前面的注释
创建有效的软连接或配置有效的jar
ln -s
/export/servers/hive-1.1.0-cdh5.14.0/lib/mysql-connector-java-5.1.38.jar
/usr/share/java/mysql-connector-java.jar
7、修改bigtop配置 (三个节点都要执行)
vim /etc/default/bigtop-utils
配置JAVA_HOME
export JAVA_HOME=${JAVA_HOME}
8、重启hadoop hive 集群
hive目录下
nohup ./hive --service metastore &
nohup ./hive --service hiveserver2&
查看 ps -ef | grep hive
9、启动impala
在impala的主节点执行一下命令
service impala-state-store start
service impala-catalog start
service impala-server start
查看是否启动成功
ps -ef | grep impala
验证
在impala 节点输入 impala-shell+回车
查看数据库
impala 基本介绍
impala 是一个SQL查询工具,提供实时的查询。基于hive并使用内存进行计算,兼顾数据仓库。
Impala与Hive关系
impala 使用hive的元数据库metadata.
兼容hive的绝大多数sql语法,若要使用impala 必须启动hive的metastore服务。
Impala与Hive异同
impala
-
没有使用 MapReduce进行并行计算
-
Impala把整个查询分成一执行计划树
-
C++特性
-
最大使用内存
-
采用拉的方式
-
内存放不下数据时,版本1.0.1是直接返回错误
-
使用自己调度
-
查询过程中,没有容错逻辑
-
适用于实时数据分析
hive
-
使用 MapReduce进行并行计算 , 一连串的MapReduce任务
-
采用推的方式
-
内存放不下所有数据,则会使用外存
-
调度依赖于Hadoop
-
容错依赖于Hadoop
-
适用于批处理查询任务(时效性不高)。
Impala架构
1、 Impalad 接收客户端的查询请求,读写数据,并行执行查询.返回给客户端
2、 Impala State Store :跟踪集群中的Impalad的健康状态及位置信息
3、Catalogd :从Hive Metastore等外部catalog中获取元数据信息,放到impala自己的catalog结构中
4、CLI: 查询使用的命令行工具(impala-shell)
Impala查询过程
impala-shell外部命令
impala-shell –h
可以帮助我们查看帮助手册impala-shell –r
刷新impala元数据impala-shell –f 文件路径
执行指的的sql查询文件。impala-shell –i
指定连接运行 impalad 守护进程的主机。impala-shell –o
保存执行结果到文件当中去
impala-shell内部命令
connect hostname
连接到指定的机器impalad上去执行。refresh dbname.tablename
增量刷新,刷新某一张表的元数据,主要用于刷新hive当中数据表里面的数据改变的
情况。invalidate metadata
全量刷新,性能消耗较大,主要用于hive当中新建数据库或者数据库表的时候来进行刷新。quit/exit 命令
从Impala shell中弹出explain 命令
用于查看sql语句的执行计划