J'essaie de me connecter à Hive installé sur ma machine via le client Beeline. lorsque je donne la commande 'beeline' et me connecte à Hive, le client demande le nom d'utilisateur et le mot de passe
!connect jdbc:Hive2://localhost:10000/default
Je n'ai aucune idée du nom d'utilisateur et du mot de passe que je suis censé donner. Dois-je ajouter les informations d'identification (nom d'utilisateur et mot de passe) dans un fichier de configuration?
pas de nom d'utilisateur ni de mot de passe.
!connect jdbc:Hive2://localhost:10000/default
Enter username for jdbc:Hive2://localhost:10000/default: <press Enter>
Enter password for jdbc:Hive2://localhost:10000/default: <press Enter>
Appuyez simplement sur Entrée. Ça marche pour moi.
Ou essayez ceci.
!connect jdbc:Hive2://localhost:10000/default "" "" ""
beeline --incremental=true
Remarque: L'option de ligne de commande "—incremental = true" est facultative, mais prolonge la durée pendant laquelle vous pouvez rester inactif et ne pas interrompre votre connexion.
!connect jdbc:Hive2://silver-server-
Hive.app.google.com:10000/default
Remarque: Vous serez invité à saisir votre nom d'utilisateur et votre mot de passe. UTILISER le nom d'utilisateur et le mot de passe
beeline> !connect jdbc:Hive2:// silver-server-Hive.app.google.com:10000/default
scan complete in 3ms
Connecting to jdbc:Hive2:// silver-server-Hive.app.google.com:10000/default
Enter username for jdbc:Hive2:// silver-server-Hive.app.google.com:10000/default:suman
Enter password for jdbc:Hive2:// silver-server-Hive.app.google.com:10000/default: *********
set mapred.job.queue.name=<your queue name>;
Remarque: Vous devez définir une file d'attente pour exécuter des requêtes.
USE google_map_data;
Remarque: Vous devez être dans une base de données lors de l'exécution des requêtes.
!reconnect jdbc:Hive2:// silver-server-Hive.app.google.com:10000/default;
!quit
Remarques:
beeline -u jdbc:Hive2:// silver-server-Hive.app.google.com:10000\
-n <yourname> -p <yourpassword> --incremental=true**
Beeline prend en charge un riche ensemble de fonctions de requête SQL.
SHOW DATABASES;
USE <database>;
SHOW TABLES;
DESC <table>;
DESC FORMATTED <table>;
SELECT * FROM google_map_city limit 25;
Utilisation de beeline sur le serveur Hive sur lequel Kerberos Security est activé
beeline -u "jdbc:Hive2://<Server Ip>:<port>/sample;principal=<Hive user>/<Server Ip>@<relam>;retries=3"
Exemple
beeline -u "jdbc:Hive2://10.10.10.10:8071/sample;principal=Hive/[email protected];retries=3"
Il s'agit de l'ID utilisateur et du mot de passe utilisés pour se connecter au cluster. Parfois, ce sont les informations d'identification des nœuds Edge que vous utilisez pour vous connecter au serveur. La meilleure façon d'éviter cela est d'utiliser la commande ci-dessous
beeline -u jdbc:Hive2://localhost:10000/default
Si vous êtes déjà connecté à un nœud via PuTTY, aucun identifiant ou mot de passe ne vous sera demandé.
MODIFIER
Astuce: pour éviter de taper toute la chaîne beeline de manière répétitive, il est bon de créer un alias dans votre fichier bash_profile.
ajoutez simplement la ligne ci-dessous dans le profil bash (avec la sécurité kerberos suggérée par @Harsimranjit Singh Kler) beeline -u jdbc:Hive2://<hostname>:10000/default;principal=Hive/<hostname>@<realm>;ssl=true;
et sourcez le bash_profile (source .bash_profile
) et vous avez terminé. La prochaine fois, il suffit de taper beeline
et il se connectera au serveur Hive2
Vous pouvez utiliser un nom d'utilisateur et un mot de passe vides comme @sravan l'a mentionné. Cela exécutera la requête en tant qu'utilisateur sous lequel le processus hiveserver2 s'exécute.
Cependant, si vous avez défini le Hive.server2.enable.doAs
dans votre Hive-site.xml ou placez-le dans hiveconf lors de l'exécution de hiveserver2, vous pouvez éventuellement transmettre un nom d'utilisateur et un mot de passe via l'invite. Dans ce cas, Hive exécutera la requête en tant que nom d'utilisateur transmis à l'aide du mot de passe donné. Le nom d'utilisateur ici est un nom d'utilisateur système.
Dans certains scénarios, cela est requis - supposons que vous exécutez le processus hiveserver2 en tant qu'utilisateur "Hive" mais que vous avez une table externe définie avec le chemin HDFS/user/alex/table1, qui appartient à l'utilisateur "alex" et qu'aucun autre utilisateur ne l'a accès en lecture/écriture sur cet emplacement. Dans ce cas, exécuter la requête en tant que "Hive" - en mettant un nom d'utilisateur et un mot de passe vides - ne fonctionnera pas car il ne pourra pas accéder au répertoire et lever une autorisation refusée.
Oui, vous pouvez définir le nom d'utilisateur et le mot de passe dans le fichier Hive-site.xml
Dans le dossier tge conf
. Les informations d'identification par défaut sont APP
/mine
.
comment obtenir le nom d'utilisateur et le mot de passe de la base de données dans Hive