Hive-ORC文件存储格式】的更多相关文章

一.ORC File文件结构 ORC的全称是(Optimized Row Columnar),ORC文件格式是一种Hadoop生态圈中的列式存储格式,它的产生早在2013年初,最初产生自Apache Hive,用于降低Hadoop数据存储空间和加速Hive查询速度.和Parquet类似,它并不是一个单纯的列式存储格式,仍然是首先根据行组分割整个表,在每一个行组内进行按列存储.ORC文件是自描述的,它的元数据使用Protocol Buffers序列化,并且文件中的数据尽可能的压缩以降低存储空间的消…
一.ORC File文件结构 ORC的全称是(Optimized Row Columnar),ORC文件格式是一种Hadoop生态圈中的列式存储格式,它的产生早在2013年初,最初产生自Apache Hive,用于降低Hadoop数据存储空间和加速Hive查询速度.和Parquet类似,它并不是一个单纯的列式存储格式,仍然是首先根据行组分割整个表,在每一个行组内进行按列存储.ORC文件是自描述的,它的元数据使用Protocol Buffers序列化,并且文件中的数据尽可能的压缩以降低存储空间的消…
1.orc列式存储概念 a)列式存储:orc并不是纯粹的列式存储,也是先基于行对数据表进行分组(行组),然后对行组进行列式存储. b)查询数据的时候不需要扫描全部数据(磁盘IO),只需查询指定列即可. c)orc对每一列提供了常规统计信息(min . max . sum等),加速查询.例如过滤条件f>10,如果当前分片的max小于10,则直接过滤掉这个分片. d)每一列的数据都是同构的,因此压缩效率更高. e)读写orc文件需要压缩.解压,需要消耗额外的cpu资源. 以上是orc文件格式的优劣点…
Hive支持的存储数据的格式主要有:TEXTFILE .SEQUENCEFILE.ORC.PARQUET 一. 列式存储和行式存储 左边为逻辑表,右边第一个为行式存储,第二个为列式存储 1. 行式存储的特点 查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更快. 2.列式存储的特点 因为每个字段的数据聚集存储,在查询只需要少数几个字段的时候,能大大减少读取的数据量:每个字段的数据类型一定是…
摘自:https://blog.csdn.net/xueyao0201/article/details/79103973 引申阅读原理篇: 大数据:Hive - ORC 文件存储格式 大数据:Parquet文件存储格式…
ORC文件格式是从Hive-0.11版本开始的.关于ORC文件格式的官方文档,以及基于官方文档的翻译内容这里就不赘述了,有兴趣的可以仔细研究了解一下.本文接下来根据论文<Major Technical Advancements in Apache Hive>中的内容进行深入的研究. 一.ORC文件格式 ORC的全称是(Optimized Record Columnar),使用ORC文件格式可以提高hive读.写和处理数据的能力.ORC在RCFile的基础上进行了一定的改进,所以与RCFile相…
Hive常见文件存储格式 背景:列式存储和行式存储 首先来看一下一张表的存储格式: 字段A 字段B 字段C A1 B1 C1 A2 B2 C2 A3 B3 C3 A4 B4 C4 A5 B5 C5 行式存储 A1B1C1 A2B2C2 A3B3C3 A4B4C4 A5B5C5 列式存储 A1A2A3A4A5 B1B2B3B4B5 C1C2C3C4C5 优缺点比较: 行式存储 优点: 相关的数据是保存在一起,比较符合面向对象的思维,因为一行数据就是一条记录 这种存储格式比较方便进行INSERT/U…
hive文件存储格式 1.textfile textfile为默认格式   存储方式:行存储   磁盘开销大 数据解析开销大   压缩的text文件 hive无法进行合并和拆分 2.sequencefile 二进制文件,以<key,value>的形式序列化到文件中 存储方式:行存储可分割 压缩一般选择block压缩, 优势是文件和Hadoop api中的mapfile是相互兼容的. 3.rcfile 存储方式:数据按行分块 每块按照列存储 压缩快 快速列存取 读记录尽量涉及到的block最少…
一.存储格式行存储和列存储 二.Hive文件存储格式 三.创建语句和压缩 一.存储格式行存储和列存储 行存储可以理解为一条记录存储一行,通过条件能够查询一整行数据. 列存储,以字段聚集存储,可以理解为相同的字段存储在一起. 二.Hive文件存储格式 TEXTFILE, Hive数据表的默认格式,存储方式:行存储. 可以使用Gzip压缩算法,但压缩后的文件不支持split 在反序列化过程中,必须逐个字符判断是不是分隔符和行结束符,因此反序列化开销会比SequenceFile高几十倍. SEQUEN…
合理使用文件存储格式 建表时,尽量使用 orc.parquet 这些列式存储格式,因为列式存储的表,每一列的数据在物理上是存储在一起的,Hive查询时会只遍历需要列数据,大大减少处理的数据量. 采用合适的文件压缩 Hive最终是转为 MapReduce 程序来执行的,而 MapReduce 的性能瓶颈在于网络 IO 和 磁盘 IO,要解决性能瓶颈,最主要的是减少数据量,对数据进行压缩是个好的方式.压缩虽然是减少了数据量,但是压缩过程要消耗CPU的,但是在Hadoop中, 往往性能瓶颈不在于CPU…
hive 存储格式有很多,但常用的一般是 TextFile.ORC.Parquet 格式,在我们单位最多的也是这三种 hive 默认的文件存储格式是 TextFile. 除 TextFile 外的其他格式的表不能直接从本地文件导入数据,要先导入到 TextFile 格式的表中,再从表中用 insert 导入到其他格式的表中. 一.TextFile TextFile 是行式存储. 建表时无需指定,一般默认这种格式,以这种格式存储的文件,可以直接在 HDFS 上 cat 查看数据. 可以用任意分隔符…
1.概述 在存储业务数据的时候,随着业务的增长,Hive 表存储在 HDFS 的上的数据会随时间的增加而增加,而以 Text 文本格式存储在 HDFS 上,所消耗的容量资源巨大.那么,我们需要有一种方式来减少容量的成本.而在 Hive 中,有一种 ORC 文件格式可以极大的减少存储的容量成本.今天,笔者就为大家分享如何实现流式数据追加到 Hive ORC 表中. 2.内容 2.1 ORC 这里,我们首先需要知道 Hive 的 ORC 是什么.在此之前,Hive 中存在一种 RC 文件,而 ORC…
解析 orc 格式 为 json 格式: ./hive --orcfiledump -d <hdfs-location-of-orc-file> 把解析的 json 写入 到文件 ./hive --orcfiledump -d <hdfs-location-of-orc-file> > myfile.txt 注意 <hdfs-location-of-orc-…
本文在Hive-ORC文件存储格式的理论基础上,进一步分析一个实际的Hive ORC表中的数据存储形式. 一.表结构 库名+表名:fileformat.test_orc 字段 类型 category_id string product_id int brand_id int price double category_id_2 string 在hive中命令desc formatted fileformat.test_orc;的结果如下图: 根据上图中的location信息,查看在HDFS上的文…
一.Parquet的组成 Parquet仅仅是一种存储格式,它是语言.平台无关的,并且不需要和任何一种数据处理框架绑定,目前能够和Parquet适配的组件包括下面这些,可以看出基本上通常使用的查询引擎和计算框架都已适配,并且可以很方便的将其它序列化工具生成的数据转换成Parquet格式. 查询引擎: Hive, Impala, Pig, Presto, Drill, Tajo, HAWQ, IBM Big SQL 计算框架: MapReduce, Spark, Cascading, Crunch…
一.Parquet的组成 Parquet仅仅是一种存储格式,它是语言.平台无关的,并且不需要和任何一种数据处理框架绑定,目前能够和Parquet适配的组件包括下面这些,可以看出基本上通常使用的查询引擎和计算框架都已适配,并且可以很方便的将其它序列化工具生成的数据转换成Parquet格式. 查询引擎: Hive, Impala, Pig, Presto, Drill, Tajo, HAWQ, IBM Big SQL 计算框架: MapReduce, Spark, Cascading, Crunch…
hive当中的数据存储格式: 行式存储:textFile sequenceFile 都是行式存储 列式存储:orc parquet 可以使我们的数据压缩的更小,压缩的更快 数据查询的时候尽量不要用select * 只选取我们需要的字段即可 hive的数据存储格式:用的比较多的一种行式存储 : textfile 用的比较多的列式存储: orc parquet 其中orc底层有自带的一种压缩算法,会对数据进行压缩的比较厉害 实际工作当中,很多时候,列式存储的数据格式都是选择orc或者parquet…
hive的数据存储格式 Hive支持的存储数的格式主要有:TEXTFILE(行式存储) .SEQUENCEFILE(行式存储).ORC(列式存储).PARQUET(列式存储). 1 列式存储和行式存储 上图左边为逻辑表,右边第一个为行式存储,第二个为列式存储. 行存储的特点: 查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需要找到其中一个值,其余的值都在相邻地方,所以此时行存储查询的速度更快. 列存储的特点: 因为每个字段的数据聚集存储,在查询只需要少…
Hive的后端存储是HDFS,它对大文件的处理是非常高效的,如果合理配置文件系统的块大小,NameNode可以支持很大的数据量.但是在数据仓库中,越是上层的表其汇总程度就越高,数据量也就越小.而且这些表通常会按日期进行分区,随着时间的推移,HDFS的文件数目就会逐渐增加.   小文件带来的问题   关于这个问题的阐述可以读一读Cloudera的这篇文章.简单来说,HDFS的文件元信息,包括位置.大小.分块信息等,都是保存在NameNode的内存中的.每个对象大约占用150个字节,因此一千万个文件…
1.背景: 控制上游文件个数每天7000个,每个文件大小小于256M,50亿条+,orc格式.查看每个文件的stripe个数,500个左右,查询命令:hdfs fsck viewfs://hadoop/nn01/warehouse/…….db/……/partition_date=2017-11-11/part-06999 -files -blocks; stripe个数查看命令:hive --orcfiledump viewfs://hadoop/nn01/warehouse/…….db/tab…
Hive orc 格式 + snappy 压缩是比较常用的存储加压缩格式. 今天处理下面的场景时,解决了一些问题,记录下来: flume消费kafka的数据实时写入hdfs,通过创建分区表,t + 1 时,需要看到昨天的数据: flume 通过snappy 将数据写入hdfs,可以通过在fliume.conf中配置以下 保证每天的数据写入同一个目录中: agent.sinks.hdfs_sink.hdfs.path = /user/hive/warehouse/ods.db/kafka_2_hd…
sqoop创建并导入数据到hive orc表 sqoop import \ --connect jdbc:mysql://localhost:3306/spider \ --username root --password 1234qwer \ --table org_ic_track --driver com.mysql.jdbc.Driver \ --create-hcatalog-table \ --hcatalog-database spider_tmp \ --hcatalog-tab…
本文首发于公众号:五分钟学大数据 小文件产生原因 hive 中的小文件肯定是向 hive 表中导入数据时产生,所以先看下向 hive 中导入数据的几种方式 直接向表中插入数据 insert into table A values (1,'zhangsan',88),(2,'lisi',61); 这种方式每次插入时都会产生一个文件,多次插入少量数据就会出现多个小文件,但是这种方式生产环境很少使用,可以说基本没有使用的 通过load方式加载数据 load data local inpath '/ex…
Hive不同文件的读取对照 stored as textfile 直接查看hdfs hadoop fs -text hive> create table test_txt(name string,val string) stored as textfile; stored as sequencefile hadoop fs -text hive> create table test_seq(name string,val string) stored as sequencefile; stor…
Hive中将文件加载到数据库表失败解决办法(hive创建表失败) 遇到的问题: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Got exception: java.net.ConnectException Call From dblab-VirtualBox/127.0.1.1 to localhost:9000 failed o…
hive表的源文件存储格式有几类: 1.TEXTFILE 默认格式,建表时不指定默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理.源文件可以直接通过hadoop fs -cat 查看 2.SEQUENCEFILE 一种Hadoop API提供的二进制文件,使用方便.可分割.可压缩等特点. SEQUENCEFILE将数据以<key,value>的形式序列化到文件中.序列化和反序列化使用Hadoop 的标准的Writable 接口实现.key为空,用value 存放实际的值,…
一.定义 ORC File,它的全名是Optimized Row Columnar (ORC) file,其实就是对RCFile做了一些优化. 据官方文档介绍,这种文件格式可以提供一种高效的方法来存储Hive数据.它的设计目标是来克服Hive其他格式的缺陷. 运用ORC File可以提高Hive的读.写以及处理数据的性能.和RCFile格式相比,ORC File格式有以下优点: (1).每个task只输出单个文件,这样可以减少NameNode的负载: (2).支持各种复杂的数据类型,比如: da…
这篇文章我会从业务中关注的: 1. 存储大小 2.查询效率 3.是否支持表结构变更既数据版本变迁 5.能否避免分隔符问题 6.优势和劣势总结 几方面完整的介绍下hive中数据以下几种数据格式:textfile,parquent,orc,thrift,avro,protubuf 更新中... 预计3月9日完成…
Hive数据类型 基础数据类型: TINYINT,SMALLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,BINARY,TIMESTAMP,DECIMAL,CHAR,VARCHAR,DATE. 复杂数据类型: 包括ARRAY,MAP,STRUCT,UNION.这些复杂类型是由基础类型组成的. ARRAY:ARRAY类型是由一系列同样数据类型元素组成的,这些元素能够通过下标来訪问.比方有一个ARRAY类型的变量fruits.它是由['apple','oran…
在新建Hive表时,可以使用stored as rcfile来指定hive文件的存储方式为RCFile. 一.RCFile文件结构 下图是一个RCFile的文件结构形式. 从上图可以看出: 1)一张表可以包含多个HDFS block. 2)在每个block中,RCFile以行组(row group,类似于ORC中的stripe)为单位存储其中的数据.所谓行组是指在关系型数据块中,若干条记录组成的一个group.对于一张表来说,row group的大小是固定的.通过HDFS的block大小和row…