当前位置:首页 » 服务存储 » hive是如何存储的
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

hive是如何存储的

发布时间: 2022-04-14 08:55:53

Ⅰ Hive元数据库是用来做什么的,存储哪些信息

本质上只是用来存储hive中有哪些数据库,哪些表,表的模式,目录,分区,索引以及命名空间。为数据库创建的目录一般在hive数据仓库目录下。

Ⅱ hive分桶表的储存格式是什么固定的还是可以随意指定

对于每一个表或者是分区,Hive可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分。Hive是针对某一列进行分桶。Hive采用对列值哈希,然后除以桶的个数求余的方式决定该条记录存放在哪个桶中。分桶的好处是可以获得更高的查询处理效率。使取样更高效
hive表数据是在hdfs中储存的并没有固定的储存格式,hive只保存管理表元数据。
桶就是将数据表由一个文件存储分为多个文件存储
分桶语法:
create table t_buck(id string,name string)
clustered by (id) into 4 buckets;
指定了根据id分成4个桶,最好的导入数据方式是insert into table.
要开启模式开关 
set hive.enforce.bucketing = true;
set maprece.job.reces=4;
查询时cluster by指定的字段就是partition时分区的key

Ⅲ hive的几种文件格式

hive文件存储格式包括以下几类:

1、TEXTFILE

2、SEQUENCEFILE

3、RCFILE

4、ORCFILE(0.11以后出现)

其中TEXTFILE为默认格式,建表时不指定默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理;

SEQUENCEFILE,RCFILE,ORCFILE格式的表不能直接从本地文件导入数据,数据要先导入到textfile格式的表中, 然后再从表中用insert导入SequenceFile,RCFile,ORCFile表中。

前提创建环境:

hive 0.8

创建一张testfile_table表,格式为textfile。

create table if not exists testfile_table( site string, url string, pv bigint, label string) row format delimited fields terminated by ' ' stored as textfile;

load data local inpath '/app/weibo.txt' overwrite into table textfile_table;

一、TEXTFILE
默认格式,数据不做压缩,磁盘开销大,数据解析开销大。
可结合Gzip、Bzip2使用(系统自动检查,执行查询时自动解压),但使用这种方式,hive不会对数据进行切分,
从而无法对数据进行并行操作。
示例:

总结:
相比TEXTFILE和SEQUENCEFILE,RCFILE由于列式存储方式,数据加载时性能消耗较大,但是具有较好的压缩比和查询响应。数据仓库的特点是一次写入、多次读取,因此,整体来看,RCFILE相比其余两种格式具有较明显的优势。

Ⅳ 如何通俗地理解Hive的工作原理

Hive是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 sql 查询语言,称为 HQL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapRece 开发者的开发自定义的 mapper 和 recer 来处理内建的 mapper 和 recer 无法完成的复杂的分析工作。
流程大致步骤为:
1. 用户提交查询等任务给Driver。
2. 编译器获得该用户的任务Plan。
3. 编译器Compiler根据用户任务去MetaStore中获取需要的Hive的元数据信息。
4. 编译器Compiler得到元数据信息,对任务进行编译,先将HiveQL转换为抽象语法树,然后将抽象语法树转换成查询块,将查询块转化为逻辑的查询计划,重写逻辑查询计划,将逻辑计划转化为物理的计划(MapRece), 最后选择最佳的策略。
5. 将最终的计划提交给Driver。
6. Driver将计划Plan转交给ExecutionEngine去执行,获取元数据信息,提交给JobTracker或者SourceManager执行该任务,任务会直接读取HDFS中文件进行相应的操作。
7. 获取执行的结果。
8. 取得并返回执行结果。

Ⅳ timestamp类型hive怎么存储的

先明白数据仓库的作用--存储历史数据-进而对数据进行分析,只提供查询-不提供修改

1。Hive 的目标是做成数据仓库,所以它提供了SQL,提供了文件-表的映射关系,又由于Hive基于HDFS,所以不提供Update,因为HDFS本身就不支持。
2.HBase 是NoSQL数据库-所以不要跟传统混淆并谈-NoSQL 提供的是另一种思路来满足高性能的需求,而这些是传统数据库的短板,与传统数据库的理念不一样
3.load data 这个可以自己去查。Hbase要使用自己的API
4.是的。
5.这句话不对。
6.映射就是结构对应-如文件每一行的第一个字段-映射到Hive表的第一个字段
类似Hibernate的语法解析。

Ⅵ 分布式环境下hive的外部表是如何存储的

第一、hive本身是不存储数据的,不论外表、内表,hive的所有数据是存放在hdfs文件系统的。
第二、基于上面,你的问题就转变为hdfs的文件是如何存储的了,hdfs的文件是以块block存储的,每个块分布在多台机器上面,每个块的信息以及存放路径则存放在nameNode节点的元数据里边。

Ⅶ Hive日志默认存储在什么位置

hive.log.dir就是日志存储在目录/tmp/${user.name}(当前用户名)/下
而hive.log就是hive日志文件的名称

Ⅷ hive工作时,数据是存储在mysql还是hdfs

存储的数据都在hdfs,元数据等可能存储于mysql或者deby等

Ⅸ 大数据Hive仓库是什么

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张表,并提供类SQL查询功能;其本质是将HQL转化成MapRece程序。

  • 构建在Hadoop之上的数据仓库:

  • 使用HQL作为查询接口

  • 使用HDFS存储

  • 使用MapRece计算

  • 灵活性和扩展性比较好:支持UDF,自定义存储格式等:

  • 适合离线数据处理

Ⅹ hive能存储数据吗

能,hive的存储位置是HDFS