【问题标题】:Connecting to Hive using Beeline使用直线连接到 Hive
【发布时间】:2015-03-18 02:50:07
【问题描述】:

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

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

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

【问题讨论】:

    标签: hadoop hive beeline


    【解决方案1】:

    通过直线访问 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; 
    

    退出beeline客户端

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

    【讨论】:

      【解决方案2】:

      没有用户名和密码。

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

      【讨论】:

      • 谢谢@sravan & Jit B ;看起来我必须运行 HiveServer2 才能使用主机名从 Beeline 连接。正在关注一本书的细节......他们没有提到这个:(。启动了 HiverServer2 并按照描述连接。现在可以通过直线连接。
      • 添加到我的评论中;虽然我已经使用空的用户名和密码从 Beeline 成功连接到 Hive;由于权限相关的问题,查询没有正确执行。相信。使用当前用户的 Linux(Ubuntu) uid & pwd 登录。现在查询成功执行
      【解决方案3】:

      在启用了 Kerberos 安全性的情况下使用 beeline 配置 hive 服务器

       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"
      

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          【解决方案5】:

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

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

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

          编辑

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

          只需在 bash 配置文件中添加以下行(@Harsimranjit Singh Kler 建议使用 kerberos 安全性) beeline -u jdbc:hive2://&lt;hostname&gt;:10000/default;principal=hive/&lt;hostname&gt;@&lt;realm&gt;;ssl=true; 和 获取 bash_profile (source .bash_profile) 就完成了。 下次只需输入beeline,它就会连接到hive2服务器

          【讨论】:

            【解决方案6】:

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

            how to get database username and password in hive

            【讨论】:

              【解决方案7】:

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

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

              【讨论】:

                猜你喜欢
                • 2016-02-09
                • 2020-07-08
                • 2019-11-02
                • 2019-06-09
                • 1970-01-01
                • 2019-01-06
                • 2014-09-29
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多