2015-03-31 34 views
4

正在编写jdbc程序来连接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 
+0

如果我使用用户名“配置单元”和密码“”,就会出现以上错误。 – PMR 2015-03-31 07:06:13

+0

检查hive-site.xml中的详细信息。它有用户名和密码的详细信息 – 2015-03-31 07:31:55

回答

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

+0

什么是用户的配置单元的密码?@ sravan' – PMR 2015-03-31 06:50:53

+0

密码只是像这样离开“” – 2015-03-31 06:53:32

+0

没有使用默认的数据库。我创建了我自己的数据库。可以告诉我如何获得我的数据库的用户名和密码? @saravan – PMR 2015-03-31 06:54:13

5

要获得蜂巢用户名和密码,进入hive-site.xml和搜索javax.jdo.option.ConnectionUserNamejavax.jdo.option.ConnectionPassword。这些属性的值分别是您的配置单元用户名和密码。

(默认值是用户名和密码APPmine可以在hive-default.xml找到)

在情况下,如果你没有在蜂房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。希望能帮助到你!!!!

+0

它不适合我:(:(@Rajesh – PMR 2015-03-31 11:43:23

+0

你是否使用MySQL作为jdbc连接?如果是,那么你必须在MySQL中创建一个数据库你是否尝试在更改配置后重新启动hadoop进程 – 2015-03-31 11:53:49

+0

没有使用Mysql进行jdbc连接直接连接到hive数据库并在表中打印数据@rajesh – PMR 2015-04-01 05:42:35

相关问题