使用直线连接到Hive

Raj*_*Raj 15 hadoop hive beeline

我正在尝试通过Beeline客户端连接到我的机器上安装的配置单元.当我给'beeline'命令并连接到Hive时,客户端要求输入用户名和密码

!connect jdbc:hive2://localhost:10000/default
Run Code Online (Sandbox Code Playgroud)

我不知道我应该给出的用户名和密码是什么.我是否必须在某些配置文件中添加凭据(用户名和密码)?

Sra*_*ddy 12

没有用户名和密码.

!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>
Run Code Online (Sandbox Code Playgroud)

只需按Enter键即可.这个对我有用.

或试试这个.

!connect jdbc:hive2://localhost:10000/default "" "" ""
Run Code Online (Sandbox Code Playgroud)


小智 12

通过直线访问HIVE:

开始直线客户端

beeline --incremental=true
Run Code Online (Sandbox Code Playgroud)

注意:命令行选项"-incremental = true"是可选的,但会延长您可以保持空闲状态的时间,而不会丢弃连接.

连接到hive2服务器

!connect jdbc:hive2://silver-server-
hive.app.google.com:10000/default
Run Code Online (Sandbox Code Playgroud)

注意:系统将提示您输入用户名和密码.使用用户名和密码

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: *********
Run Code Online (Sandbox Code Playgroud)

设置队列(如果有)

set mapred.job.queue.name=<your queue name>; 
Run Code Online (Sandbox Code Playgroud)

注意:您需要设置队列才能运行查询.

设置数据库

USE google_map_data;
Run Code Online (Sandbox Code Playgroud)

注意:执行查询时,您应该在数据库中.

重新连接非活动会话

!reconnect jdbc:hive2:// silver-server-hive.app.google.com:10000/default; 
Run Code Online (Sandbox Code Playgroud)

退出直线客户端

!quit
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 加载直线,URL并在一个命令中提供您的用户名和密码:

beeline -u jdbc:hive2:// silver-server-hive.app.google.com:10000\ 
-n <yourname> -p <yourpassword> --incremental=true**
Run Code Online (Sandbox Code Playgroud)

基本直线查询

Beeline支持丰富的SQL查询功能.

获取有关数据的信息

SHOW DATABASES;
USE <database>;

SHOW TABLES;
DESC <table>;
DESC FORMATTED <table>;
Run Code Online (Sandbox Code Playgroud)

简单有限的选择语句

SELECT * FROM google_map_city limit 25;
Run Code Online (Sandbox Code Playgroud)


Har*_*ler 7

使用beeline来配置启用了Kerberos安全性的服务器

 beeline -u "jdbc:hive2://<Server Ip>:<port>/sample;principal=<hive user>/<Server Ip>@<relam>;retries=3"
Run Code Online (Sandbox Code Playgroud)

 beeline -u "jdbc:hive2://10.10.10.10:8071/sample;principal=hive/10.10.10.10@abc.com;retries=3"
Run Code Online (Sandbox Code Playgroud)


Jit*_*t B 5

您可以使用@sravan 提到的空白用户名和密码。这将以 hiveserver2 进程运行时的用户身份执行查询。

但是,如果您在 hive-site.xml 中设置了该hive.server2.enable.doAs属性,或者在运行 hiveserver2 时将其放入 hiveconf 中,那么您可以选择通过提示传递用户名和密码。在这种情况下,hive 将使用给定的密码作为传递的用户名执行查询。这里的用户名是系统用户名。

在某些情况下,这是必需的 - 假设您正在以用户“hive”运行 hiveserver2 进程,但您有一个使用 HDFS 路径 /user/alex/table1 定义的外部表,该表由用户“alex”拥有,并且没有其他用户拥有对此位置的读/写访问权限。在这种情况下,通过输入空用户名和密码作为“hive”运行查询将不起作用,因为它将无法访问目录并抛出权限被拒绝的异常。