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

时间:2015-03-31 06:39:42

标签: apache hadoop jdbc hive hiveql

我正在编写jdbc程序来连接hive数据库。我希望用户名和密码在连接网址中提供。

我不知道如何使用hive QL获取用户名和密码。 有人可以帮帮我吗?

Exception in thread "main" java.sql.SQLNonTransientConnectionException: [DataDirect][Hive JDBC Driver]A value was not specified for a required property: PASSWORD
    at com.ddtek.jdbc.hivebase.ddcp.b(Unknown Source)
    at com.ddtek.jdbc.hivebase.ddcp.a(Unknown Source)
    at com.ddtek.jdbc.hivebase.ddco.b(Unknown Source)
    at com.ddtek.jdbc.hivebase.ddco.a(Unknown Source)
    at com.ddtek.jdbc.hive.HiveImplConnection.b(Unknown Source)
    at com.ddtek.jdbc.hivebase.BaseConnection.b(Unknown Source)
    at com.ddtek.jdbc.hivebase.BaseConnection.k(Unknown Source)
    at com.ddtek.jdbc.hivebase.BaseConnection.b(Unknown Source)
    at com.ddtek.jdbc.hivebase.BaseConnection.a(Unknown Source)
    at com.ddtek.jdbc.hivebase.BaseDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(DriverManager.java:571)
    at java.sql.DriverManager.getConnection(DriverManager.java:215)
    at hivejdbcconnection.HiveJdbcConnection.main(HiveJdbcConnection.java:33)
Java Result: 1

2 个答案:

答案 0 :(得分:7)

要获取配置单元用户名和密码,请转到hive-site.xml并搜索javax.jdo.option.ConnectionUserNamejavax.jdo.option.ConnectionPassword。这些属性的值分别是您的hive用户名和密码。

(用户名和密码的默认值为APPmine,可在hive-default.xml中找到)

如果你在hive-site.xml中没有这样的属性。然后在hive-site.xml

中添加这些行
<property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>hiveuser</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hivepass</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>
</property>
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost:3306/hadoop</value>
</property>

注意:我在mysql中有一个名为hadoop的数据库用于配置单元。这就是为什么javax.jdo.option.ConnectionURL的值是jdbc:mysql://localhost:3306/hadoop

设置或查找用户名和密码后,请按以下步骤使用:

Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/default", "hiveuser", "hivepass");

使用hive database name代替default。希望它有所帮助!!!!

答案 1 :(得分:0)

配置单元默认用户名为配置单元

为hiveserver2使用以下连接字符串

"jdbc:hive2://localhost:10000/default", "hive", ""

hiveserver1 默认为空,hiveserver2也可以使用空用户名和密码。

jdbc:hive://localhost:10000/default

驱动程序名称:org.apache.hadoop.hive.jdbc.HiveDriver

用户名和密码为空

阅读链接Connecting to Hive using Beeline