错误信息:
Unexpected end of file when reading from HS2 server. The root cause might be too many concurrent connections. Please ask the administrator to check the number of active connections, and adjust hive.server2.thrift.max.worker.threads if applicable.
原因:
在hive-site.xml中配置了:
<property>
<name>hive.server2.authentication</name>
<value>NOSASL</value>
</property>
解决方案:
将hive.server2.authentication 配置改为NONE或者beeline连接时用:/usr/bin/beeline -n platform -u jdbc:hive2://xxxx:10501/tmp;auth=noSasl
扩展:
HiveServer2支持匿名(不启用认证)和使用SASL,Kerberos(GSSAPI),通过LDAP,可插入自定义认证和可插入认证模块(PAM,支持Hive 0.13以上),CUSTOM为可基于自身需求定制的用户安全认证模式
NONE指hive没有启用用户安全认证,任何登录者都拥有超级权限,可以对hive进行任意操作
NOSASL指需要任意一个用户名,不需要密码,不填写或者填写错误用户名会导致报错
KERBEROS指用户需要拥有hive的keytab文件(类似于ssh-key等密钥),有了keytab就相当于拥有了永久的凭证,不需要提供密码,因此只要linux的系统用户对于该keytab文件有读写权限,就能冒充指定用户访问hadoop,因此keytab文件需要确保只对owner有读写权限
LDAP指hive采用ldap统一认证服务,连接访问时需要提供username和password
PAM指hive采用pam认证模块,同样需要提供username和password,只是原理大不相同
CUSTOM指可以根据自身需求对用户登录认证进行一定客制,比如将密码通过md5进行加密等
参考:
https://www.cnblogs.com/Do-n/p/13546285.html