多平台统一管理软件接口,如何实现多平台统一管理软件接口
426
2023-03-19
本文目录一览:
客户端连接Hive需要使用HiveServer2。HiveServer2是HiveServer的重写版本,HiveServer不支持多个客户端的并发请求。当前HiveServer2是基于Thrift RPC实现的。它被设计用于为像JDBC、ODBC这样的开发API客户端提供更好的支持。Hive 0.11版本引入的HiveServer2。
HiveServer2的启动
启动HiveServer2
HiveServer2的启动十分简便:
$ $HIVE_HOME/bin/hiveserver2
或者
$ $HIVE_HOME/bin/hive --service hiveserver2
默认情况下,HiverServer2的Thrift监听端口是10000,其WEB UI端口是10002。可通过来查看HiveServer2的Web UI界面,这里显示了Hive的一些基本信息。如果Web界面不能查看,则说明HiveServer2没有成功运行。
使用beeline测试客户端连接
HiveServer2成功运行后,我们可以使用Hive提供的客户端工具beeline连接HiveServer2。
$ $HIVE_HOME/bin/beeline
beeline !connect jdbc:hive2://localhost:10000
如果成功登录将出现如下的命令提示符,此时可以编写HQL语句。
0: jdbc:hive2://localhost:10000
报错:User: xxx is not allowed to impersonate anonymous
在beeline使用!connect连接HiveServer2时可能会出现如下错误信息:
12Caused by: org.apache.hadoop.ipc.RemoteException: User: xxx is not allowed to impersonate anonymous这里的xxx是我的操作系统用户名称。这个问题的解决方法是在hadoop的core-size.xml文件中添加xxx用户代理配置:
123456789<span class="hljs-tag"<<span class="hljs-title"property <span class="hljs-tag"<<span class="hljs-title"namehadoop.proxyuser.xxx.groups<span class="hljs-tag"<span class="hljs-title"name <span class="hljs-tag"<<span class="hljs-title"value*<span class="hljs-tag"<span class="hljs-title"value<span class="hljs-tag"<span class="hljs-title"property<span class="hljs-tag"<<span class="hljs-title"property <span class="hljs-tag"<<span class="hljs-title"namehadoop.proxyuser.xxx.hosts<span class="hljs-tag"<span class="hljs-title"name <span class="hljs-tag"<<span class="hljs-title"value*<span class="hljs-tag"<span class="hljs-title"value<span class="hljs-tag"<span class="hljs-title"property</span</span</span</span</span</span</span</span</span</span</span</span</span</span</span</span</span</span</span</span</span</span</span</span重启HDFS后,再用beeline连接HiveServer2即可成功连接。
常用配置
HiveServer2的配置可以参考官方文档《Setting Up HiveServer2》
这里列举一些hive-site.xml的常用配置:
hive.server2.thrift.port:监听的TCP端口号。默认为10000。
hive.server2.thrift.bind.host:TCP接口的绑定主机。
hive.server2.authentication:身份验证方式。默认为NONE(使用 plain SASL),即不进行验证检查。可选项还有NOSASL, KERBEROS, LDAP, PAM and CUSTOM.
hive.server2.enable.doAs:是否以模拟身份执行查询处理。默认为true。
Python客户端连接HiveServer2
python中用于连接HiveServer2的客户端有3个:pyhs2,pyhive,impyla。官网的示例采用的是pyhs2,但pyhs2的官网已声明不再提供支持,建议使用impyla和pyhive。我们这里使用的是impyla。
impyla的安装
impyla必须的依赖包括:
six
bit_array
thriftpy(python2.x则是thrift)
为了支持Hive还需要以下两个包:
sasl
thrift_sasl
可在Python PI中下载impyla及其依赖包的源码。
impyla示例
以下是使用impyla连接HiveServer2的示例:
1234567891011 from impala.dbapi import <span class="hljs-keyword"connect conn = <span class="hljs-keyword"connect(host=<span class="hljs-string"'127.0.0.1', port=<span class="hljs-number"10000, database=<span class="hljs-string"'default', auth_mechanism=<span class="hljs-string"'PLAIN') cur = conn.cursor() cur.execute(<span class="hljs-string"'SHOW DATABASES')<span class="hljs-keyword"print(cur.fetchall()) cur.execute(<span class="hljs-string"'SHOW Tables')<span class="hljs-keyword"print(cur.fetchall())</span</span</span</span</span</span</span</span</span</spanhive最终都会转化为mapreduce的job来运行。
用户接口主要有三个:CLI,Client 和 WUI。其中最常用的是 Cli,Cli 启动的时候,会同时启动一个 hive 副本。Client 是 hive 的客户端,用户连接至 hive Server。
在启动 Client 模式的时候,需要指出 hive Server 所在节点,并且在该节点启动 hive Server。 WUI 是通过浏览器访问 hive。
扩展资料:
hive 并不适合那些需要高实时性的应用,例如,联机事务处理(OLTP)。hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型,hive 将用户的hiveQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上。
Hadoop 监控作业执行过程,然后返回作业执行结果给用户。hive 并非为联机事务处理而设计,hive 并不提供实时的查询和基于行级的数据更新操作。hive 的最佳使用场合是大数据集的批处理作业,例如,网络日志分析。
参考资料来源:百度百科-hive
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~