• problems_hue


    problems_hue

    1 访问hue的web界面报错:

    访问: cdh01:8888/
    报错:ProgrammingError: (1146, "Table 'hue.django_session' doesn't exist")
    原因:mysql数据库没有被初始化。
    解决方法:初始化数据库

    cd /usr/lib/hue/build/env
    bin/hue syncdb
    bin/hue migrate
    

    注意:执行bin/hue syncdb后,系统要求输入账号和密码还有email,我输入的账户名是root,email为空,不用输入。
    参考链接:https://www.cnblogs.com/zlslch/p/6819622.html?utm_source=itdadao&utm_medium=referral

    2 hue无法和hive集成

    问题:打开hue的web界面,访问hive报错如下:

    Could not connect to cdh01:10000 (code THRIFTTRANSPORT): TTransportException('Could not connect to cdh01:10000',)
    

    原因:hui.ini中hive的主机名设置错误。
    解决方法:
    vim hui.ini,配置如下:

    [beeswax]
      hive_server_host=cdh03
    

    3 hue无法和hbase集成

    问题:打开hue的web界面,访问hbase报错如下:

    Api Error: timed out
    HBase Thrift 1 server cannot be contacted: Could not connect to cdh01:9090
    

    打开日志文件查看详细的错误信息:

    tail -100f /var/log/hue/runcpserver.log 
    # 以下是报错的详细信息: 
    [18/Dec/2019 09:44:58 +0800] access       INFO     192.168.8.1 root - "POST /jobbrowser/jobs/ HTTP/1.1" returned in 11ms
    [18/Dec/2019 09:44:59 +0800] thrift_util  WARNING  Not retrying thrift call getTableNames due to socket timeout
    [18/Dec/2019 09:44:59 +0800] thrift_util  INFO     Thrift saw a socket error: timed out
    [18/Dec/2019 09:44:59 +0800] exceptions_renderable ERROR    Potential trace: [('/usr/lib/hue/apps/hbase/src/hbase/api.py', 46, 'query', 'return getattr(self, action)(*args)', ('/usr/lib/hue/apps/hbase/src/hbase/api.py', 141, 'getTableList', "return [{'name': name, 'enabled': client.isTableEnabled(name, doas=self.user.username)} for name in client.getTableNames(doas=self.user.username)]"), ('/usr/lib/hue/desktop/core/src/desktop/lib/thrift_util.py', 385, 'wrapper', "raise StructuredException('THRIFTSOCKET', str(e), data=None, error_code=502)")]
    [18/Dec/2019 09:44:59 +0800] middleware   INFO     Processing exception: Api Error: timed out: Traceback (most recent call last):
      File "/usr/lib/hue/build/env/lib/python2.6/site-packages/Django-1.6.10-py2.6.egg/django/core/handlers/base.py", line 112, in get_response
        response = wrapped_callback(request, *callback_args, **callback_kwargs)
      File "/usr/lib/hue/build/env/lib/python2.6/site-packages/Django-1.6.10-py2.6.egg/django/db/transaction.py", line 371, in inner
        return func(*args, **kwargs)
      File "/usr/lib/hue/apps/hbase/src/hbase/views.py", line 79, in api_router
        return api_dump(HbaseApi(request.user).query(*url_params))
      File "/usr/lib/hue/apps/hbase/src/hbase/api.py", line 54, in query
        raise PopupException(_("Api Error: %s") % error_msg)
    PopupException: Api Error: timed out
    

    最终确实是以下原因,但是可以通过添加一个配置解决问题,所以不用以下方法:

    猜测原因是,hue是cdh版本的,hive和hbase都是apache开源版本的。 不是这个原因。 
    经过各种尝试,还是无法集成hive、hbase等。想想还是使用apache版本的hue吧。  
    首先,禁用cdh版的hue服务: 
    service hue stop
    chkconfig --list hue  #验证hue服务是否开机时是否启动
    chkconfig hue off
    chkconfig --list hue  #验证hue服务是否开机时不启动了
    然后在cdh03上安装apache版hue。 
    

    原因分析:
    (1)首先我们查看Hue配置中关于HBase Thrift的默认配置:

    [root@ip-172-31-13-38 hue]#vim /opt/cloudera/parcels/CDH/lib/hue/apps/hbase/src/hbase/conf.py
    THRIFT_TRANSPORT = Config(
      key="thrift_transport",
      default="framed",
      help=_t("'framed' is used to chunk up responses, which is useful when used in conjunction with the nonblocking server in Thrift."
           "'buffered' used to be the default of the HBase Thrift Server."),
      type=str
    )
    

    可以看到Hue中使用默认的模式framed。

    (2)回到Cloudera Manager上点击HBase服务,然后进入Thrift的配置页。

    可以看到HBase Thrift的framed模式并未勾选,说明HBase Thrift使用的是buffered模式,这与Hue的默认模式是不匹配的。所以导致通过Hue访问HBase服务异常报错API Error。

    注意:查看上图hbase.regionserver.thrift.server.type该参数的服务类型,一共三项,根据CM对hbase.regionserver.thrift.framed的解释“使用 THsHaServer 或 TNonblockingServer 时,无论此配置值如何,始终使用framed传输。”而hbase.regionserver.thrift.server.type该参数的默认值是TThreadPoolServer恰好使用的不是framed。

    解决方法:
    (1)在Hue的配置 hue_safety_valve.ini 的Hue服务高级配置代码段(安全阀) 中增加以下配置:

    [hbase]
    thrift_transport=buffered
    

    (2)重启Hue服务,问题解决。

    小结:
    1.从CDH5.15开始Hue的默认配置中 THRIFT_TRANSPORT 为 framed ,而HBase Thrift中的默认配置却为 buffered ,所以导致Hue访问HBase服务失败。
    2.使用以下三种方法中任意一种可以解决该问题:
    a)在hue_safety_valve.ini中增加以下内容:
    [hbase]
    thrift_transport=buffered
    这也是本文使用的方法。
    b)修改
    /opt/cloudera/parcels/CDH/lib/hue/apps/hbase/src/hbase/conf.py
    中的THRIFT_TRANSPORT的默认配置为buffered。
    c)通过Cloudera Manager将HBase Thrift的配置项 hbase.regionserver.thrift.server.type 修改为 TNonblockingServer ,这样HBase会使用 framed 的方式进行传输,可以与Hue中的默认配置保持一致。

    2.我没有CM的web UI界面,所以只能在hue的conf目录下添加一个配置文件:

    vim /etc/hue/conf/hue_safety_valve.ini
    # 添加如下配置:
    [hbase]
    thrift_transport=buffered
    

    reference: https://www.codercto.com/a/79661.html

    4 hue中访问impala报错

    errorlog:
    Could not connect to nodeXXXX:21050

    RCA: impala服务未启动。

    solution:

    1. 在集群所有节点上都启动impala:
    2. 主节点启动以下三个服务进程:
    service impala-state-store start
    service impala-catalog start
    service impala-server start
    
    1. 从节点启动impala-server
      service impala-server start
    2. 查看impala进程是否存在
      ps -ef | grep impala

    5 hue中访问hdfs报错



    errorlog:

    Cannot access: /. Note: you are a Hue admin but not a HDFS superuser, "hdfs" or part of HDFS supergroup, "supergroup".
    

    RCA: hue.ini配置文件中,server_user=root server_group=root default_user=root 这3个配置忘记把注释去掉了。

    6 安装hue时,make apps 编译报错

    errorlog:

    "Error: must have python development packages for 2.6 or 2.7. Could not find Python.h. Please install python2.6-devel or python2.7-devel"。Stop。
    

    RCA:
    排查最终原因是,python等某些依赖未安装/未安装好。依赖未安装的原因,是配置了本地yum源。

    solution:
    可能是本地yum源配置的原因,
    进入该目录: /etc/yum.repos.d/
    将原来配置的本地文件localimp.repo重命名,然后备份:
    mv localimp.repo localimp22222.repo.bak
    然后重新安装hue需要的依赖(这个安装的命令可以多执行几遍,确保所有依赖都安装完毕):

    yum -y install ant asciidoc cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-plain gcc gcc-c++ krb5-devel libffi-devel libxml2-devel libxslt-devel make  mysql mysql-devel openldap-devel python-devel sqlite-devel gmp-devel
    

    发现其又安装了好多依赖程序。
    然后删除hue的程序目录: /develop/hue-3.9.0-cdh5.14.0/
    重新减压hue,配置hue.ini(或直接拷贝原来配置好的文件过来)
    然后进入目录 /develop/hue-3.9.0-cdh5.14.0/ , 重新编译:make apps 成功!

    7

  • 相关阅读:
    Elasticsearch 配置优化
    一个Elasticsearch嵌套nested查询的实例
    apache kafka配置中request.required.acks含义
    filebeat配置介绍
    Linux nohup命令详解
    elasticsearch中如何手动控制全文检索结果的精准度
    elasticsearch中filter执行原理深度剖析(bitset机制与caching机制)
    logback与log4j比较
    Markdown常用语法
    Asp.NetCore3.1中JWT认证入门使用(一)
  • 原文地址:https://www.cnblogs.com/mediocreWorld/p/15186072.html
Copyright © 2020-2023  润新知