web-dev-qa-db-fra.com

Se connecter à Hive à l'aide de Beeline

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?

14
Raj

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 "" "" ""
12
Sravan K Reddy

Accès à Hive via Beeline:

Démarrage du client beeline

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.

Connexion au serveur Hive2

!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: *********

Définition de votre file d'attente (le cas échéant)

set mapred.job.queue.name=<your queue name>; 

Remarque: Vous devez définir une file d'attente pour exécuter des requêtes.

Configuration de votre base de données

USE google_map_data;

Remarque: Vous devez être dans une base de données lors de l'exécution des requêtes.

Reconnecter une session inactive

!reconnect jdbc:Hive2:// silver-server-Hive.app.google.com:10000/default; 

Quitter le client beeline

!quit

Remarques:

  • Charger beeline, l'URL et fournir votre nom d'utilisateur et votre mot de passe en une seule commande:
beeline -u jdbc:Hive2:// silver-server-Hive.app.google.com:10000\ 
-n <yourname> -p <yourpassword> --incremental=true**

Requêtes Beeline de base

Beeline prend en charge un riche ensemble de fonctions de requête SQL.

Obtention d'informations sur les données

SHOW DATABASES;
USE <database>;

SHOW TABLES;
DESC <table>;
DESC FORMATTED <table>;

Instructions de sélection simples et limitées

SELECT * FROM google_map_city limit 25;
12
Suman

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

3

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.

3
Jit B

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

1
pras v