Colección de citas famosas - Slogan de motivación - ¿Eclipse puede probar Hive de forma remota?

¿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;?

//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();?

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

?

hadoop.proxyuser.hadoop.groups?< /p >

*?

Permitir?al?superusuario?oozie?suplantar?cualquier?miembro?del?grupo?grupo1?y ?group2 ?

?

?

hadoop.proxyuser.hadoop.hosts?

*?

¿El?superusuario?puede?conectarse?sólo?desde?el?host1?y?el?host2?para?suplantar? a?usuario?

?

Nota: Si no se permite que root se haga pasar por root, las modificaciones anteriores deben cambiarse a

<. p >[html]?ver plano?copiar

?

hadoop.proxyuser.root.groups?

< value>*?

Permitir?al?superusuario?oozie?suplantar?cualquier?miembro?del?grupo?grupo1?y?grupo2

?

?

hadoop.proxyuser.root.hosts?

*?

El?superusuario?puede?conectarse?solo?desde?host1?y?host2?para?suplantar?un?usuario ?

?

Tenga en cuenta que debe reiniciar hadoop después de la modificación e intentar conectarse nuevamente.