1、Hive支持的一些命令

退出使用quit或exit离开交互式外壳。

set key = value使用它来设置特定配置变量的值。 这里要注意的一件事是,如果您对变量名拼写错误,cli将不会显示错误。

set这将打印由用户或配置单元覆盖的配置变量列表。

set -v这将打印所有hadoop和hive配置变量。

添加文件[文件] [文件] *将文件添加到资源列表

添加jar jarname

list FILE列出所有添加到分布式缓存的文件

list FILE [file] *检查给定资源是否已经添加到分布式缓存中

! [cmd]从配置单元外壳执行外壳命令

dfs [dfs cmd]从配置单元外壳执行dfs命令

2、语法结构

1、-i 从文件初始化 HQL

2、-e 从命令行执行指定的 HQL

3、-f 执行 HQL 脚本

4、-v 输出执行的 HQL 语句到控制台

5、-p connect to Hive Server on port number

6、-hiveconf x=y(Use this to set hive/hadoop configuration variables)

7、-S:表示以不打印日志的形式执行命名操作

linux命令行下直接运行HQL:hive -e "select * from cookie.cookie1;"

linux命令行下调用写好的HQL文件:hive -f hive.sql

linux命令行下调用写好的Conf文件配置参数  hive -i initive.conf

二、Hive的参数配置方式

1、Hive的参数配置大全

https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties

2、Hive的参数设置方式

开发 Hive 应用时,不可避免地需要设定 Hive 的参数。设定 Hive 的参数可以调优 HQL 代码 的执行效率,或帮助定位问题。然而实践中经常遇到的一个问题是,为什么设定的参数没有 起作用?这通常是错误的设定方式导致的

对于一般参数,有以下三种设定方式

1、配置文件 (全局有效)

Hive 的配置文件包括:

  A. 用户自定义配置文件:$HIVE_CONF_DIR/hive-site.xml

  B. 默认配置文件:$HIVE_CONF_DIR/hive-default.xml

用户自定义配置会覆盖默认配置。

另外,Hive 也会读入 Hadoop 的配置,因为 Hive 是作为 Hadoop 的客户端启动的,Hive 的配 置会覆盖 Hadoop 的配置。

配置文件的设定对本机启动的所有 Hive 进程都有效。

2、命令行参数(对 hive 启动实例有效)

启动 Hive(客户端或 Server 方式)时,可以在命令行添加-hiveconf param=value 来设定参数,例如:

hive    -hiveconf   hiveroot.logger=INFO,console

这一设定对本次启动的 session(对于 server 方式启动,则是所有请求的 session)有效。

3、参数声明 (对 hive 的连接 session 有效)

这一设定的作用域也是 session 级的。

set hive.exec.reducers.bytes.per.reducer= 每个 reduce task 的平均负载数据量 Hive 会估算总数据量,然后用该值除以上述参数值,就能得出需要运行的 reduceTask 数

set hive.exec.reducers.max= 设置 reduce task 数量的上限

set mapreduce.job.reduces= 指定固定的 reduce task 数量

但是,这个参数在必要时<业务逻辑决定只能用一个 reduce task> hive 会忽略,比如在设置 了 set mapreduce.job.reduces = 3,但是 HQL 语句当中使用了 order by 的话,那么就会忽略该参数的设置。

上述三种设定方式的优先级依次递增。即参数声明覆盖命令行参数,命令行参数覆盖配置 文件设定。注意某些系统级的参数,例如 log4j 相关的设定,必须用前两种方式设定,因为 那些参数的读取在 session 建立以前已经完成了。



