hive的总结


hive总结: 

 问题一:hive的管理方式:

    主要分为三种:

    1.   cli
    2.   web
    3.   jdbc             
1、hive 命令行模式,直接输入/hive/bin/hive,或者输入 hive --service cli
用于linux平台命令行查询,查询语句基本跟mysql查询语句类似
2、 hive web界面的 (端口号9999) 启动方式
hive –service hwi &
       用于通过浏览器来访问hive,感觉没多大用途
3、 hive 远程服务 (端口号10000) 启动方式
hive --service hiveserver &
或者
hive --service hiveserver 10000>/dev/null 2>/dev/null &
    beeline方式连接:beeline -u jdbc:hive2//localhost:10000/default -n root -p 123456
    或者
    java client方式连接
备注:
连接Hive JDBC URL:jdbc:hive://192.168.6.116:10000/default (Hive默认端口:10000 默认数据库名:default)
hive的按照模式

     hive的按照模式分为三种:

    1.   嵌入式(把元数据放入默认的传统数据库derby【用于测试,单连接】),
    2.   本地模式(元数据装在非derby数据库中,数据库与hive装在同一个物理机上),
    3.   远程模式(数据库与hive不在同一个物理机上)

   

hive的本地模式和远程模式有什么区别?

    

 hive本质上是将sql语法解析为mapreduce的过程,既然如此它就必须提交mapreduce任务到resoucemanager,那么它如何提交?就是通过hadoop提供的命令hadoop jar命令来提交。

     本地模式:简单的理解,hive客户端仅供本地使用,直接使用hive命令,不需要指定IP 端口

     远程模式:简单的理解,将hive发布成一个服务进程,通过hive --service hiveserver命令,那么其他hive客户端就可以连接hive的服务进程

                其他客户端可以是jdbc方式、hive提供的beeline命令等,既然要连接远端的hive服务进程,那自然需要指定 IP 端口,这里的IP指的是hive服务进程所在的IP,端口自然也是,也自然与hadoop无关。所以不要混淆

HiveServer2提供了一个新的命令行工具Beeline,它是基于SQLLine CLI的JDBC客户端。

 

Hive cli命令行工具默认显示当前数据库

  

Hive 支持多数据库,Hive 默认的数据库是 default,每个数据库都是一个 hdfs 目录,default 比较特殊,位于 Hive 存储根目录下, 其他新建的数据库都会位于根目录子目录,子目录名为数据库名。

  默认情况下,Hive cli并不会显示当前数据库,但 hive 提供了一个属性: hive.cli.print.current.db=true; 来设置打印当前数据库名称。具体设置方法有2种:

    1、需要用时,即时配置,在cli执行属性设置,这种配置方式,当重新打开cli时,就会生效:

      hive> set hive.cli.print.current.db=true;

    2、一次配置,永久生效,在当前用户的HOME目录下,新建.hiverc文件,把属性设置命令放置到该文件中,每次打开cli时,都会先执行该文件。

    3、效果。

      hive(default)>

 

posted @ 2018-01-10 17:13  陽66  阅读(423)  评论(0编辑  收藏  举报