`
乡里伢崽
  • 浏览: 111919 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

derby 的配置及jdbc连接

    博客分类:
  • hive
 
阅读更多
hive-default.xml


<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:derby:;databaseName=metastore_db;create=true</value> 表示使用嵌入式的derby,create为true表示自动创建数据库,数据库名为metastore_db
  <!--<value>jdbc:derby://192.168.0.3:4567/hadoopor;create=true</value>--> 表示使用客服模式的derby,hadoopor为数据库名,192.168.0.3为derby服务端的IP地址,而4567为服务端的端口号
  <description>JDBC connect string for a JDBC metastore</description>
</property>

<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>org.apache.derby.jdbc.EmbeddedDriver</value> 表示使用嵌入式的derby
  <!--<value>org.apache.derby.jdbc.ClientDriver</value>--> 表示使用客服模式的derby
  <description>Driver class name for a JDBC metastore</description>
</property>


对于嵌入式的derby要求在hive的lib目录下有文件derby.jar,而对于客服模式的derby要求有derbyclient.jar文件
如果是derby坏了,就得把metastore_db删除就好了,不过以前的数据也没了,我觉得测试的时候用derby还行,如果正式上线的话就不要启动嵌入式的了,直接启动并连接线上服务器就ok了。不然metastore_db一加锁,启动了hive --service hiveserver就不能启动hive 启动了hive就不能启动hive --service hiveserver。

说明:
测试的时候使用嵌入式还可以,正式环境一定要用服务端模式,否则出了问题就没法恢复了。
可以选择任何你熟悉的语言类作为JDBC连接:
import java.sql.SQLException;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.Statement;

import java.sql.DriverManager;



public class HiveJdbcClient {

  private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";



  /**

* @param args

* @throws SQLException

   */

  public static void main(String[] args) throws SQLException {

      try {

      Class.forName(driverName);

    } catch (ClassNotFoundException e) {

      // TODO Auto-generated catch block

      e.printStackTrace();

      System.exit(1);

    }

    Connection con = DriverManager.getConnection("jdbc:hive://localhost:10000/default", "", "");

    Statement stmt = con.createStatement();

    String tableName = "testHiveDriverTable";

    stmt.executeQuery("drop table " + tableName);

    ResultSet res = stmt.executeQuery("create table " + tableName + " (key int, value string)");

    // show tables

    String sql = "show tables '" + tableName + "'";

    System.out.println("Running: " + sql);

    res = stmt.executeQuery(sql);

    if (res.next()) {

      System.out.println(res.getString(1));

    }

    // describe table

    sql = "describe " + tableName;

    System.out.println("Running: " + sql);

    res = stmt.executeQuery(sql);

    while (res.next()) {

      System.out.println(res.getString(1) + "\t" + res.getString(2));

    }



    // load data into table

    // NOTE: filepath has to be local to the hive server

    // NOTE: /tmp/a.txt is a ctrl-A separated file with two fields per line

    String filepath = "/tmp/a.txt";

    sql = "load data local inpath '" + filepath + "' into table " + tableName;

    System.out.println("Running: " + sql);

    res = stmt.executeQuery(sql);



    // select * query

    sql = "select * from " + tableName;

    System.out.println("Running: " + sql);

    res = stmt.executeQuery(sql);

    while (res.next()) {

      System.out.println(String.valueOf(res.getInt(1)) + "\t" + res.getString(2));

    }



    // regular hive query

    sql = "select count(1) from " + tableName;

    System.out.println("Running: " + sql);

    res = stmt.executeQuery(sql);

    while (res.next()) {

      System.out.println(res.getString(1));

    }

  }

}

接下来做的工作即是运行了:
# Then on the command-line
$ javac HiveJdbcClient.java

# To run the program in standalone mode, we need the following jars in the classpath
# from hive/build/dist/lib
#     hive_exec.jar
#     hive_jdbc.jar
#     hive_metastore.jar
#     hive_service.jar
#     libfb303.jar
#     log4j-1.2.15.jar
#
# from hadoop/build
#     hadoop-*-core.jar
#
# To run the program in embedded mode, we need the following additional jars in the classpath
# from hive/build/dist/lib
#     antlr-runtime-3.0.1.jar
#     derby.jar
#     jdo2-api-2.1.jar
#     jpox-core-1.2.2.jar
#     jpox-rdbms-1.2.2.jar
#
# as well as hive/build/dist/conf

$ java -cp $CLASSPATH HiveJdbcClient

# Alternatively, you can run the following bash script, which will seed the data file
# and build your classpath before invoking the client.

#!/bin/bash
HADOOP_HOME=/your/path/to/hadoop
HIVE_HOME=/your/path/to/hive

echo -e '1\x01foo' > /tmp/a.txt
echo -e '2\x01bar' >> /tmp/a.txt

HADOOP_CORE={{ls $HADOOP_HOME/hadoop-*-core.jar}}
CLASSPATH=.:$HADOOP_CORE:$HIVE_HOME/conf

for i in ${HIVE_HOME}/lib/*.jar ; do
    CLASSPATH=$CLASSPATH:$i
done

java -cp $CLASSPATH HiveJdbcClient




http://www.iteye.com/topic/1113849
分享到:
评论

相关推荐

    连接derby数据库方法—附图

    其中,`jdbc:derby`是Derby数据库的连接协议,`localhost`是数据库服务器的主机名,`1527`是数据库服务器的端口号,`mydatabase`是数据库名称。 2. 使用Tomcat连接池 使用Tomcat连接池可以实现数据库连接的池化,...

    Weblogic JDBC 数据源配置和详细参数说明

    Weblogic JDBC 数据源配置和详细参数说明 一、JDBC 概述 ...本文详细介绍了 Weblogic 8.1 中 JDBC 数据源的配置和详细参数说明,包括连接池、数据源、JDBC 驱动程序设置、配置 JDBC 连接池等内容。

    oracle jdbc mysql 等数据连接所有的配置

    #### Derby JDBC连接配置 Derby 是一款由 Apache 基金会维护的开源数据库。 ```java Class.forName("org.apache.derby.jdbc.ClientDriver"); String url = "jdbc:derby://localhost:1527/sampledb;create=true"; ...

    各种数据库的jdbc(mysql,orcal ,derby,hive,postgresql,monetdb-jdbc)

    下面将详细介绍标题和描述中提及的几种数据库的JDBC连接及特性。 1. **MySQL JDBC**: MySQL是一款开源、免费的关系型数据库管理系统,广泛应用于Web应用。使用MySQL JDBC驱动(也称为Connector/J),可以方便地在...

    jdbc接连数据库:oracle/derby/mysql

    标题中的“jdbc连接数据库:oracle/derby/mysql”是指使用Java Database Connectivity (JDBC) API来与三种不同的数据库系统——Oracle、Apache Derby和MySQL进行交互。JDBC是Java平台的标准接口,它允许Java应用程序...

    derby安装配置与使用

    以下是对Derby安装配置与使用的详细介绍: 1. **下载与安装**: 访问Apache Derby的官方网站(http://db.apache.org/derby/derby_downloads.html)下载最新版本的Derby。例如,你可以选择版本10.10.2.0。下载完成...

    myeclipse本地方式连接Derby

    在MyEclipse中连接Derby数据库前,首先需要确保已正确安装并配置了Derby的JDBC驱动。这通常涉及将Derby的jar文件添加至项目的构建路径中,确保MyEclipse能够识别并使用该驱动。 #### 2. 创建数据库 在本地方式下...

    JdbcDerby:通过jdbc与derby连接

    在使用JDBC连接Derby之前,需要创建一个数据库。可以使用`ij`工具,这是Derby提供的一个命令行接口,用于执行SQL语句。例如,创建一个名为`myDatabase`的数据库: ```bash ij&gt; CREATE DATABASE '/path/to/...

    JDBC连接数据库大全

    #### 三、常见数据库的JDBC连接配置 下面将详细介绍如何使用JDBC连接几种常见的数据库: ##### 1. MySQL ```java Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:...

    derby辅助工具SQuirreL SQL Client的使用

    - **配置JDBC驱动**:在SQuirreL中添加Derby的JDBC驱动,通常位于derby/lib目录下的derbyclient.jar。 - **创建连接**:在Aliases选项卡中新建一个连接,输入Derby服务器的URL、用户名和密码。 - **连接数据库**...

    derby embedded模式设置用户名和密码

    前面讲的配置 derby.properties 文件是为 Derby 嵌入式数据库配置系统设置。这种方法可以实现对某一个数据库的用户验证。 1. 连接到数据库,运行以下语句: CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby....

    derby数据库

    在实际使用中,开发人员可以通过JDBC(Java Database Connectivity)接口与Derby进行交互,进行数据的存取操作。同时,Derby也提供了命令行工具,如ij,用于执行SQL语句和管理数据库。 在"db-derby-10.13.1.1-bin...

    myeclipse的derby插件

    这些功能可能包括驱动程序、JDBC连接管理、SQL解析器、事务处理等。安装这个插件后,MyEclipse将能够识别Derby数据库,支持创建新的Derby数据库连接,执行SQL语句,甚至进行数据库的导入和导出操作。 `derby_ui_...

    内嵌数据库derby 10.6.2开发文档

    - **连接URL格式**:解析了Derby数据库连接URL的结构和参数,帮助开发者正确配置数据库连接。 - **Derby系统架构**:概述了Derby的系统组件和架构设计,为理解其工作原理提供了基础。 #### 数据库操作与管理 - **...

    java derby数据库详解

    接着,使用`DriverManager.getConnection()`建立连接,传入数据库URL(如`jdbc:derby:helloDB;create=true`,这里的`helloDB`是数据库名称,`create=true`表示如果数据库不存在则创建)以及连接属性,例如用户和密码...

    derby开发手册

    - **Derby JDBC数据库连接URL:** 描述了如何构建正确的URL来连接Derby数据库。 #### 七、Derby系统 - **Derby数据库:** 详细讨论了Derby数据库的创建、管理以及各种操作。 - **连接到数据库:** 阐述了如何建立...

    Derby安装,创建数据库,在JAVA程序中使用Derby

    然后,我们需要配置环境变量,建立`DERBY_HOME`环境变量,值为`E:\Java\Joy\derby\db-derby-10.5.3.0-bin\db-derby-10.5.3.0-bin`。在`Path`中添加 `%DERBY_HOME%\bin`,在`CLASSPATH`中添加`%DERBY_HOME%\lib\derby...

    derby使用

    - 连接到数据库或创建新数据库:使用命令`connect jdbc:derby:&lt;数据库名&gt;;create=true;`连接到现有数据库或创建新的数据库。 - 执行SQL语句:创建表、插入数据、查询等操作。 示例: - 创建表:`CREATE TABLE ...

Global site tag (gtag.js) - Google Analytics