Impala常见问题笔记

393 阅读1分钟
  1. kerberos下怎么jdbc链接(kerberos)?

    jdbc url的写法: jdbc:hive2://host:21050/;principal=hive/_HOST@BIGDATA 这种写法和开启kerberos连hive的差不多,注意principal=hive/_HOST@BIGDATA是固定写法,大部分环境只需要确认@后边的BIGDATA改为自己的信息。

    官网写法: jdbc:impala://host:21050/;AuthMech=1;KrbRealm=HADOOP.COM;KrbHostFQDN=host;KrbServiceName=impala KrbRealm KrbHostFQDN 修改成自己集群的。

  2. 查询报错InternalException: Memory limit exceeded: Error occurred on backend....怎么解决?

    首先是检查impala_daemon配置内存大小,此时检查发现默认才256MB,因此几乎可以肯定是内存不足引起的,修改mem_limit为200gb,重启impala解决。 也有说impala连接数过多导致的,可以修改fe_service_threads为更大值。

  3. Impala Shell集群kerberos环境连接?

    1. 首先本地kinit了hive的票据
    2. impala-shell -i impala.node1.com -s hive -k
    3. 显示Using service name hive,Connected to xxx:21000
  4. 如何刷新impala元数据?

    初次连接impala后查询报找不到某数据库,Database does not exist: xxx 需要刷新一下impala元数据:

invalidate metadata                    //重新加载所有库中的所有表
invalidate metadata [table_name]            //重新加载指定的某个库中某张表

上述命令主要用于在hive中修改了元数据。执行这条命令时它会首先清除表的缓存,然后从metastore中重新加载全部数据并缓存,消耗较大:

impala-shell -i impala.node1.com -q 'invalidate table_name'