pyhs2错误连接到kerberos启用的配置单元

时间:2016-06-22 10:17:33

标签: python-2.7 hadoop pyhive

我正在尝试使用python 2(miniconda2安装)连接到hive。 以下是我正在尝试的代码 -

import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

@RestController
public class Controller {

    @RequestMapping(
            value = "/uploadFile",
            method = RequestMethod.POST,
            consumes = MediaType.MULTIPART_FORM_DATA_VALUE,
            produces = MediaType.APPLICATION_JSON_UTF8_VALUE
    )
    public String handle(
            @RequestPart("file") MultipartFile file
    ) {
        System.out.println(file.getOriginalFilename());
        return "{}";
    }
}

kerberos主机安装在同一台主机上,并具有服务名称' ITEDM' 奇怪的是,我收到了以下错误 -

connection = hive.connect(host='psvlxihpnn1', port= '10000', authMechanism='KERBEROS', user='***',password='****', configuration={'krb_host': 'psvlxihpnn1', 'krb_service': 'ITEDM'} )

我没有通过' krbtgt'作为用户,不知道为什么会出现此错误。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

只要运行脚本的用户具有有效的kerberos票证,此连接字符串就会起​​作用:

import pyhs2

with pyhs2.connect(host='beeline_host',
                    port=10000,
                    authMechanism="KERBEROS") as conn:

with conn.cursor() as cur:
        print cur.getDatabases()

用户名,密码和任何其他配置参数不会通过KDC传递。