Impala配置与错误解决方案

原创 2015年05月07日 17:01:11

安装环境

版本 2.1.0 对应CDH5.3.0
       impala是CDH的组件,hadoop其他环境(hdfs、yarn、hive)已经准备的情况下,直接通过yum进行安装,这里提供下载地址impala下载

安装内容:
安装的用户为:root
       hdname (hive 元数据节点所在)
               impala impala-server impala-state-store impala-catalog impala-shell
       其他节点
       impala-server impala-shell

权限配置(所有机器都应当进行)

   impala 安装过程中会创建名为 impala 的用户和组,不要删除该用户和组。
如果想要 impala 和 YARN 合作,需要把 impala 用户加入 hdfs 组,相关的可以了解的是Llama项目。
  impala 在执行 DROP TABLE 操作时,需要把文件移到到 hdfs 的回收站,所以你需要创建一个 hdfs 的目录 /user/impala,并将其设置为impala 用户可写。同样的,impala 需要读取 hive 数据仓库下的数据,故需要把 impala 用户加入 hive 组。

添加附属组命令

    usermod -G hive,hdfs,hadoop impala

结果如图
这里写图片描述

创建impala在hdfs上的目录并设置权限

sudo -u hdfs hadoop fs -mkdir /user/impala
sudo -u hdfs hadoop fs -chown impala /user/impala

设置scoket path

在每个节点上创建/var/run/hadoop-hdfs
kdir -p /var/run/hadoop-hdfs
  注意:该文件夹可能已经存在,应当确认用impala是否有权限进行读写
  如果已经存在,将用户impala加入该文件所属的组,并修改该文件组的权限即:chmod 775 /var/run/hadoop-hdfs

mysql驱动

驱动下载地址mysql-connector-java-5.1.30.tar.gz
将下载的文件复制到/usr/share/java/并修改名为mysql-connector-java.jar
选择这个文件路径是因为impala的默认路径是这个,可以查看/etc/default/impala中的参数MYSQL_CONNECTOR_JAR

#配置文件设置
配置文件存在两个地方
##/etc/default/impala
该文件为impala的默认配置,包含了机器信息和相关路径配置,包括JDBC、impala的所有配置文件,这里需要修改的是metastore和catalog两个服务安装所在的主机信息,最终结果如下,高亮部分为修改地方,其中hdname为impala的catalog和state-store组件安装所在机器的host名,也即元数据mysql所在机器

==IMPALA_CATALOG_SERVICE_HOST=hdname==
==IMPALA_STATE_STORE_HOST=hdname==
IMPALA_STATE_STORE_PORT=24000
IMPALA_BACKEND_PORT=22000
IMPALA_LOG_DIR=/var/log/impala

IMPALA_CATALOG_ARGS=" -log_dir=${IMPALA_LOG_DIR} ==-state_store_host=${IMPALA_STATE_STORE_HOST}== "
IMPALA_STATE_STORE_ARGS=" -log_dir=${IMPALA_LOG_DIR} -state_store_port=${IMPALA_STATE_STORE_PORT}"
IMPALA_SERVER_ARGS=" \
    -log_dir=${IMPALA_LOG_DIR} \
    -catalog_service_host=${IMPALA_CATALOG_SERVICE_HOST} \
    -state_store_port=${IMPALA_STATE_STORE_PORT} \
    -use_statestore \
    -state_store_host=${IMPALA_STATE_STORE_HOST} \
    -be_port=${IMPALA_BACKEND_PORT}"

ENABLE_CORE_DUMPS=true

# LIBHDFS_OPTS=-Djava.library.path=/usr/lib/impala/lib
# MYSQL_CONNECTOR_JAR=/usr/share/java/mysql-connector-java.jar
# IMPALA_BIN=/usr/lib/impala/sbin
# IMPALA_HOME=/usr/lib/impala
# HIVE_HOME=/usr/lib/hive
# HBASE_HOME=/usr/lib/hbase
# IMPALA_CONF_DIR=/etc/impala/conf
# HADOOP_CONF_DIR=/etc/impala/conf
# HIVE_CONF_DIR=/etc/impala/conf
# HBASE_CONF_DIR=/etc/impala/conf

##/etc/impala/conf
  实际上这个文件所在的位置是由/etc/default/impala中所决定的,有的版本可能是在/usr/lib/impala/conf下
  hive、hdfs、core三个核心配置文件分别从hdfs和hive的配置文件中复制过来,如果有hbase-site.xml,也一起复制过来
  结果如下:
这里写图片描述
  修改文件hdfs-site.xml,在文件中增加下列内容

 <property>
    <name>dfs.client.read.shortcircuit</name>
    <value>true</value>
</property>
<property>
    <name>dfs.domain.socket.path</name>
    <value>/var/run/hadoop-hdfs/dn._PORT</value>
</property>
<property>
  <name>dfs.datanode.hdfs-blocks-metadata.enabled</name>
  <value>true</value>
</property>
<property>
  <name>dfs.client.file-block-storage-locations.timeout</name>  
  <value>10000</value>
</property>

配置文件同步

  将impala文件和conf文件夹同步到所有的impala-server节点

启动impala

确认所有的服务已经启动,包括hive、impala,查看impala启动服务可以使用命令

ps -ef |grep impala

