Spring中使用Spark连接的DataSource

这篇博客介绍了如何在Spring应用中配置DataSource以连接Spark的Hive Thriftserver,方法类似于配置Oracle等传统数据源,主要涉及jdbc方式连接Thriftserver来操作表数据。

  在Spring中配置Spark hive-thriftserver的连接DataSource与配置其他数据源连接方式是一样的,如一般Oracle数据源配置,使用如下的Jar包列表


使用jdbc的方式连接thriftserver服务访问表数据

package com.hadoop.test;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
public class ThreadSql extends  Thread  {
 
    @Override
    public void run() {
         
        excSparkSql();
    }
     
    public  void  excSparkSql() {
        String result = "";
        Connection conn = null;
        Statement stmt = null;
        try {
            Class.forName("org.apache.hadoop.hive.jdbc.HiveDriver");
            conn = DriverManager.getConnection(
                    "jdbc:hive://10.20.12.214:10000/test_db", "hduser001", "");
            stmt = conn.createStatement();
            String sql = " select count(1) from test_data ";   
            long start = System.currentTimeMillis();
             
            ResultSet res = stmt.executeQuery(sql);
             
            long cost = System.currentTimeMillis() - start;
             
            result = Thread.currentThread().getName() + ": " + cost/1000.0f + "s";
            System.out.println(result);
            stmt.close();
            conn.close();
        } catch (Exception e) {
             
            try {
                stmt.close();
                conn.close();
            } catch (SQLException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            e.printStackTrace();
             
        }
         
    }
     
 
}

在Spring中配置类似oracle的datasource配置,并在其他的ServiceBean中将其注入即可

    <bean id="dataService" class="com.sun.dt.service.impl.DataServiceImpl">
        <property name="dataDao" ref="sparkDataSource"></property>
    </bean>
     
    <bean id="oralceDataSource" class="org.apache.commons.dbcp.BasicDataSource"  
         destroy-method="close">  
        <property name="driverClassName" value="${jdbc.driver}" />  
        <property name="url" value="${jdbc.url}" />  
        <property name="username" value="${jdbc.username}" />  
        <property name="password" value="${jdbc.password}" />
        <property name="maxActive" value="${jdbc.maxActive}" />
        <property name="maxIdle" value="${jdbc.maxIdle}" />
        <property name="maxWait" value="${jdbc.maxWait}" />
        <property name="defaultAutoCommit" value="${jdbc.defaultAutoCommit}" />
    </bean>  
     
     
    <bean id="sparkDataSource" class="org.apache.commons.dbcp.BasicDataSource"  
         destroy-method="close">  
        <property name="driverClassName" value="org.apache.hadoop.hive.jdbc.HiveDriver" />  
        <property name="url" value="jdbc:hive://192.168.10.124:10000/test_db" />  
        <property name="username" value="hduser001" />  
        <property name="password" value="" />
        <property name="maxActive" value="8" />
        <property name="maxIdle" value="3" />
        <property name="maxWait" value="5" />
    </bean>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值