项目场景:
在Windows上使用python调用pyhive库连接hive。hive ip地址都能正确ping通,本地也能连上。
问题描述
问题1 :pyhive No module named sasl
处理完之后又遇到:
问题2:Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4)
原因分析:
问题1 :pyhive No module named sasl
缺少依赖,如果是anaconda下面进行连接的话直接在anacoda的图形化界面的:
下面搜索sasl,安装即可,也一定要安装其他的例如thrift包。
如果没用anaconda的话直接:
1. pip install thrift 2. pip install sasl 3. pip install thrift-sasl 4. pip install thriftpy2
发生这个错误最主要的原因是之所以pyhive无法链接hive库是因为,所引用的sasl无法初始化,在windows下,需要指定初始化时的dll库位置。
我的解决方法是:
第一步:
找到你python环境下的Library,找到bin目录下的sasls,找到
复制一下。
第二步:
在C盘下创建C:\CMU\bin\sasl2,在此目录下面拷贝saslPLAIN.dll文件,再尝试连接:
成功!