如果正常的话,在hdname中有以下三个服务,如图
这里写图片描述
有可以通过url访问也可以通过浏览器访问相关的服务

            主机名:25010  默认的元数据所在节点信息,
            主机名:25000    server信息,任何有装server的节点都可以访问
            主机名:25020  catalog信息

在任意一节点使用命令impala-shell登录impala终端,连接到store中connect hdname;
  执行命令invalidate metadata更新元数据
  结果如图
这里写图片描述

错误解决参考

错误1

路径权限问题
Error connecting: TTransportException, Could not connect to master:21000
在日志文件/var/log/impala中查看impalad.ERROR,错误如下

ERROR: short-circuit local reads is disabled because
  - dfs.domain.socket.path is not configured.
  - dfs.client.read.shortcircuit is not enabled.

这里写图片描述
解决方法
   找到对应参数的下的值,查看该路径是否存在,impala用户是否有权限进行读写

错误2

invalidate metadata 更新元数据出错
错误代码

Query: invalidate metadata
ERROR: Couldn't open transport for hdname:26000 (connect() failed: Connection refused)

查看日志信息,有如下错误,无法读取datanode上的数据块信息

I0507 10:03:36.218281 21562 BlockStorageLocationUtil.java:177] Failed to query block locations on datanode 192.168.73.16:50020: org.apache.hadoop.ipc.RemoteException(java.lang.UnsupportedOperationException): Datanode#getHdfsBlocksMetadata  is not enabled in datanode config
        at org.apache.hadoop.hdfs.server.datanode.DataNode.getHdfsBlocksMetadata(DataNode.java:1547)

解决方法
注意:这里使用的端口说是26000,事实上在整个配置过程中没有任何的端口设置为26000,同时出现这种错误是在登录终端并且成功连接之后出现,也就是说这跟元数据相关
解决方法:
/etc/default/impala 中的配置项IMPALA_CATALOG_ARGS,需要增加参数 -state_store_host=${IMPALA_STATE_STORE_HOST}
结果如下
这里写图片描述
该参数告诉了catalog去哪个host找元数据,事实上在state-store的配置中也有重新设置state_store_host参数
这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

Impala入门笔记

问题背景:初步了解Impala的应用重点测试Impala的查询速度是否真的如传说中的比Hive快3~30倍写作目的:了解Impala的安装过程初步了解Impala的使用比较Impala与Hive的性能...
  • zhoubl668
  • zhoubl668
  • 2016年05月04日 13:39
  • 6580

impala daemon启动失败

impala daemon启动失败
  • ggz631047367
  • ggz631047367
  • 2016年04月07日 18:18
  • 1108

Impala重点问题列表

Impala重点问题列表(截止到1.01) 从目前的情况来看,impala的稳定性和易用性还有待提高,在生产环境中部署还存在比较大的风险。 未解决: ·          impala-shel...
  • wind5shy
  • wind5shy
  • 2013年06月14日 14:39
  • 10157

安装和使用impala出现的问题及解决方法

1、没有成功安装impala-server impala-state-store  impala-catalog:       修改错误的/etc/yum.repos.d 2、找不到JDO什么Fa...
  • u014090536
  • u014090536
  • 2014年04月03日 20:30
  • 3449

Impala 教程

Impala 教程 Set Up Some Basic .csv Tables Impala 表指向已存的数据文件 查看 Impala 表结构 查询 Impala 表 数据加载与查询的例子 ...
  • opensure
  • opensure
  • 2015年05月19日 21:54
  • 32831

Impala问题汇总

1、时区问题: 默认impala配置不是中国的时区,所以在用from_unixtime的时候,有误差。 解决方案:impala启动时加  -use_local_tz_for_unix_timest...
  • huguoping830623
  • huguoping830623
  • 2016年07月14日 16:51
  • 882

Impala实践之十四:一次Impala节点故障记录(不能启动)

前言Impala集群中有两台机器的Impala Daemon不能正常启动,记录一下整个过程和解决方式。过程阶段一Impala集群的状态开始飘红,有两台节点不能正常使用。这时候发现集群里面有十多个任务正...
  • zhaodedong
  • zhaodedong
  • 2016年08月25日 18:35
  • 2177

hadoop-impala十大优化之(8)—impala优化之HDFS缓存最佳实践

1.1  Hadoop-impala十大优化之(8)—HDFS缓存最佳实践 1)       HDFS缓存的Impala的概述 2)       设置缓存为HDFS的Impala 3)    ...
  • seeyouc
  • seeyouc
  • 2016年12月21日 11:41
  • 1824

Impala部署、权限、资源隔离杂谈

概述最近一直在倒腾Impala,公司内部也属于刚刚部署使用,初次体验感觉性能还是比较好的(可能是使用Hive过多的原因),并且Impala还可以支持Kudu引擎,这个目前看上去是实时离线统一的较好解决...
  • yu616568
  • yu616568
  • 2016年10月07日 18:19
  • 2759

Impala高性能探秘之HDFS数据访问

Impala是一个高性能的OLAP引擎,Impala本身只是一个OLAP-SQL引擎,它访问的数据存储在第三方引擎中,第三方引擎包括HDFS、Hbase、kudu。对于HDFS上的数据,Impala支...
  • yu616568
  • yu616568
  • 2017年07月11日 20:08
  • 1164
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Impala配置与错误解决方案
举报原因:
原因补充:

(最多只允许输入30个字)