21

我正在尝试通过 Beeline 客户端连接到我的机器中安装的配置单元。当我给出“直线”命令并连接到 Hive 时,客户端要求输入用户名和密码

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

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

4

7 回答 7

19

通过直线访问 HIVE:

启动直线客户端

beeline --incremental=true

注意:命令行选项“--incremental=true”是可选的,但会延长您可以保持空闲且连接不中断的时间。

连接到 hive2 服务器

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

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

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

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

设置你的数据库

USE google_map_data;

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

重新连接非活动会话

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

退出直线客户端

!quit

笔记:

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

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

基本直线查询

Beeline 支持一组丰富的 SQL 查询函数。

获取有关数据的信息

SHOW DATABASES;
USE <database>;

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

简单的有限选择语句

SELECT * FROM google_map_city limit 25;
于 2016-05-21T01:29:11.937 回答
16

没有用户名和密码。

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

只需按回车键。这个对我有用。

或者试试这个。

!connect jdbc:hive2://localhost:10000/default "" "" ""
于 2015-03-18T07:04:33.177 回答
8

使用直线连接启用 Kerberos 安全性的配置单元服务器

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

例子

 beeline -u "jdbc:hive2://10.10.10.10:8071/sample;principal=hive/10.10.10.10@abc.com;retries=3"
于 2018-05-11T11:40:50.090 回答
3

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

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

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

于 2015-03-18T07:36:51.413 回答
3

它是用于登录集群的用户 ID 和密码。有时它是您用来登录服务器的边缘节点凭据。避免这种情况的最佳方法是使用以下命令

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

如果您已经通过 putty 登录到某个节点,则不会提示您输入任何用户 ID 或密码。

编辑

技巧:为了避免重复输入整个直线字符串,最好在 bash_profile 文件中创建一个别名。

只需在 bash 配置文件中添加以下行(使用@Harsimranjit Singh Kler 建议的 kerberos 安全性) beeline -u jdbc:hive2://<hostname>:10000/default;principal=hive/<hostname>@<realm>;ssl=true;并获取 bash_profile ( source .bash_profile) 即可。下次只需键入beeline,它将连接到 hive2 服务器

于 2016-04-05T06:05:16.697 回答
2

hive-site.xml是的,您可以在 tge 文件夹内的文件中设置用户名和密码conf。默认凭据是APP/ mine

如何在hive中获取数据库用户名和密码

于 2018-03-29T08:25:57.593 回答
1

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

**beeline -u jdbc:hive2:// silver-server-hive.app.google.com:10000\ 
-n <yourname> -p <yourpassword> --incremental=true**
于 2016-05-21T01:35:06.327 回答