2017-06-13 14 views
0

ハイブを使用してここに記載されているハイブ接続を設定しようとしました。How to Access Hive via Python? Python 3.5.2(cloudera Linux BDAにインストールされています)との接続がSASLパッケージで問題を引き起こしているようです。私はSASLが2.7 pythonとしか互換性がないというフォーラムを見た。そうですか?私は間違って逃げた/何をしましたか?Pyhive、SASL、Python 3.5

from pyhive import hive 
conn = hive.Connection(host="myserver", port=10000) 
import pandas as pd 

エラーメッセージ

TTransportException Traceback (most recent call last) 
in() 
1 from pyhive import hive 
2 #conn = hive.Connection(host="myserver", port=10000) 
----> 3 conn = hive.Connection(host="myserver") 
4 import pandas as pd 

/opt/anaconda3/lib/python3.5/site-packages/pyhive/hive.py in init(self, host, port, username, database, auth, configuration) 
102 
103 try: 
--> 104 self._transport.open() 
105 open_session_req = ttypes.TOpenSessionReq(
106 client_protocol=protocol_version, 

/opt/anaconda3/lib/python3.5/site-packages/thrift_sasl/init.py in open(self) 
70 if not ret: 
71 raise TTransportException(type=TTransportException.NOT_OPEN, 
---> **72 message=("Could not start SASL: %s" % self.sasl.getError()))** 
73 
74 # Send initial response 

TTransportException: TTransportException(message="Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: No worthy mechs found'", type=1) 

答えて

0

私たち(私が、言うべきIT-チーム)解決策を見つける

pythonパッケージのリプレイス(バージョン0.10.0への)とPyHive(バージョン0.3.0への)は、私たちが使用したバージョンが最新でない理由を知らない。

追加以下:Clouderaのマネージャーで、次のハイブの設定パラメータへの

<property> 
<name>hive.server2.authentication</name> 
<value>NOSASL</value> 
</property> 

ハイブ-site.xmlの ハイブクライアントの詳細設定スニペット用

HiveServer2詳細設定スニペット(安全弁)( HUEが動作するために必要なhive-site.xml用の安全弁)

from pyhive import hive 
conn = hive.Connection(host="myserver", auth='NOSASL') 
import pandas as pd 
import sys 

df = pd.read_sql("SELECT * FROM my_table", conn) 
print(sys.getsizeof(df)) 
df.head() 

問題なく処理されましたror。

ベスト、 トム

+0

my hive.server2.authenticationがCUSTOMに設定されています。そしてどうやって? –

+0

pyhiveコードの後に​​: 'raise NotImplementedError( " NONE、NOSASL、LDAP、KERBEROS " "認証のみがサポートされています。{} "。format(auth))'だから実際には分かりません。申し訳ありませんが、役に立たない –

0

あなたはすべての依存関係がインストールされている場合は、チェック:

gcc-c++ 
python-devel.x86_64 
cyrus-sasl-devel.x86_64 

(Windows上のyoureを想定)

+0

おかげでとにかく、私はチェックしますが、それはLinuxのBDA上です! –

+0

さらに詳しい情報:gccとcyrus-sasl-develがインストールされています。 python-develも含まれています(ただし、2.6バージョンはオペレーティングシステムに同梱されているバージョン、BDAのclouderaスイートです)。私たちはPythonシステムを使用していませんが、Anacondaが提供しています。 –

+0

python 3.5.2 Anacondaカスタム(64ビット) [GCC 4.4.7 20120313(Red Hat 4.4.7-1)] –