远程连接Hive

Posted 来个煎饼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了远程连接Hive相关的知识,希望对你有一定的参考价值。

0 准备工作

  1. 启动了Hadoop
  2. 启动了Hive元存储数据库

1 开启Hive远程连接服务

# 前台开启
hive --service metastore
hive --service hiveserver2
# 后台开启
hive --service metastore &
hive --service hiveserver2 &

开启时可能会碰到问题:
Error: Could not open client transport with JDBC Uri: jdbc:hive2://hadoop1:10000:
解决:https://www.cnblogs.com/lgjb/p/17294138.html

使用java(eclipse)远程连接hive

hive 版本apache-hive-1.2.1-bin

1.先启动mysql (sevice mysql start),然后启动hive远程服务,输入:./hive --service hiveserver2 即可

  然后命令行会显示等待输入,不用管了这里了,进入第二步吧;
2.引入jar包到项目中

  jar包包括:  apache-hive-1.2.1-bin 里面的lib下的jar包,还有hadoop-2.7.1--》share--》hadoop--》common下的hadoop-common-2.7.1.jar

3.在项目中写入以下代码即可
   Class.forName("org.apache.hive.jdbc.HiveDriver");
   Connection connection = DriverManager.getConnection("jdbc:hive2://192.168.18.130:10000/hive", "root","root");
   连接就创建好了(10000后的hive是hive在mysql中对应的数据库名)

例:

  public static void main(String[] args) {
      try {
   
          Class.forName("org.apache.hive.jdbc.HiveDriver");
          Connection connection = DriverManager.getConnection("jdbc:hive2://192.168.18.130:10000/hive", "root","root");
          System.out.println(connection);
      } catch (ClassNotFoundException e) {
           e.printStackTrace();
      } catch (SQLException e) {
         e.printStackTrace();
      }
   }

输出结果:

log4j:WARN No appenders could be found for logger (org.apache.hive.jdbc.Utils).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
[email protected]

 

连接成功!!

以上是关于远程连接Hive的主要内容,如果未能解决你的问题,请参考以下文章

关于python利用thrift远程连接hive的问题

使用java(eclipse)远程连接hive

远程连接元数据库hive.metastore.uris怎么写

Hive 远程连接的方法

hive连接远程hadoop使用查询语句时,发生错误

本地Spark连接远程集群Hive(Scala/Python)