HIVE的Shell操作的更多相关文章

  1. Hive学习之路 (十八)Hive的Shell操作

    一.Hive的命令行 1.Hive支持的一些命令 Command Description quit Use quit or exit to leave the interactive shell. s ...

  2. Hive(八)Hive的Shell操作与压缩存储

    一.Hive的命令行 1.Hive支持的一些命令 Command Description quit Use quit or exit to leave the interactive shell. s ...

  3. HBASE与hive对比使用以及HBASE常用shell操作。与sqoop的集成

    2.6.与 Hive 的集成2.6.1.HBase 与 Hive 的对比1) Hive(1) 数据仓库Hive 的本质其实就相当于将 HDFS 中已经存储的文件在 Mysql 中做了一个双射关系,以方 ...

  4. Hive配置与操作实践

    Hive配置与操作实践 @(Hadoop) 安装hive hive的安装十分简单,只需要在一台服务器上部署即可. 上传hive安装包,解压缩,将其配入环境变量. mysql的设置 在要作为元数据库的m ...

  5. Hive Cilent数据操作

    Hive运行命令方式有cli,jdbc.hwi.beeline.而我们经常使用的往往是cli shell 操作. cli shell hive -help hive --help 注:命令脚本必须在集 ...

  6. HDFS的基本shell操作,hadoop fs操作命令

    (1)分布式文件系统 随着数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管 ...

  7. Hadoop读书笔记(二)HDFS的shell操作

    Hadoop读书笔记(一)Hadoop介绍:http://blog.csdn.net/caicongyang/article/details/39898629 1.shell操作 1.1全部的HDFS ...

  8. HDFS建筑与shell操作

    一个.hadoop1.1.0演示 hadoop它适合于大容量数据存储和分布式计算平台 hadoop核心由hdfs和mapreduce组成 hdfs这是一个主从结构,仅有一个.是namenode:从节点 ...

  9. Linux shell 操作 postgresql,并设置crontab任务

    Linux shell 操作 postgresql:删除间隔日期的数据-删除指定日期的数据-vacuumdb 清理数据库 -清理日志 -定期执行脚本 *修改pg_hba.conf 设置本地连接无密码, ...

随机推荐

  1. 割点的tarjan算法模板

    基本思路: 朴素的思想是删除每一个点,然后去dfs,这样无疑会爆炸 换一种思路,怎样判断是割点呢,如果是根节点的话毫无疑问只要看子树的数目,但是如果不是根节点呢,不知大牛是怎样想到的 利用两个数组df ...

  2. python3.x filter,map,reduce浅析

    #map用法: #传递函数api进入map去执行,把字符串第一个字母变大写, #其他变小写返回 def format_name(s): s=s.lower() print(s) return s[0] ...

  3. PyTorch 计算机视觉的迁移学习教程代码详解 (TRANSFER LEARNING FOR COMPUTER VISION TUTORIAL )

    PyTorch 原文: https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html 参考文章: https://www ...

  4. typedef 复杂函数指针

    下面是三个变量的声明,我想使用typedef分别给它们定义一个别名,请问该如何做? >1:int *(*a[5])(int, char*); >2:void (*b[10]) (void ...

  5. get和post 两种基本请求方式的区别

    GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...

  6. nucleus学习

    task的TCB结构: typedef struct TC_TCB_STRUCT { /* Standard thread information first. This information is ...

  7. sql server 建表,增删改练习

    use master --drop database Class create database Class on primary( name='Class', filename='D:\SQLTes ...

  8. Linux 下虚拟机——Virtual Box

    下面介绍几款可以在Linux下运行的虚拟机 VMware,VirtualBox, QEMU, Xen.(其中我只用过VirtualBox 和Xen, 我是新手,其他两个没时间折腾,所以下面的资料都几乎 ...

  9. 关于Extjs6.0 controller文件过大,实现模块化分离

    Extjs一般都是一个视图对应着一个controller 一旦碰到视图中逻辑过于繁琐造成controller文件过大不利于维护和修改,所以要通过混入mixins混入功能来实现模块化! 首先创建一个视图 ...

  10. 原来... 用debug如何查看当前标志寄存器的标志位值?

    -r 用这个指令,得到的信息右下角: NV   UP   EI   PL   NZ   NA   PO   NC这些符号代表的就是标志寄存器里常用标志位的值. 这个是符号值对应表: 溢出标志OF(Ov ...