• 【原创】大叔经验分享(48)oozie中通过shell执行impala


    oozie中通过shell执行impala,脚本如下:

    $ cat test_impala.sh
    #!/bin/sh
    /usr/bin/kinit -kt /tmp/impala.keytab impala/server04
    /usr/bin/impala-shell -i server04:21000 -q 'show databases'

    直接执行shell脚本正常,在oozie中执行报错:

    Traceback (most recent call last):
      File "/usr/lib/impala-shell/impala_shell.py", line 38, in <module>
        from impala_client import (ImpalaClient, DisconnectedException, QueryStateException,
      File "/usr/lib/impala-shell/lib/impala_client.py", line 20, in <module>
        import sasl
      File "/usr/lib/impala-shell/ext-py/sasl-0.1.1-py2.7-linux-x86_64.egg/sasl/__init__.py", line 1, in <module>
    
      File "/usr/lib/impala-shell/ext-py/sasl-0.1.1-py2.7-linux-x86_64.egg/sasl/saslwrapper.py", line 7, in <module>
      File "/usr/lib/impala-shell/ext-py/sasl-0.1.1-py2.7-linux-x86_64.egg/_saslwrapper.py", line 7, in <module>
      File "/usr/lib/impala-shell/ext-py/sasl-0.1.1-py2.7-linux-x86_64.egg/_saslwrapper.py", line 4, in __bootstrap__
      File "/usr/lib/impala-shell/lib/pkg_resources.py", line 874, in resource_filename
        self, resource_name
      File "/usr/lib/impala-shell/lib/pkg_resources.py", line 1349, in get_resource_filename
        self._extract_resource(manager, self._eager_to_zip(name))
      File "/usr/lib/impala-shell/lib/pkg_resources.py", line 1375, in _extract_resource
        self.egg_name, self._parts(zip_path)
      File "/usr/lib/impala-shell/lib/pkg_resources.py", line 954, in get_cache_path
        self.extraction_error()
      File "/usr/lib/impala-shell/lib/pkg_resources.py", line 920, in extraction_error
        raise err
    pkg_resources.ExtractionError: Can't extract file(s) to egg cache
    
    The following error occurred while trying to extract file(s) to the Python egg
    cache:
    
      [Errno 13] Permission denied: '/home/.python-eggs'
    
    The Python egg cache directory is currently set to:
    
      /home/.python-eggs
    
    Perhaps your account does not have write access to this directory?  You can
    change the cache directory by setting the PYTHON_EGG_CACHE environment
    variable to point to an accessible directory.
    
    Failing Oozie Launcher, Main class [org.apache.oozie.action.hadoop.ShellMain], exit code [1]

    按照提示修改PYTHON_EGG_CACHE即可

    $ cat test_impala.sh
    #!/bin/sh
    export PYTHON_EGG_CACHE=/tmp/.python-eggs
    /usr/bin/kinit -kt /tmp/impala.keytab impala/server04
    /usr/bin/impala-shell -i server04:21000 -q 'show databases'

    另外还可以通过beeline连接,则没有python的问题,

    详见:https://www.cnblogs.com/barneywill/p/10296502.html

  • 相关阅读:
    Linux 重启命令
    Linux TCP连接数修改
    Linux 命令--查看物理CPU个数、核数、逻辑CPU个数
    keepalived配置文件
    keepalived 安装配置
    linux下keepalived 安装配置
    redis主从切换的集群管理
    CentOS_5.6下使用cmake编译MySQL_5.5.11
    cas错误:org.jasig.cas.client.validation.TicketValidationException: No principal was found in the response from the CAS server.
    完美实现在同一个页面中使用不同样式的artDialog样式
  • 原文地址:https://www.cnblogs.com/barneywill/p/10637847.html
Copyright © 2020-2023  润新知