无法连接到beeline hive2

时间:2016-10-25 13:11:49

标签: java hadoop jdbc hive

Hadoop 2.7.3& Hive 2.1.0

我可以像这样连接到直线

!connect jdbc:hive2://

但是当我输入

!connect jdbc:hive2:// hostname:10000 / default org.apache.hive.jdbc.HiveDriver 或!connect jdbc:hive2:// hostname:10000 / default

提供用户名和密码后 它给了我一个错误

错误:无法打开与jdbc的连接:hive2://:10000:java.net.ConnectException:拒绝连接(状态= 08S01,代码= 0)

在CLI中:

which: no hbase in (/user/local/maven/bin:/user/local/maven/bin:/user/local/maven/bin:/user/local/maven/bin:/user/local/maven/bin:/usr/local/rvm/gems/ruby-2.1.2/bin:/usr/local/rvm/gems/ruby-2.1.2@global/bin:/usr/local/rvm/rubies/ruby-2.1.2/bin:/usr/lib64/qt-3.3/bin:/user/local/maven/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rvm/bin:/usr/local/hive/bin:/usr/bin:/usr/local/bin:/bin:/root/bin:/usr/java/jdk1.7.0_60/bin:/usr/local/hadoop/bin/:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:/usr/bin:/usr/local/bin:/usr/java/jdk1.7.0_60/bin:/usr/java/jdk1.7.0_60/bin:/usr/local/hadoop/bin/:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:/usr/bin:/usr/local/bin:/usr/java/jdk1.7.0_60/bin:/usr/java/jdk1.7.0_60/bin:/usr/local/hadoop/bin/:/usr/local/hadoop/bin:/usr/local/hadoop/sbin)
ls: cannot access /usr/local/hive/lib/hive-jdbc-*-standalone.jar: No such file or directory
Beeline version 2.1.0 by Apache Hive
beeline> !connect jdbc:hive2://10.1.1.60:10000/;transportMode=binary
Connecting to jdbc:hive2://10.1.1.60:1000/;transportMode=binary
Enter username for jdbc:hive2://10.1.1.60:10000/;transportMode=binary: APP
Enter password for jdbc:hive2://10.1.1.60:10000/;transportMode=binary: ****
16/10/25 18:07:11 [main]: WARN jdbc.HiveConnection: Failed to connect to 10.1.1.60:10000
Error: Could not open client transport with JDBC Uri: jdbc:hive2://10.1.1.60:1000/;transportMode=binary: java.net.ConnectException: Connection refused (state=08S01,code=0)
beeline> 

有什么建议吗?

我为hive 2设置的hive-site.xml中的属性是: -

    <?xml version="1.0"?>
    <configuration>
    <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:derby:;databaseName=/usr/local/hive/metastore_db;create=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
    </property>

    <property>
    <name>org.apache.derby.jdbc.EmbeddedDriver</name>
    <value>org.apache.derby.jdbc.ClientDriver</value>
    <description>Driver class name for a JDBC metastore</description>
    </property>

    <property>
    <name>hive.server2.thrift.min.worker.threads</name>
    <value>5</value>
    <description>Minimum number of worker threads</description>
    </property>

    <property>
    <name>hive.server2.thrift.max.worker.threads</name>
    <value>500</value>
    <description>Maximum number of worker threads</description>
    </property>

    <property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
    <description>TCP port number to listen on</description>
    </property>

    <property>
    <name>hive.server2.thrift.bind.host</name>
    <value>hadoop-master</value>
    <description>TCP interface to bind to</description>
    </property>


    <property>
    <name>hive.server2.transport.mode</name>
    <value>binary</value>
    <description>Set to http to enable HTTP transport mode</description>
    </property>


    <property>
    <name>hive.server2.thrift.http.port</name>
    <value>10001</value>
    <description>HTTP port number to listen on</description>
    </property>

    <property>
    <name>hive.server2.thrift.http.max.worker.threads</name>
    <value>500</value>
    <description>TCP interface to bind to</description>
    </property>

    <property>
    <name>hive.server2.thrift.http.min.worker.threads</name>
    <value>5</value>
    <description>Minimum worker threads in the server pool</description>
    </property>

    <property>
     <name>hive.server2.authentication</name>
     <value>NOSASL</value>
    </property>

    <property>
    <name>hive.server2.thrift.http.path</name>
    <value>cliservice</value>
    <description>The service endpoint</description>
    </property>


    </configuration>

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

  1. 首先检查您的配置单元服务器是否正在侦听端口10000?

    netstat -an | grep 10000

    如果没有!转到 / tmp / {username} /hive.log ,看看有什么问题!

  2. 如果hive服务器已启动并正在运行,请检查您创建的架构!

    schematool -validate -dbType -verbose

    如果架构有问题,那么您应该再次初始化架构。

  3. 如果一切正常,那么您应该使用以下方式进行连接:

    beeline -u jdbc:hive2:// {IP或servername}:10000

答案 1 :(得分:0)

从错误:

16/10/25 18:07:11 [main]: WARN jdbc.HiveConnection: Failed to connect to 10.1.1.60:1000
Error: Could not open client transport with JDBC Uri: jdbc:hive2://10.1.1.60:1000/;transportMode=binary: java.net.ConnectException: Connection refused (state=08S01,code=0)

看起来你正在攻击端口1000而不是10,000 - 如果连接到端口10000,它是否有效?

如果它仍然不能对端口10000工作,你确定Hiveserver2正在侦听该端口吗?您是否可以在Hiveserver2主机上运行以下命令,并确保在端口上侦听某些内容:

netstat -an | grep 10000