set hive.mapred.mode=strict;        //设置hive执行模式,默认为nonstrict(非严格模式),这里设置为严格模式

set hiveconf:hive.cli.print.current.db=true;        //显示当前数据库的名称, 默认是false,这里开启

set hive.cli.print.header=true; 查询表数据的时候,显示字段名称,默认是false,这里开启

动态分区属性
set hive.exec.dynamic.partition.mode=nonstrict //查看动态分区模式,默认是strict,也就是必须要有一个静态分区,设置为nonstrict,表示允许所有的分区都是动态的
set hive.exec.dynamic.partition=true //开启动态分区,默认true,也就是设置为strict模式。
set hive.exec.max.dynamic.partitions= //最大动态分区数,默认1000
set hive.exec.max.dynamic.partitions; //一个个动态分区可以创建的最大动态分区个数,默认是1000
set hive.exec.max.created.files; //全局可以创建的最大文件个数,默认100000
hive.exec.max.dynamic.partitions.pernode=; //默认是100 set hive.exec.mode.local.auto=true; //运行时尝试以本地模式运行操作,否则,都会以MapReduce运行,尽量设置为true,默认值false。 set hive.auto.convert.join; //在进行map join操作时,把小表缓存到内存,加快MapReduce速度,默认是true。
set hive.mapjoin.smalltable.filesize; //在进行小表优化到内存时,指定小表的大小,默认是25000000。不支持又外连接和全外连接。 分类合并连接(sort-merge JOIN) 分桶表的优化参数
set hive.optimize.bucketmapjoin; //设置为true,默认是false
set hive.input.format=org.apache.hadoop.hive.ql.io.BucketizedHiveInputFormat; //默认值是 org.apache.hadoop.hive.ql.io.CombineHiveInputFormat
set hive.optimize.bucketmapjoin=true; //设置为true,默认是false
set hive.optimize.bucketmapjoin.sortedmerge=true; //设置为true,默认是false hive中的排序
order by:全局排序,所有的数据通过一个reduce进行排序。
sort by:局部排序,在每一个reduce内部进行排序,asc是默认是升序排序,desc是降序排序。
distribute by:控制map的输出在reduce中是如何划分的。在写sql的时候,需要在sort by语句之前。 hive优化:
使用explain进行分析
、limit调整
set hive.limit.optimize.enable=true; //在使用limit的时候,通常都是全表扫描在返回需要的几行数据,通过这个值,可以对源数据进行抽样,默认是false。
set hive.limit.optimize.limit.file=; //扫描的文件数量,默认是10. 、并行执行
set hive.exec.parallel=true; //开启并行执行。默认是false。 、hive的严格模式
如果 hive.mapred.mode值设置为strict,可以禁止三种类型的查询:
()对于分区表,除非where语句中含有分区字段过滤条件来限制范围,否则是不允许执行的。
()对于使用了order by语句的查询,要求必须使用limit语句。
()限制笛卡尔积的查询。 、
set hive.exec.reducers.bytes.per.reducer; //reduce任务处理的数据量大小,来确定任务个数,默认是256000000字节(244M) 、
set hive.exec.reducers.max=; //最大的reduce个数,默认是1009。
、set hive.mapred.reduce.tasks.speculative.execution=true; //hive的推测执行,默认是true,在大数量而且需要执行长时间的map或者reduce,开启这个将会造成大量的浪费,同时,在hadoop的mapred配置文件也可以开启推测执行。
、虚拟化
(一种用于将要进行划分的输入文件名,另外一种用于文件的块偏移量以及行偏移量。
set hive.exec.rowoffset=true; //默认是false 、开启中间压缩
set hive.exec.compress.intermediate=false; //默认是false
、set hive.exec.compress.output=true;//输出压缩,如果在mapred配置,可以配置mapred.output.compress为true。 序列文件sequence的三种压缩方法:NONE,RECODE,BLOCK,默认是recode(记录基本),通常来说,block级别压缩性能最好而且是可以分割的。 set hive.archive.enabled=true; //开启存档分区
alter table table_name archive partition(clumun);把一个分区表转换成存档表。 Streaming
、恒等变换
使用/bin/cat将传递给它的值直接输出
eg:
create table a(col1 int,col2 int) row format delimited fields terminated by '\t';
insert into a values (,),(,);
select transform (col1,col2) using '/bin/cat' as newA,newB from a; 、改变类型
select transform (col1,col2) using '/bin/cat' as (newA int,newB double) from a;
、投影变换
使用cut命令提取或者映射出特定的字段。
select transform (col1,col2) using '/usr/bin/cut -f1' as newA ,newB from a; set hive.start.cleanup.scratchdir=true; //每次重启hiveserver2服务时清理掉临时目录,默认是false。 安全:
、set hive.warehouse.subdir.inherit.perms=true; //设置表目录应继承仓库或者数据库目录的权限,而不是使用从dfs umask 派生的权限创建,应该设置为true,默认是true,在3.0.0版本删除了此属性。
、set hive.metastore.authorization.storage.checks=true; //如果用户没有权限删除表底层的文件,会阻止用户来删除这样的表,参数默认是false,应该设置为true。
、set hive.metastore.execute.setugi=true; //在安全模式下执行时,hive元数据的存储尽可能的将该值设置为true,默认是true。 权限管理:
、set hive.security.authorization.enabled=true; //开启授权模式。默认是false
、set hive.security.authorization.createtable.owner.grants=ALL; //表创建者的权限,默认是null。 用户、组和角色
给某个(yjt)用户赋予权限
hive> grant create on database default to user yjt; //给用户yjt在default数据库下create权限
给某个组赋予权限:
hive> grant select on table test to group yjt; //给yjt这个组在test表授予select权限。
角色
创建角色:
hive>create role yjt;
hive>grant role yjt to user yjt; //把用户添加到角色。
hive>grant select on table test to role yjt;//授予查询权限给yjt角色 Hive客户端安全
<property>
<name>hive.security.authorization.createtable.user.grants</name>
<value>user1,user2:select;user3:create</value> //在创建表时,给某些用户赋予权限。
</property> <property>
<name>hive.security.authorization.createtable.group.grants</name>
<value>group1,group2:select;group3:create</value> //在创建表时,给某些组赋予权限。
</property>
<property>
<name>hive.security.authorization.createtable.role.grants</name>
<value>role1,role2:select;role3:create</value> //在创建表时,给某些角色赋予权限。
</property> <property>
<name>hive.security.authorization.createtable.owner.grants</name>
<value>select,create</value> //在创建表时,给所有者的权限。
</property> 上述的默认值全都为空。 Hive zookeeper:
<property>
<name>hive.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hive.support.concurrency</name> //开启hive的并发,一个ZooKeeper的实例必须启动并运行了默认配置单元锁管理器,支持读写锁
<value>true</value>
</property>
上述配置好以后,hive会对特定的查询自动启动获取锁,使用show locks查看当前的所有锁。
锁的分类:共享锁和独占锁 显示锁和独占锁
hive> lock table a exclusive(独占的) //创建一个显示锁(独占锁)
hive> unlock table a; //解锁

hive 属性随笔记录的更多相关文章

  1. Hive Tutorial 阅读记录

    Hive Tutorial 目录 Hive Tutorial 1.Concepts 1.1.What Is Hive 1.2.What Hive Is NOT 1.3.Getting Started ...

  2. 关于NSURL的一些属性的记录

    关于NSURL的一些属性的记录 NSLog(@"%@", request.URL.absoluteString); NSLog(@"%@", request.U ...

  3. MapXtreme 随笔记录1

    最近在用MapXtreme做项目,随笔记录备忘. 声明:PubMapPara 静态类,后缀为静态类成员变量 1.加载地图 /// <summary> /// 地图工作空间文件路径 /// ...

  4. Hive学习笔记记录

    典型数据来源: 文件管理服务: FTP文件服务:采用c/s模式,用户可以通过不同的客户端实现文件的上传与下载. NFS文件服务:借助于TCP/IP协议实现网络文件共享 Samba文件服务:是一种在局域 ...

  5. 利用referer属性,记录百度搜索跳转参数

    从百度搜索结果跳转到指定链接前,百度会发送一些参数,可以利用referer属性,在本站访问时记录百度跳转来之前的一些参数. 利用百度跳转前参数,进行一些相关的seo优化. 目前所用到的一些参数说明如下 ...

  6. MySQL学习随笔记录

    安装选custmer自定义安装.默认安装全部在c盘.自定义安装的时候有个advance port选项用来选择安装目录. -----------------------MySQL常见的一些操作命令--- ...

  7. 随笔记录①—利用poi读取Word中的标题和内容

    使用时间:4小时 使用poi方法将word中的内容提取出来,并输出到控制台或者存储到数据库poi.jar下载地址:https://www.apache.org/dyn/closer.lua/poi/r ...

  8. .Net5,C#9 新语法(逻辑和属性模式,记录)

    代码: namespace ConsoleApp1{ class Program { static void Main(string[] args) { //创建list数组,=号右边可省略 List ...

  9. 增量处理属性之记录模式(Record Modes)

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

随机推荐

  1. Mybatis中三种关联关系的实现

    目录 一对一查询 一对多查询 自关联查询: 多对多查询 总结: 三种关联关系:一对多,一对一,多对多 两种查询方式:嵌套查询,连接查询(也可称作:多表单独查询,多表连接查询) 每一种关联关系都可以通过 ...

  2. 【kubernetes】通过rancher2部署k8s

    1. K8S相关介绍 十分钟带你理解Kubernetes核心概念 2. 部署rancher # 更新操作系统软件包 yum update -y # 删除历史容器及数据 docker rm -f $(d ...

  3. [React] 函数定义组件

    函数定义组件的例子 function Welcome(props) { return <h1>Hello, {props.name}</h1>; } 该函数是一个有效的 Rea ...

  4. SSRF绕过IP限制方法总结

    SSRF绕过IP限制方法总结 - Summary of SSRF methods for bypassing IP restrictions -https://www.cnblogs.com/iAmS ...

  5. 关于SpringBoot下template文件夹下html页面访问的一些问题

    springboot整合了springmvc的拦截功能.拦截了所有的请求.默认放行的资源是:resources/static/ 目录下所有静态资源.(不走controller控制器就能直接访问到资源) ...

  6. MQTT协议及EMQ应用

    MQTT是基于TCP/IP协议栈构建的异步通信消息协议,是一种轻量级的发布/订阅信息传输协议.MQTT在时间和空间上,将消息发送者与接受者分离,可以在不可靠的网络环境中进行扩展.适用于设备硬件存储空间 ...

  7. (Linux基础学习)第八章:命令行历史,history

    第1节:命令行历史简介保存你输入的命令历史.可以用它来重复执行命令登录shell时,会读取命令历史文件中记录下的命令~/.bash_history登录进shell后新执行的命令只会记录在缓存中:这些命 ...

  8. (Linux基础学习)第二章:CentOS7.4安装教程

    001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 ...

  9. 基于Java的支持可变QPS的http负载生成器,提供交互界面和RMI接口

    Load generator The load generator is a Java maven project which is implemented using httpclient+thre ...

  10. springboot集成redis 附redis基本操作类

    1 pom.xml添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifac ...