这几天自己部署一个测试的Hadoop集群,要测试一些hive数据获取的接口功能。Hive部署好后,使用HiveServer2连接总是出现一些模型奇妙的问题:
问题1:Connection refused
问题2:Connection reset
问题3:一个客户端使用jdbc:hive2连接后,其他客户端就连接不上

解决方法:

1、确保hive-site.xml配置的没有问题,我一开始就是没有配置hiveserver2用户名和密码,一直是使用的服务器的用户名和密码登录的。

<configuration>
    <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
                <description>JDBC connect string for a JDBC metastore</description>
    </property>

    <property>
            <name>javax.jdo.option.ConnectionDriverName</name>
            <value>com.mysql.jdbc.Driver</value>
            <description>Driver class name for a JDBC metastore</description>
    </property>

    <property>
            <name>javax.jdo.option.ConnectionUserName</name>
            <value>root</value>
            <description>username to use against metastore database</description>
    </property>

    <property>
            <name>javax.jdo.option.ConnectionPassword</name>
            <value>myjcyf</value>
            <description>password to use against metastore database</description>
    </property>

    <property>
            <!-- hiveserver2用户名 -->
            <name>beeline.hs2.connection.user</name>
            <value>hive2</value>
    </property>

    <property>
            <!-- hiveserver2密码 -->
            <name>beeline.hs2.connection.password</name>
            <value>hive2</value>
    </property>

    <property>
            <!-- hiveserver2端口 -->
            <name>beeline.hs2.connection.hosts</name>
            <value>localhost:10000</value>
    </property>
</configuration>

2、配置hadoop的core-site.xml,添加如下配置:

<property>
    <name>hadoop.proxyuser.xxx.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.xxx.groups</name>
    <value>*</value>
</property>

其中xxx填写登录hive的用户名,我这里hive-site.xml配置的用户名是hive2,所以我这里就写hive2。

<property>
    <name>hadoop.proxyuser.hive2.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.hive2.groups</name>
    <value>*</value>
</property>
以上两个配置能够解决绝大部分hiveserver2出现的连接登录问题。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