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. springboot笔记06——使用Thymeleaf模板引擎

    前言 Springboot 推荐使用Thymeleaf做视图层.Thymeleaf支持 html 原型,然后在 html 标签里增加额外的属性来达到模板+数据的展示方式.浏览器解释 html 时会忽略 ...

  2. 兴奋与沮丧并存spider爬取拉勾网

    兴奋的开发除了爬取拉勾网的爬虫信息,可是当调试都成功了的那一刻,我被拉钩封IP了. 下面是spider的主要内容 import reimport scrapy from bs4 import Beau ...

  3. Flutter Animation AnimatedBuilder

    Flutter AnimatedBuilder 创建动画的widget Key key, @required Listenable animation, @required this.builder, ...

  4. 【转载】Asp.net网站安全:去除网站根目录下的备份文件防止代码泄露

    很多网站运维人员在更新网站版本的时候,喜欢直接在网站目录文件夹中直接压缩原来的网站文件,如果这个备份压缩文件没有移动出去,这样是非常不安全的,有些网站攻击者可能会尝试访问你网站下有没有对应名字的压缩备 ...

  5. 【错误集】类ExcelExport是公共的, 应在名为 ExcelExport.java 的文件中声明

    检查类名是否相同 区分大小写,复制代码的时候会连类名也复制了,哈哈哈,总结一下

  6. foundation-cli创建项目出错的解决方案

    使用foundation-cli创建项目时,如果当前的node版本是12的话就会出现如下错误: fs.js:27 const { Math, Object } = primordials; ^ Ref ...

  7. Linux expect实现自动登录

    expect expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令.当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令.但当不能使用密钥验证的时候,我们就没有办法 ...

  8. kafka环境安装及简单使用(单机版)

    一个分布式发布-订阅消息传递系统 特点: 高吞吐量.低延迟 使用场景(举例): 日志收集:用kafka收集各种服务产生的log,通过kafka以统一的接口服务的方式开放给各种consumer,如had ...

  9. linux 内网时间同步配置

    在工作中,内网环境机器的时间会有所差异,在某些测试环境下需要一毫秒都不允许出现误差,但又不想同步外网时间,那我们可以选择一台机器作为时间服务器来供其他机器进行时间同步,例如每隔1分钟同步一次时间. 一 ...

  10. 云计算/云存储---Ceph和Openstack的cinder模块对接方法

    1.创建存储池 在ceph节点中执行如下语句. #ceph osd pool create volumes 2.配置 OPENSTACK 的 CEPH 客户端 在ceph节点两次执行如下语句,两次{y ...