簡體   English   中英

如何在lambda function中使用pyhive?

[英]how to use pyhive in lambda function?

我寫了一個 function,它使用 pyhive 從 Hive 讀取。在本地運行它工作正常。 但是,當嘗試使用 lambda function 時,我收到錯誤消息: “無法啟動 SASL:b'sasl_client_start (-4) SASL(-4) 中的錯誤:沒有可用的機制:找不到有價值的機制'”

我嘗試使用此鏈接中的指南: https://github.com/cloudera/impyla/issues/201

但是,我無法使用最新的命令: yum install cyrus-sasl-lib cyrus-sasl-gssapi cyrus-sasl-md5因為我用來構建的系統是 ubuntu,它不支持 yum function。試圖安裝這些包(使用 apt-get): sasl2-bin libsasl2-2 libsasl2-dev libsasl2-modules libsasl2-modules-gssapi-mit

如中所述: python 無法連接 hiveserver2但仍然沒有運氣。 有任何想法嗎?

謝謝,尼爾。

可以關注這個github issue 我能夠使用 AWS Lambda 中的 pyhive 庫將 Hive server2 與 LDAP 身份驗證連接到 Python 2.7。 我為讓它發揮作用所做的是:

  1. 使用 Lambda 中使用的 AMI 獲取一個 EC2 實例或啟動容器。
  2. 運行以下命令以安裝所需的依賴項

    yum upgrade yum install gcc yum install gcc-g++ sudo yum install cyrus-sasl cyrus-sasl-devel cyrus-sasl-ldap #include cyrus-sals dependency for authentication mechanism you are using to connect to hive pip install 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 代碼如下所示:

     from pyhive import hive import logging import os os.environ['SASL_PATH'] = os.path.join(os.getcwd(), 'lib/sasl2') log = logging.getLogger() log.setLevel(logging.INFO) log.info('Path: %s',os.environ['SASL_PATH']) def lambda_handler(event, context): cursor = hive.connect(host='hiveServer2Ip', port=10000, username='userName', auth='LDAP',password='password').cursor() SHOW_TABLE_QUERY = "show tables" cursor.execute(SHOW_TABLE_QUERY) tables = cursor.fetchall() log.info('tables: %s', tables) log.info('done')

我寫了一個 function 使用 pyhive 從 Hive 讀取。 在本地運行它工作正常。 但是,當嘗試使用 lambda function 時,我收到錯誤消息: “無法啟動 SASL:b'sasl_client_start (-4) SASL(-4) 中的錯誤:沒有可用的機制:沒有找到有價值的機甲'”

我嘗試使用此鏈接中的指南: https://github.com/cloudera/impyla/issues/201

但是,我無法使用最新命令: yum install cyrus-sasl-lib cyrus-sasl-gssapi cyrus-sasl-md5 ,因為我用來構建的系統是不支持 yum ZC1C425268E68385D1AB5074C17A94F14 的 ubuntu。 嘗試安裝這些軟件包(使用 apt-get): sasl2-bin libsasl2-2 libsasl2-dev libsasl2-modules libsasl2-modules-gssapi-mit

如中所述: python 無法連接 hiveserver2但仍然沒有運氣。 有任何想法嗎?

謝謝,尼爾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM