Necesidad de tener acceso a la Colmena tablas de metadatos utilizando Jdbc programa.¿Qué hace exactamente el Metastore realidad de la tienda y cómo puedo acceder a él?

He intentado hacer esto:

    sql="show tables";
Statement stmt = con.createStatement();

System.out.println("Running: " + sql);
res = stmt.executeQuery(sql);
while (res.next()) {
System.out.println(res.getString(1));
}

Por lo tanto, obtener la lista de tablas, pero quiero saber qué tabla es la información almacenada en lo que me puede Seleccionar Directamente de la tabla en lugar de despedir a una Colmena de comandos.

También mi Metastore está configurado en PostGreSQL.(si eso ayuda!)
Gracias
Hitz

InformationsquelleAutor user2176576 | 2014-01-15

2 Comentarios

  1. 0

    Metastore, además, las tiendas de la meta-información sobre su Colmena tablas de nombres, tabiques, columnas, los números de seguro social, SerDes, etc.

    Metastore parámetros de conexión se almacenan en hive-site.xml (propiedades relevantes son el nombre javax.jdo.opción.ConnectionURL, javax.jdo.opción.Atributos connectionusername, y javax.jdo.opción.ConnectionPassword)

    Puede conectar a la base de datos Postgres utilizando los parámetros de conexión y ejecutar, dicen, estos comandos:

    -- that'll get you the names of all Hive tables
    SELECT tbl_name FROM TBLS;
    
    -- that'll list all Metastore tables
    \d
    • ok gracias se trate de hacer esto..una pregunta más, estoy tratando de crear una tabla en la colmena el uso de la clave primaria, pero estoy obteniendo el siguiente error siguiente en eclipse:en funcionamiento: CREAR TABLA sample_Hive_Table_2 (PERSON_ID INT PRIMARY KEY, PERSONA VARCHAR(26)) Excepción en el thread «main» java.sql.SQLException: Consulta devuelve distinto de cero código: 40000, causa: ERROR: ParseException línea 1:51 no coinciden entrada PRINCIPAL de’ esperando ) cerca de ‘INT’ en la declaración create table en org.apache.hadoop.la colmena.jdbc.HiveStatement.executeQuery(HiveStatement.java:194) en Hive_Client_17.principal(Hive_Client_17.java:48)
    • La colmena no admite claves primarias.
    • gracias por aclarar mi duda. Pero estoy seguro de que podemos añadir algún tipo de restricciones a las columnas. He intentado añadir una restricción not NULL a ella.. y este es el error que estoy recibiendo:en funcionamiento: CREAR TABLA sample_Hive_Table_2 (PERSON_ID INT not NULL, PERSONA VARCHAR(26)) Excepción en el thread «main» java.sql.SQLException: Consulta devuelve distinto de cero código: 40000, causa: ERROR: ParseException línea 1:50 no coinciden entrada ‘NO’ esperando ) cerca de ‘INT’ en la declaración create table en org.apache.hadoop.la colmena.jdbc.HiveStatement.executeQuery(HiveStatement.java:194) en Hive_Client_17.principal(Hive_Client_17.java:48)
  2. 3

    Puede consultar la metastore DB a través de JDBC.
    E. g: lista de los nombres de tabla y de su ubicación en HDFS:

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.hive.conf.HiveConf;
    import org.apache.hadoop.hive.conf.HiveConf.ConfVars;
    
    public class HiveMetastoreJDBCTest {
    
        public static void main(String[] args) throws Exception {
    
            Connection conn = null;
            try {
                HiveConf conf = new HiveConf();
                conf.addResource(new Path("file:///path/to/hive-site.xml"));
                Class.forName(conf.getVar(ConfVars.METASTORE_CONNECTION_DRIVER));
                conn = DriverManager.getConnection(
                        conf.getVar(ConfVars.METASTORECONNECTURLKEY),
                        conf.getVar(ConfVars.METASTORE_CONNECTION_USER_NAME),
                        conf.getVar(ConfVars.METASTOREPWD));
    
                Statement st = conn.createStatement();
                ResultSet rs = st.executeQuery(
                    "select t.tbl_name, s.location from tbls t " +
                    "join sds s on t.sd_id = s.sd_id");
                while (rs.next()) {
                    System.out.println(rs.getString(1) + " : " + rs.getString(2));
                }
            }
            finally {
                if (conn != null) {
                    conn.close();
                }
            }
    
        }
    }

    No existe una ER diagrama acerca de la metastore, pero no podría ser de hasta a la fecha,
    por lo tanto te sugiero que para ejecutar el metastore secuencia de comandos DDL (Colmena 0.12), en una prueba
    el esquema, y crear la nueva ER diagrama de estas tablas. (E. g con PowerArchitect)

Dejar respuesta

Please enter your comment!
Please enter your name here