我正在尝试使用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'作为用户,不知道为什么会出现此错误。 谢谢你的帮助。
答案 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传递。