pyhive client鏈接hive報錯處理:Could not start SASL

原本一切就緒,鏡像裏已安裝以下主要的pip包。html

pyhive configparser pandas hdfs thrift sqlparse sasl thrift-sasl

但,使用pyhive client去真正鏈接hive服務器時,仍是會報以下錯誤:linux

thrift.transport.TTransport.TTransportException: Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found'

這個問題,有點大條了,按網上centos的解決方式,如下安裝包便可解決:sql

yum install cyrus-sasl-plain  cyrus-sasl-devel  cyrus-sasl-gssapi

但個人鏡像是UBUNTU,由於tensorflow官方鏡像就是ubuntu 1804。因此,這條路不錯。docker

又參考了網上一些ubuntu的方法,安裝sasl2-bin等這些軟件包,都沒有解決問題。ubuntu

最後,仍是實打實的來到http://www.linuxfromscratch.org/blfs/view/cvs/postlfs/cyrus-sasl.htmlcentos

源碼安裝好Cyrus SASL-2.1.27,這個問題才搞定。api

非docker的安裝命令:服務器

./configure --prefix=/usr \ --sysconfdir=/etc \ --enable-auth-sasldb \ --with-dbpath=/var/lib/sasl/sasldb2 \ --with-saslauthd=/var/run/saslauthd &&
make -j1 make install &&
install -v -dm755                          /usr/share/doc/cyrus-sasl-2.1.27/html &&
install -v -m644  saslauthd/LDAP_SASLAUTHD /usr/share/doc/cyrus-sasl-2.1.27      &&
install -v -m644  doc/legacy/*.html /usr/share/doc/cyrus-sasl-2.1.27/html && install -v -dm700 /var/lib/sasl

 

附上將cyrus sasl編譯進鏡像的dockerfile.post

FROM harbor.xxx.com.cn/3rd_part/tensorflow:xxx MAINTAINER xxx COPY cyrus-sasl-2.1.27 /tmp/cyrus-sasl-2.1.27

RUN export http_proxy=http://xxx:8080 \
    && export https_proxy=http://xxx:8080 \
    && export ftp_proxy=http://xxx:8080 \ 
    && cd /tmp/cyrus-sasl-2.1.27 \ && ls -lh /tmp/ \ && ls -lh /tmp/cyrus-sasl-2.1.27/ \ && ./configure --prefix=/usr --sysconfdir=/etc --enable-auth-sasldb --with-dbpath=/var/lib/sasl/sasldb2 --with-saslauthd=/var/run/saslauthd \ && make -j1 \ && make install \ && install -v -dm755 /usr/share/doc/cyrus-sasl-2.1.27/html \ && install -v -m644 saslauthd/LDAP_SASLAUTHD /usr/share/doc/cyrus-sasl-2.1.27 \ && install -v -m644 doc/legacy/*.html /usr/share/doc/cyrus-sasl-2.1.27/html \ && install -v -dm700 /var/lib/sasl \ && echo "finished!!!"
相關文章
相關標籤/搜索