Red de conocimiento informático - Conocimiento informático - Para Hive en la pseudodistribución de Hadoop, ¿cómo se conectan otros a Hive?

Para Hive en la pseudodistribución de Hadoop, ¿cómo se conectan otros a Hive?

Cuatro puntos a tener en cuenta durante la operación

1. Antes de conectarse, debe ejecutar el programa e importar todos los paquetes en el archivo Hive

2. puede ser relativamente largo. Esto es normal, solo espere pacientemente

3. Si desea que sea un programa en segundo plano, simplemente ingrese hive--service--hiveserver. Al ingresar a hive --service hiveserver, el cuadro de comando permanece en el estado normal. Si desea que se convierta en un programa en segundo plano, simplemente cambie la entrada a hive --service hiveserver &.

4. Lo real. hive --service hiveserver & se puede utilizar como programa en segundo plano. Si desea que sea un programa en segundo plano, simplemente cambie la entrada a hive --service hiveserver &

4. La aplicación real requiere que los metadatos se coloquen en una máquina separada y se importen a MySQL. enfoque común.

En términos generales, operamos Hive a través de cli, que es la consola de Linux. Sin embargo, esto esencialmente almacena metadatos en cada conexión y cada conexión es diferente, por lo que sugiero que este modo sea más adecuado para hacerlo. algunas pruebas, pero no es adecuado para el desarrollo y la aplicación de productos.

1. Entorno de uso

Hadoop 0.20.2, Hive-0.5.0, JDK1.6

2. > 1. En términos generales, nuestras operaciones en Hive se realizan a través de cli, que es la consola de Linux, pero esto es esencialmente una pieza de metadatos almacenados en una conexión, que es diferente entre sí. Sin embargo, esto esencialmente almacena metadatos para cada conexión, que son diferentes entre sí, por lo que sugiero que este modo sea más adecuado para algunas pruebas y no para el desarrollo de productos y aplicaciones.

2. Entonces se genera una conexión JDBC y, por supuesto, existen otros métodos de conexión, como ODBC.

3. Configurar la conexión

1 Modificar hive-site.xml

javax.jdo. .opción.URLConexión

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

jdbc:derby://192.168.0.3:4567/hadoopor;create=true->

Cadena de conexión JDBC para metastore JDBC

<

opción javax.jdo.ConnectionDriverName

org.apache.derby.jdbc.EmbeddedDriver significa usar derby integrado

org.apache.derby.jdbc.ClientDriver--> Indica el uso del modo de servicio de cliente derby

El nombre de la clase de controlador del metastore JDBC

2. Para derby integrado, el nombre del archivo es "debby". Para derby integrado, el archivo derby.jar debe existir en el directorio lib de Hive, y para el modo de servicio al cliente, derby requiere el archivo derbyclient.jar, que debe descargar usted mismo.

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

4. Código de muestra

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)forName(driverName);

} catch (ClassNotFoundException e) {

// TODO automático Bloque de captura generado

e.printStackTrace();

System.exit(1);

}

Connection 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);< / p>

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

/executeQuery("crear tabla " + nombretabla + " (key int, cadena de valor)");

p>

//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 la ruta local del servidor Honeycomb

/ Nota: /tmp/a.txt es un archivo separado por ctrl-A, con dos campos por línea

/**

* Ruta de archivo de cadena = "/tm

p/a.txt"; sql = "cargar datos ruta de entrada local '" + ruta de archivo + "' en table.out.println(" Ejecutando: " + sql); res =

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

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

*/

}

}