Hive参数配置

1. Hive 命令行
输入$HIVE_HOME/bin/hive –H 或者 –help可以显示帮助选项:
说明:
1、 -i 初始化HQL文件。
2、 -e从命令行执行指定的HQL
3、 -f 执行HQL脚本
4、 -v 输出执行的HQL语句到控制台
5、 -p <port> connect to Hive Server on port number
6、 -hiveconf x=y Use this to set hive/hadoop configuration variables.
例如:
$HIVE_HOME/bin/hive -e ‘select * from tab1 a‘
$HIVE_HOME/bin/hive -f /home/my/hive-script.sql
$HIVE_HOME/bin/hive -f hdfs://<namenode>:<port>/hive-script.sql
$HIVE_HOME/bin/hive -i /home/my/hive-init.sql
$HIVE_HOME/bin/hive -e ‘select a.col from tab1 a‘
--hiveconf hive.exec.compress.output=true
--hiveconf mapred.reduce.tasks=32
2. Hive 参数配置方式
Hive参数大全:
https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties
开发Hive应用时,不可避免地需要设定Hive的参数。设定Hive的参数可以调优HQL代码的执行效率,或帮助定位问题。然而实践中经常遇到的一个问题是,为什么设定的参数没有起作用?这通常是错误的设定方式导致的。
对于一般参数,有以下三种设定方式:
配置文件 (全局有效)
命令行参数 (对hive启动实例有效)
参数声明 (对hive的连接session有效)

配置文件
用户自定义配置文件:$HIVE_CONF_DIR/hive-site.xml
默认配置文件:$HIVE_CONF_DIR/hive-default.xml
用户自定义配置会覆盖默认配置。
另外,Hive也会读入Hadoop的配置,因为Hive是作为Hadoop的客户端启动的,Hive的配置会覆盖Hadoop的配置。
配置文件的设定对本机启动的所有Hive进程都有效。
命令行参数
启动Hive(客户端或Server方式)时,可以在命令行添加-hiveconf来设定参数 例如:bin/hive -hiveconf hive.root.logger=INFO,console
设定对本次启动的Session(对于Server方式启动,则是所有请求的Sessions)有效。
参数声明
可以在HQL中使用SET关键字设定参数,这一设定的作用域也是session级的。
比如:
set hive.exec.reducers.bytes.per.reducer=<number> 每个reduce task的平均负载数据量
set hive.exec.reducers.max=<number> 设置reduce task数量的上限
set mapreduce.job.reduces=<number> 指定固定的reduce task数量
但是,这个参数在必要时<业务逻辑决定只能用一个reduce task> hive会忽略
上述三种设定方式的优先级依次递增。即参数声明覆盖命令行参数,命令行参数覆盖配置文件设定。注意某些系统级的参数,例如log4j相关的设定,必须用前两种方式设定,因为那些参数的读取在Session建立以前已经完成了。

原文地址:http://blog.51cto.com/13587708/2177576

时间: 2024-11-07 13:47:22

Hive参数配置的相关文章

Hive 教程(五)-参数配置方式总结

hive 配置 hive> set; 查看所有配置hive> set key: 查看某个配置hive> set key value: 设置某个配置 我们可以看到一些 hadoop 的配置,因为 hive 也读入了 hadoop 的配置 hive 的参数配置有 3 种方式 1. 配置文件 默认配置文件:hive-default.xml 自定义配置文件:hive-site.xml 自定义配置文件会覆盖默认配置文件 2. 命令行参数 加上  -hiveconf key=value -hivec

Hive参数层面优化之一控制Map数

1.Map个数的决定因素 通常情况下,作业会通过input文件产生一个或者多个map数: Map数主要的决定因素有: input总的文件个数,input文件的大小和集群中设置的block的大小(在hive中可以通过set dfs.block.size命令查看,该参数不能自定义修改): 文件块数拆分原则:如果文件大于块大小(128M),那么拆分:如果小于,则把该文件当成一个块. 举例一: 假设input目录下有1个文件a,大小为780M,那么hadoop会将该文件a分隔成7个块(6个128m的块和

[Hive] - Hive参数含义详解

hive中参数分为三类,第一种system环境变量信息,是系统环境变量信息:第二种是env环境变量信息,是当前用户环境变量信息:第三种是hive参数变量信息,是由hive-site.xml文件定义的以及当前hive会话定义的环境变量信息.其中第三种hive参数变量信息中又由hadoop hdfs参数(直接是hadoop的).mapreduce参数.metastore元数据存储参数.metastore连接参数以及hive运行参数构成. Hive-0.13.1-cdh5.3.6参数变量信息详解 参数

Hive参数

  1. Map相关参数 set mapred.max.split.size = 256000000 ; //最大分割 set mapred.min.split.size=1 ; //最小分割 set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat; //Map端输入.合并文件之后按照block的大小分割(默认) set hive.input.format=org.apache.hadoop.hive.q

Hive的配置| 架构原理

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能. 本质是:将HQL转化成MapReduce程序 1)Hive处理的数据存储在HDFS 2)Hive分析数据底层的实现是MapReduce 3)执行程序运行在Yarn上 Hive架构原理 Hive安装及配置 (1)把apache-hive-1.2.1-bin.tar.gz上传到linux的/opt/software目录下 (2)解压apache-hive-1.2.1-bin.tar.gz到/o

Hive的配置详解和日常维护

Hive的配置详解和日常维护 一.Hive的参数配置详解 1>.mapred.reduce.tasks  默认为-1.指定Hive作业的reduce task个数,如果保留默认值,则Hive 自己决定应该使用多少个task. 2>.hive.mapred.mode  2.x下的默认值为strict,1.x以及之前的版本默认值为nonstrict.如果 设为strict,Hive将禁止一些危险的查询:分区表未用分区字段筛选: order by语句后未跟limit子句:join后没有on语句从而形

Hive安装配置及基本操作

Hive安装配置及基本操作 1. Hive安装及配置 (1). 上传文件到Hadoop102节点,解压到/opt/moudle (2). 修改/opt/module/hive/conf目录下的hive-env.sh.template名称为hive-env.sh [[email protected] conf]$ cp hive-env.sh.template hive-env.sh (3). 配置hive-env.sh文件 ? (a). 配置HADOOP_HOME路径 : export HADO

hive参数——深入浅出学Hive

第一部分:Hive 参数 hive.exec.max.created.files ?说明:所有hive运行的map与reduce任务可以产生的文件的和 ?默认值:100000 hive.exec.dynamic.partition ?说明:是否为自动分区 ?默认值:false hive.mapred.reduce.tasks.speculative.execution ?说明:是否打开推测执行 ?默认值:true hive.input.format ?说明:Hive默认的input format

线上机器JVM参数配置

记录一下线上机器的JVM参数配置: CATALINA_OPTS="$CATALINA_OPTS -server -Djava.awt.headless=true -Xms2560m [JVM初始分配的堆内存 2.5G]-Xmx2560m [JVM最大可用堆内存 2.5G]-Xss256k [每个线程的堆栈大小]-XX:PermSize=128m [永久代大小]-XX:MaxPermSize=384m [永久代最大值]-XX:NewSize=1024m [新生代初始内存大小]-XX:MaxNewS