背景:用idea连接hive时候,配置数据源出了问题
报错信息
Could not open client transport with JDBC Uri: jdbc:hive2://localhost:10000: java.net.SocketException: Connection reset.
解决办法
1、检查host有没有写正确,host也就是你远程启动hive的那个节点的ip地址
现在先附上我的hive-site.xml文件
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<description>Hive使用该目录存储不同map/reduce阶段的计划及阶段的中间输出</description>
<name>hive.exec.scratchdir</name>
<value>hdfs://master:8020/user/hive/tmp</value>
</property>
<property>
<description>元数据库位置</description>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://master:8020/user/hive/warehouse</value>
</property>
<property>
<description>Hive运行时结构化日志文件的位置</description>
<name>hive.querylog.location</name>
<value>hdfs://master:8020/user/hive/log</value>
</property>
<property>
<description>目标元数据库</description>
<name>hive.metastore.uris</name>
<value>thrift://master:9083</value>
</property>
<property>
<description>元数据连接字符串</description>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<description>元数据连接驱动类名</description>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
</property>
<property>
<description>元数据连接时的用户名</description>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<description>元数据连接时的用户密码</description>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<description>允许多线程同时通过JDO访问元数据</description>
<name>javax.jdo.option.Multithreaded</name>
<value>true</value>
</property>
<property>
<description>HiveServer2 Thrift接口的端口号</description>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<description>运行HiveServer2 Thrift接口的主机</description>
<name>hive.server2.thrift.bind.host</name>
<value>localhost</value>
</property>
<property>
<description>禁用Hbase相关功能</description>
<name>hive.server2.enable.doAs</name>
<value>false</value>
</property>
<property>
<description>禁用Hbase相关功能</description>
<name>hive.server2.enable.HiveServer2</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.event.db.notification.api.auth</name>
<value>false</value>
</property>
<property>
<name>hive.server2.active.passive.ha.enable</name>
<value>true</value>
</property>
</configuration>
如果数据源配置选项没错的话,应该就可以了
2、检查hive的服务是否被启动,启动命令如下
hive --service metastore &
输入后会给你这个
接着输入
hive --service hiveserver2 &
输入后会给你这个
3、如果启动了之后还是不行,你再看看你配置信息中10000这个端口有没有被监视
输入
netstat -lnutp
如果出现10000,那就是成功了,估计就是其他问题,例如是防火墙服务没有关闭(注意,主节点关闭了其他节点也要关闭)
这里附上关闭防火墙的命令(所有节点都要关)执行后没有返回信息的
systemctl stop firewalld.service
4、如果第三步没有出现10000或者是显示no hbase,那就在hive-site.xml文件中增加这一段
以上,问题解决。
附上两篇从idea零开始的方法