关于ubuntu:Hive的JDBC连接

65次阅读

共计 1837 个字符,预计需要花费 5 分钟才能阅读完成。

相干常识
Hive 是大数据技术簇中进行数据仓库利用的根底组件,是其它相似数据仓库利用的比照基准。根底的数据操作咱们能够通过脚本形式以 Hive-client 进行解决。若须要开发应用程序,则须要应用 Hive 的 JDBC 驱动进行连贯。
Hive JDBC 驱动连贯分为两种,晚期的是 HiveServer,最新的是 HiveServer2,前者自身存在很多的问题,如安全性、并发性等,后者很好的解决了诸如安全性和并发性等问题。

零碎环境
Linux Ubuntu 20.04
OpenJDK-11.0.11
hadoop-3.2.2
mysql-8.0.25

工作内容
练习应用 JDBC 形式连贯 Hive,通过 java 代码操作 Hive。


工作步骤
1. 首先在 Linux 本地,新建 /data/hive6 目录,用于寄存所需文件。

mkdir -p /data/hive6  

2. 切换到 /apps/hive/conf 目录下,批改 hive-site.xml 文件,将以下配置写入

<property>  
   <name>hive.server2.thrift.port</name>  
   <value>10000</value>  
</property>  
<property>  
    <name>hive.server2.thrift.bind.host</name>  
    <value>127.0.0.1</value>  
    </property>  

3. 切换到 /apps/hadoop/sbin 目录下,开启 Hadoop 相干过程

cd /apps/hadoop/sbin  
./start-all.sh  

4. 开启 mysql 服务

sudo service mysql start  

5. 切换到 /apps/hive 目录下,启动 hiveserver2

cd /apps/hive        
./bin/hive --service hiveserver2 

6. 另外开启一个终端模拟器,应用 netstat 命令查看一下 10000 端口

netstat -nptl | grep 10000  

7. 切换到 /apps/hive/bin 目录下,开启 beeline

cd /apps/hive/bin  
./beeline      

8. 应用(!connect jdbc:hive2://ip 地址:10000 hiveuser hivepassword)测试是否能够连贯,username 和 password 为创立的用户名 (root) 和明码(123456)。

!connect jdbc:hive2://127.0.0.1:10000  

9. 在 idea 中创立一个我的项目,将 hadoop 中的配置文件加到 resources 中

10. 增加 maven 依赖

<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.25</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-jdbc</artifactId>
        <version>2.3.8</version>
    </dependency>   


package my.study.hive;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class HiveClient {
    private static String driverName = "org.apache.hive.jdbc.HiveDriver";
    public static void main(String args[]){
        try {Class.forName(driverName);
            Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/hive", "root", "123456");

            Statement st =  con.createStatement();} catch (ClassNotFoundException e) {e.printStackTrace();
            System.exit(1);
        }catch (SQLException throwables) {throwables.printStackTrace();
        }
    }
}

正文完
 0