Hive 常用 Shell命令

Hive shell命令

详情见官网API

001、启动

* 基本命令
    /bin/hive {config}   
        --auxpath : 添加第三方的jar包,作用未知..
        --config : 指定hive启动的配置文件,默认读的是 ../conf/hive-site.xml
        --service serviceName <service parameters>: 指定hive启动哪种服务。
            # serviceName:
                * cli:命令行界面 {默认选项}
                * hiveserve{2} {-p xx}:这个可以让Hive以提供Trift服务的服务器形式来运行
                * metastore:使用这个服务,可以让metastore作为一个单独的进程运行
               
                * 最常用的是第一个,起次是第三个,然后是第二个,剩下还有几个没用过。
        --help :查看帮助
        --debug :debug模式启动。
        
        # 这两个会在hive-env.sh里面指定好。
        HADOOP_HOME or HADOOP_PREFIX : Hadoop install directory
        HIVE_OPT : Hive options
    
* 骚命令
    hive -e 'hql语句':
        从命令行执行指定的HQL语句,不需要分号结束。
        可以额外加上:
            -S:只显示结果
            -v:额外打印出执行的hql语句。
    hive -f 'hql脚本':
        直接执行某段hql语句输出到控制台。
    hive --hiveconf <key=value>:
        启动hive的时候,使用给定属性的值
    hive --database <basename>:
        进入命令行界面,但是直接进入<basename>数据库。
    set hive.cli.print.current.db=true;
        显示当前所在的数据库

002、Shell语句


  • 交互式命令
HIve Cli里面的命令,必须要以`;`结尾,并且在回车以后,上一行命令则无法更改。

退出Cli

quit / exit;

查看修改某个变量

set [-v] | <key> | <key>=<value>
    -v : 打印出所有HIve和Hadoop的配置参数
    key: 打印出指定key的配置参数
    key=value:设置Hive运行时配置参数,优先级最高,相同key,后面的设置会覆盖前面的设置

重置参数

# 初始化为hive-site.xml中的配置。
reset

创建函数

详情见hive操作:函数相关

DistributeCache(Hadoop的分布式缓存)相关操作

add File[S]/Jar[S]/Archive[S] <filepath> * :
向 DistributeCache 中添加一个或过个文件、jar包、或者归档,添加之后,可以在Map和Reduce task中使用。比如,自定义一个udf函数,打成jar包,在创建函数之前,必须使用add jar命令,将该jar包添加,否则会报错找不到类。

list File[S]/Jar[S]/Archive[S] :
    列出当前DistributeCache中的文件、jar包或者归档。

delete File[S]/Jar[S]/Archive[S] <filepath>* :
    从DistributeCache中删除文件。

在Hive cli里面执行脚本文件

source 'hql脚本';
相当于在命令行中输入:hive -f 'hql脚本';

在HIve Cli里面执行linux命令

!<command>
ex:
    hive>!pwd;

在HIVE Cli里面执行hdsf命令

dfs <dfs command>
ex:
    hive>dfs -ls /tmp;

# 在hive shell中操作hdfs更快,因为hdfs dfs的用法每次操作都需要重新启动一个jvm实例,而Hive在同一个进程执行这些操作。

  • 保存hive数据
# 保存某一条语句的结果:
    //分隔符和hive数据文件的分隔符相同
    hive -S -e '语句' > test.txt     

# 保存整表数据
    hadoop fs -get  <hdfsPath> <localPath>


  • Hive集群之间到数据交互
# 使用Export命令会导出Hive表的数据表数据以及数据表对应的元数据

    --导出命令
    EXPORT TABLE test TO '/tmp/test_export'
    
    --dfs命令查看
    hdfs dfs -ls /tmp/test_export
    
    --结果显示
    /hive/test_export/_metadata
    /hive/test_export/data

# 使用Import命令将导出的数据重新导入到hive中(必须将现导入的表重命名)

    --导入到内部表的命令
    IMPORT TABLE data_managed FROM '/tmp/test_export'
    
    --导入到外部表的命令
    Import External Table data_external From '/tmp/test_export' Location '/tmp/external/data'
    
    --验证是否是外部表
    desc formatted data_external


  • HIve JDBC链接Java API
1.开启 hiveserver 服务:
    $ hive –service hiveserver2 50000500002.建立与 Hive 的连接:

    Class.forName(“org.apache.hadoop.hive.jdbc.HiveDriver”);  
  // 默认只能连接到 default 数据库,通过上面的两行代码建立连接后,其他的操作与传统数据库无太大差别。
    Connection con= DriverManager.getConnection(“jdbc:hive://ip:50000/default,”hive”,”hadoop”) 

  • 其他一些操作
# 注释操作
    -- 什么都可以。。

# 查看最近100条历史纪录
    
    vi $HIVE_HOME/.hivehistory
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值