首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在lambda函数中使用pyhive?

如何在lambda函数中使用pyhive?
EN

Stack Overflow用户
提问于 2020-04-23 13:15:55
回答 1查看 897关注 0票数 0

我编写了一个函数,它使用pyhive从蜂巢中读取信息。在本地运行它,它运行得很好。然而,在尝试使用lambda函数时,我得到了错误:“无法启动SASL: sasl_client_start (-4) SASL(-4)SASL(-4)中的b' error :没有可用的机制:没有找到有价值的机器”

我尝试在这个链接中使用指南:https://github.com/cloudera/impyla/issues/201

但是,我无法使用最新的命令:yum install cyrus-sasl-lib cyrus-sasl-gssapi cyrus-sasl-md5,因为我用来构建的系统是ubuntu,它不支持yum函数。尝试安装那些软件包(使用apt-get):sasl2 2-bin libsasl2 2-2 libsasl2 2-dev libsasl2 2-模块libsasl2模块-gssapi-mit

就像在python无法连接hiveserver2中描述的那样,但是仍然没有运气。有什么想法吗?

谢了尼尔。

EN

回答 1

Stack Overflow用户

发布于 2020-05-20 07:23:30

你可以跟着这个github问题。我能够使用AWS中的pyhive库和Python2.7连接server2和LDAP身份验证。为了使它发挥作用,我所做的是:

  1. 使用一个EC2实例或使用AMI在Lambda中的应用的启动容器。
  2. 运行以下命令来安装所需的依赖项 升级yum安装gcc yum安装gcc-g++ sudo yum安装cyrus-sasl cyrus-sasl-devel cyrus-sasl-ldap #包括cyrus-sals依赖关系,用于连接到蜂窝pip安装six==1.12.0的身份验证机制。
  3. /usr/lib64/sasl2/捆绑到Lambda并设置os.environ['SASL_PATH'] = os.path.join(os.getcwd(), /path/to/sasl2。验证.so文件是否显示在os.environ['SASL_PATH']路径上。
  4. 我的Lambda代码看起来是: 从pyhive导入单元导入日志输入os .os.environ‘sasl2_PATH’= os.path.join(os.getcwd(),‘lib/’SASL 2‘) log = logging.getLogger() log.setLevel(logging.INFO) log.info('Path:%s',os.environ’‘SASL_PATH’) def lambda_handler(事件,上下文):游标=hive.connect(主机=‘hiveServer2Ip’,port=10000,用户名=‘userName’,auth='LDAP',密码=‘密码’).cursor() SHOW_TABLE_QUERY =“显示表”cursor.execute(SHOW_TABLE_QUERY) table= cursor.fetchall() log.info(‘table:%s',table) log.info('done')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61388175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档