¿Eclipse puede probar Hive de forma remota?
Eclipse puede probar Hive de forma remota
1. Instale el marco hadoop
2. Instale Hive y complete la prueba
3. hadoop
1. Abra el puerto hiveserver2
2. Cree un nuevo proyecto java
3. Pruebe el enlace
4.
5. Algunas ideas
1. Abra el puerto hiveserver2
[html]?view Plain?copy
hive?-- service?hiveserver2?- -hiveconf?hive.server2.thrift.port=10000?
o?
hiveserver2?
#Tenga en cuenta que la interfaz obtendrá atascado después de una apertura exitosa, pero después de iniciar sesión desde otra máquina, puede ver que el puerto está realmente abierto. La razón por la que el cursor parpadea es para mostrar el registro de cada operación en Hive a continuación.
?
2. Cree un nuevo proyecto Java
El paquete jar que debe importarse:
[html]?view Plain?copy
commons- logging-1.1.3.jar?
commons-collections-3.1.jar?
hive-exec-0.13.1.jar?
hive-jdbc -0.13.1.jar?
hive-metastore-0.13.1.jar?
hive-service-0.13.1.jar?
libfb303-0.9.0.jar?
log4j-1.2.16.jar?
slf4j-api-1.7.5.jar?
slf4j-log4j12-1.7 .5.jar?
hadoop-common-2.4.0.jar?
Probar conexión
Probar conexión. código del programa (declaración Hql Reescribir según sea necesario):
[html]?ver plano?copia
importar?java.sql.Connection;?
importar? java.sql.DriverManager ;?
importar?java.sql.ResultSet;?
importar?java.sql.SQLException;?
importar?java. sql.Statement;?
//?import?org.apache.hive.jdbc.HiveDriver;?
¿clase pública?HiveJdbc?{?
private?static?String ?driverName?=?"org.apache.hive.jdbc.HiveDriver";?
public?boolean?run()?{?
¿probar?{ ?
Class.forName(driverName);?
Connection?con?=?null;?
//El número de puerto predeterminado es 10000, que puede modificarse de acuerdo con la situación real;? p>
//Nombre de usuario: hive, contraseña: hive?
con?=?DriverManager.getConnection(?
" jdbc:hive2://10.10.30.64: 10000/default",?"hive",?"hive");?
Declaración?stmt?=?con.createStatement();?
ResultSet?res?=? null;?
String?sql?=?"select?count(*)?from?testthive";?
System.out .println("Ejecutando:?"?+ ?sql);?
res?=?stmt.executeQuery(sql);?
System.out.println("ok" );?
while?(res.next())?{?
System.out.println(res.getString(1));?
}?
return?true;?
}?catch?(¿Excepción?e)?{?
e.printStackTrace();? p>
System.out.println ("error");?
return?false;?
}?
}?
public?static?void? main(String[]?args)?throws?SQLException?{?
HiveJdbc?hiveJdbcClient?=?new?HiveJdbc();?
hiveJdbcClient.run();?
}?
}?
Ejecute el programa en Hadoop.
Resultados operativos:
IV.Problemas y soluciones
Problema:
org.apache.hadoop.ipc.RemoteException(org. apache.hadoop.security.authorize.AuthorizationException): Usuario: hadoop no puede hacerse pasar por Hive
Solución:
Modifique el archivo de configuración de hadoop core-site.xml y agregue lo siguiente :
[html]?ver plano?copia
?
?
Nota: Si no se permite que root se haga pasar por root, las modificaciones anteriores deben cambiarse a
<. p >[html]?ver plano?copiar< value>*?
?
?
Tenga en cuenta que debe reiniciar hadoop después de la modificación e intentar conectarse nuevamente.