Colección de citas famosas - Colección de poesías - ¿Cómo se conectan otras personas a Hive en la pseudodistribución de Hadoop?

¿Cómo se conectan otras personas a Hive en la pseudodistribución de Hadoop?

Preste atención a cuatro puntos al operar

1. Importe todos los paquetes en el archivo Hive antes de ejecutar el programa de conexión

2. Esto es normal, solo espere pacientemente

3. Después de ingresar a hive --service hiveserver, es normal que el cuadro de comando se bloquee. Si desea convertirlo en un programa en segundo plano, simplemente cambie la entrada. to hive - service hiveserver & just

4. La aplicación real requiere que los metadatos se coloquen en otra máquina, e importarlos a MySQL es un método más general.

En términos generales, operamos Hive a través de cli, que es la consola de Linux. Sin embargo, esto esencialmente almacena metadatos para cada conexión y no hay diferencia entre ellos, por lo que sugiero este modelo. Es más adecuado para realizar algunas pruebas, pero no para el desarrollo y la aplicación de productos.

1. Entorno

Hadoop versión 0.20.2, versión Hive-0.5.0, JDK1.6

2. p >1. En términos generales, operamos Hive a través de cli, que es la consola de Linux. Sin embargo, esto esencialmente almacena metadatos para cada conexión, que son diferentes entre sí. Por lo tanto, sugiero que este modo sea más adecuado para hacer algunas cosas. pruebas, pero no es adecuado para el desarrollo y aplicación de productos.

2. Por lo tanto, en términos del método de conexión JDBC, existen, por supuesto, otros métodos de conexión, como ODBC.

3. Configuración de conexión

1. Modificar hive-site.xml

javax.jdo. option.ConnectionURL

jdbc:derby:;databaseName=metastore_db;create=true

Representa derby usando el modo de servicio al cliente

Nombre de clase de controlador para un metastore JDBC

2. Para derby integrado, se requiere el archivo derby.jar en el directorio lib de Hive, mientras que para derby en modo de servicio al cliente, el archivo derbyclient.jar es requerido. Este archivo requiere Descárguelo usted mismo.

3. Una vez completada la configuración, ingrese hive --service hiveserver para iniciar el servidor.

4. Código de ejemplo

Es principalmente el código fuente para conectar Hive a través de JDBC.

clase pública HiveJdbcClient {

cadena estática privada driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";

/**

* @param args

* @throws SQLException

*/

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

pruebe {

Class.forName(driverName);

} catch (ClassNotFoundException e) {

// TODO Bloque de captura generado automáticamente

e.printStackTrace();

System.exit(1);

}

Conexión con = DriverManager.getConnection(" jdbc:hive://IP:10000/default", "", "");

Declaración stmt = con.createStatement();

Cadena tableName = "http_test";

// stmt.executeQuery("eliminar tabla " + nombretabla);

// ResultSet res = stmt.executeQuery("crear tabla " + nombretabla + " (clave int, valor string)");

// mostrar tablas

String sql = "mostrar tablas ";

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

ResultSet res = stmt.executeQuery(sql);

if (res.next()) {

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

}

// describir tabla

sql = "describir" + nombreTabla;

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

res = stmt.executeQuery(sql);

mientras (res.next()) {

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

}

// cargar datos en la tabla

// NOTA: la ruta del archivo debe ser local para el servidor de Hive

// NOTA: /tmp/a.txt es un archivo separado mediante Ctrl-A con dos campos por línea

/**

* String filepath = "/tmp/a.txt"; sql = "cargar datos en la ruta de entrada local '" + filepath + "' en la tabla " + tableName;

* System.out.println("Ejecutando: " + sql); res = stmt.executeQuery(sql);

*

* // seleccione * consulta sql = "seleccione * de " + nombre de tabla; System.out.println("Ejecutando: " + sql); res =

* stmt.executeQuery(sql); out.println(String.valueOf(res.getInt(1)) + "\t" +

* res.getString(2)}

* // consulta regular de colmena sql = "seleccione recuento(1) de " + tableName System.out.println("Ejecutando: " + sql); res =

* stmt.executeQuery( sql); mientras (res.next()) { System.out.println(res.getString(1) }

*/

}

}