• 【转】Impala常见错误


    文章原文链接 http://www.bbgo.xyz/accounts/...

    1、尽量少使用 invalidate metadata,尽量用REFRESH TABLE_NAME;
    2、set APPX_COUNT_DISTINCT=true 与 ndv 函数是一样的,都只是估值

    Impala SQL 不支持的一个查询中的多个聚合函数使用 DISTINCT
    如:select count(distinct id),count(distinct uid) from table;执行会报错
    impala 提供了 ndv 函数 及 set APPX_COUNT_DISTINCT=true 参数。但这两个都不是精确值

    3、impala 保存含中文结果到文件

      impala-shell -i hadoop07 -B -q 'select "我" from dual' -o result.txt
    这个太坑了
    修改  /data/cloudera/parcels/CDH-5.6.0-1.cdh5.6.0.p0.45/bin/../lib/impala-shell/impala_shell.py
    添加
    # coding=utf-8
    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    
    然后修改:
    query = self.imp_client.create_beeswax_query("select %s" % args,self.set_query_options)
    为
     query = self.imp_client.create_beeswax_query("select %s" % (args.encode('utf-8')),self.set_query_options)
    

    4、impala 内存限制问题,超出内存查询任务就被杀死

    这个猜测有两种可能:
    1、就是的确集群的内存不足就该加内存了
    2、就是集群中内存足够,只是impala在生成查询计划时,计算的内存使用量比实际需要量小,这个对依赖的表都加上 compute stat 语句,这样impala 在生成查询计划时就能更准确的计算资源使用量
    Memory Limit Exceeded
    Query(f14d4983f27e4bc9:aef735d6523a7eb7) Limit: Consumption=7.51 GB
    

    5、 impala not in 为 0,

     就是在使用 not in 语句时得到的结果为 0 ,但实际上并不是
     原因是表中 in 的字段有 null 值
     PS:impala这个真是坑死我了
    
    

    6、cdh impala 添加 Llama服务的坑

     添加此服务是 Llama 会修改 /yarn/nm/usercache/ 目录的权限,导致hive及mr都执行不了,因为 yarn 需要此目录的读写权限,不过后来改了权限还是老有问题,干脆就撤掉此服务
    

    7、Impala compute stats

     
    总是遇到问题,猜测是因为元数据刷新延迟的问题,暂时在 compute status前添加 sleep 5s
  • 相关阅读:
    触发器
    累加求和存储过程
    check约束条件
    数据库的备份还原
    创建万能分页
    视图
    进销存存储过程
    函数存储过程
    数据库作业27~45
    数据库作业17~26
  • 原文地址:https://www.cnblogs.com/yanwuliu/p/10897090.html
Copyright © 2020-2023  润新知