Connecting to Hive using Beeline

96,988

Solution 1

Accessing HIVE via Beeline:

Starting beeline client

beeline --incremental=true

Note: The command line option “—incremental=true” is optional, but will extend the amount of time that you can remain idle and not have your connection dropped.

Connecting to hive2 server

!connect jdbc:hive2://silver-server-
hive.app.google.com:10000/default

Note: You will be prompted for your username & password. USE user name and Password

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

Setting Your Queue (if any)

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

Note: You need to set a queue in order to run queries.

Setting Your Database

USE google_map_data;

Note: You should be in a database when executing queries.

Reconnecting an inactive session

!reconnect jdbc:hive2:// silver-server-hive.app.google.com:10000/default; 

Quitting beeline client

!quit

Notes:

  • Loading beeline, the URL and providing your username & password in one command:

beeline -u jdbc:hive2:// silver-server-hive.app.google.com:10000\ 
-n <yourname> -p <yourpassword> --incremental=true**

Basic Beeline Queries

Beeline supports a rich set of SQL query functions.

Getting Information About Data

SHOW DATABASES;
USE <database>;

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

Simple limited select statements

SELECT * FROM google_map_city limit 25;

Solution 2

no username and no password.

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

Just press enter. It works for me.

Or try this.

!connect jdbc:hive2://localhost:10000/default "" "" ""

Solution 3

Using beeline to hive server where Kerberos Security is enabled

 beeline -u "jdbc:hive2://<Server Ip>:<port>/sample;principal=<hive user>/<Server Ip>@<relam>;retries=3"

Example

 beeline -u "jdbc:hive2://10.10.10.10:8071/sample;principal=hive/[email protected];retries=3"

Solution 4

You can use blank username and password as @sravan mentioned. This will execute the query as the user that the hiveserver2 process is running as.

However, if you have set the hive.server2.enable.doAs property in your hive-site.xml or put it in hiveconf while running hiveserver2 then you can optionally pass a username and password via the prompt. In this case hive will execute the query as the passed username using the given password. The username here is a system username.

In some scenarios it's required - say you are running the hiveserver2 process as the user 'hive' but you have an external table defined with HDFS path /user/alex/table1, which is owned by the user 'alex' and no other user has read/write access on this location. In this case running the query as 'hive' - by putting empty username and password - will not work since it will not be able to access the directory and throw a permission denied Exception.

Solution 5

It is the user id and password that is used to login to the cluster. Some times it is the edge nodes credentials that you use to login to the server. The best way to avoid this is by using the below command

beeline -u jdbc:hive2://localhost:10000/default

If you are already logged in to some node through putty you won't be prompted with any user id or password.

EDIT

Trick: To avoid typing the whole beeline string repetitively it is good to create an alias in your bash_profile file.

just add the below line in bash profile (with kerberos security suggested by @Harsimranjit Singh Kler) beeline -u jdbc:hive2://<hostname>:10000/default;principal=hive/<hostname>@<realm>;ssl=true; and source the bash_profile (source .bash_profile) and you are done. The next time on just type beeline and it will connect to the hive2 server

Share:
96,988

Related videos on Youtube

Raj
Author by

Raj

Updated on September 10, 2020

Comments

  • Raj
    Raj over 3 years

    I am trying to connect to hive installed in my machine through Beeline client. when I give the 'beeline' command & connect to Hive, the client is asking for user name & password

    !connect jdbc:hive2://localhost:10000/default
    

    I have no idea what is the user name and password I am supposed to give. Do I have to add the credential(user name & password) in some configuration file?

  • Raj
    Raj about 9 years
    Thanks @sravan & Jit B ; looks like I have to run the HiveServer2 to connect from Beeline using host name. Was following a book to the detail...and nowhere they mentioned about this :(. Started HiverServer2 & connected as described . Am able to connect through Beeline now.
  • Raj
    Raj about 9 years
    Adding to my Comments ; although I have used empty user name & password to connect to Hive from Beeline successfully ; queries did not execute properly..believe because of permission related issues. Logged in with the Linux(Ubuntu) uid & pwd of the current user. Now the queries execute successfully