首页 理论教育 关键代码行解析:7.4.2详解

关键代码行解析:7.4.2详解

时间:2023-07-02 理论教育 版权反馈
【摘要】:下面对本示例的关键代码进行解析。2)建立指定驱动的URL连接:●url:驱动连接URL。②当HiveServer2使用Binary模式运行时,JDBC连接URL格式如下:jdbc:hive2:///其中,端口的默认值是:10000。stmt.execute;在代码中,通过use DatabaseName语句即可实现动态选定数据库。而且PreparedStatement实例包含已编译的SQL语句,其执行速度要快于Statement对象。6)执行SQL语句。resultSet=preparedStatement.executeQuery();7)遍历查询结果对象。

关键代码行解析:7.4.2详解

下面对本示例的关键代码进行解析。

1)首先,加载HiveServer2的JDBC驱动:

Class.forName("org.apache.hive.jdbc.HiveDriver");

在使用Class.forName()加载hiveserver2的驱动org.apache.hive.jdbc.HiveDriver时,会执行HiveDriver中的静态代码段,创建一个HiveDriver实例,然后调用DriverManag-er.registerDriver()注册。

2)建立指定驱动的URL连接:

●url:驱动连接URL。

●user:是授权访问的用户名。

●password:授权访问的密码。

3)连接URL。

①当HiveServer2使用HTTP模式运行时,JDBC连接URL格式如下:

jdbc:hive2://<host>:<port>/<db>;transportMode=http;httpPath=<http_endpoint>

其中,<http_endpoint>默认值是:cliservice,需要跟hive-site.xml中的配置保持一致。<port>端口的默认值是:10001。

②当HiveServer2使用Binary模式运行时,JDBC连接URL格式如下:

jdbc:hive2://<host>:<port>/<db>(www.xing528.com)

其中,<port>端口的默认值是:10000。

4)动态选定数据库

stmt.execute("use hive");

在代码中,通过use DatabaseName语句即可实现动态选定数据库。

5)组织SQL语句。

组织SQL语句:从people表中查询age大于等于30的记录。这种写法可以防范SQL注入,不用对传入的数据做任何过滤,而如果使用普通的statement实例就有SQL注入风险。而且PreparedStatement实例包含已编译的SQL语句,其执行速度要快于Statement对象。

6)执行SQL语句。

resultSet=preparedStatement.executeQuery();

7)遍历查询结果对象。

8)本示例并不需要SparkContext?

在本示例中,为什么不需要SparkContext呢?我们通常用Java来操作Spark SQL,肯定有类似下面的代码:

原因是:我们只是把SQL查询语句指令发给Thrift Server,然后Thrift Server把SQL查询语句交给了Spark SQL处理,所以就跟普通的Spark SQL程序不一样。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