Hive中java对数据库、表的操作

来源:互联网 发布:淘宝哪个店卖高仿aj好 编辑:程序博客网 时间:2024/06/04 21:03

在应用Hive之前,首先搭建Hive环境,关于Hive的搭建 参考之前的搭建文档

http://blog.csdn.net/liulihui1988/article/details/74351532

java代码执行Hive脚本

java代码执行Hive脚本,需要启动Hive的内部服务,供其他或者java代码链接,Hive内部服务启动命令

# ./hive --service hiveserver2

这里写图片描述

启动成功后tcp会自动监听 一个10000的端口

这里写图片描述

但是这里监听的IP是127.0.0.1,是不能供其它链接的,需要修改配置文件,指定服务地址,IP或者服务器名称

  • 需改 Hive-site.xml 的配置文件
# vi ../conf/hive-site.xml 

需要把如下value的localhost 改为服务器名称或者IP

<property>  <name>hive.server2.thrift.bind.host</name>  <value>centos-node6</value>  <description>Bind host on which to run the HiveServer2 Thrift interface.  Can be overridden by setting $HIVE_SERVER2_THRIFT_BIND_HOST</description></property>

再次启动Hive的内部服务,查看监听的tcp和端口号服务

这里写图片描述

内部服务开启成功,现在可以供其它链接Hive,本地测试 命令进入/bin目录下

# ./beeline 
beeline> !connect jdbc:hive2://centos-node6/default;

这里写图片描述

用户名默认:root 密码:无

登陆成功后命令查看default数据库中的表

show tables

出现错误 5000L,这是Hive的一个bug,需要修改配置文件

这里写图片描述

修改配置文件 hive-site.xml,修改value值为5000

<property>  <name>hive.server2.long.polling.timeout</name>  <value>5000</value>  <description>Time in milliseconds that HiveServer2 will wait, before responding to asynchronous calls that use long polling</description></property>

再次命令查看default 中的表 show tables

这里写图片描述

远程链接Hive测试成功!

java代码JDBC链接Hive

  • jdbc测试链接Hive代码如下
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;/** * Hive远程测试连接 * @author llh * */public class HiveTest {    public static void main(String[] args) throws Exception{        Class.forName("org.apache.hive.jdbc.HiveDriver");        Connection conn = DriverManager.getConnection("jdbc:hive2://centos-node6/default", "root", "");        try {            Statement st = conn.createStatement();            ResultSet re = st.executeQuery("select count(*) from t_emp");             if(re.next()){                System.err.println("t_emp数据条数:"+re.getInt(1));            }        } catch (Exception e) {            e.printStackTrace();        }finally{            conn.close();        }    }}

这里写图片描述

测试成功

原创粉丝点击