Hive常见属性配置

本文介绍了Hive原始数据仓库的默认配置路径,并展示了如何查看数据仓库位置。此外,详细阐述了在default数据库下创建的表的默认存储位置。同时,提供了在hive-site.xml中设置显示当前数据库及查询表头信息的方法。最后,讨论了Hive参数配置的三种方式及其优先级,包括通过配置文件、命令行参数和会话内声明,并举例说明了它们的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 hive原始数据仓库的配置

1.1hive原始数据仓库配置默认在(/user/hive/warehouse下)hive/conf/hive-default.xml.templa

1.2查看数据仓库位置

2.hive在default数据库下或者未指定数据库下创建的表默认会在/user/hive/warehouse中

3.实现显示当前数据库,以及查询表的头信息配置。在hive-site.xml文件中添加如下配置信息。

<property>
 <name>hive.cli.print.header</name>
 <value>true</value>
</property>

<property>
 <name>hive.cli.print.current.db</name>
 <value>true</value>
</property>

4.参数配置方式

1)查看当前所有的配置信息

hive>set;

2)参数的配置三种方式及优先级
    (1)配置文件方式

默认配置文件:hive-default.xml 

用户自定义配置文件:hive-site.xml

注意:用户自定义配置会覆盖默认配置。另外,Hive也会读入Hadoop的配置,因为Hive是作为Hadoop的客户端启动的,Hive的配置会覆盖Hadoop的配置。配置文件的设定对本机启动的所有Hive进程都有效。

    (2)命令行参数方式

启动Hive时,可以在命令行添加-hiveconf param=value来设定参数。

例如:

[atguigu@hadoop103 hive]$ bin/hive -hiveconf mapred.reduce.tasks=10;

注意:仅对本次hive启动有效

查看参数设置:

hive (default)> set mapred.reduce.tasks;

    (3)参数声明方式
        hive (default)> set mapred.reduce.tasks=100;
    上述三种设定方式的优先级依次递增。即配置文件<命令行参数<参数声明。注意某些系统级的参数,例如log4j相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了。

 

 

 

 

 

<think>好的,我现在需要回答用户关于Hive属性的问题。首先,我得回忆一下Hive的基本知识,特别是表属性的部分。Hive是建立在Hadoop上的数据仓库工具,用于处理结构化数据,所以表结构的设计和属性设置很重要。 用户问的是Hive属性有哪些。可能指的是在创建表时可以指定的各种属性,比如存储格式、分区、分桶等。可能需要分几个大类来介绍。先整理一下常见的表属性类别。 首先,存储格式,比如TEXTFILE、ORC、PARQUET这些,不同的格式有不同的优缺点,比如ORC适合压缩和查询性能。然后是分区和分桶,这是Hive优化查询的重要机制。分区表可以将数据按某个字段分成不同的目录,分桶则是将数据分成更小的文件,基于哈希。 接下来是表的其他属性,比如行格式(行分隔符、字段分隔符)、表注释、外部表和内部表的区别。外部表的数据存储在HDFS上,删除表时不会删除数据,而内部表则会。还有表的生命周期属性,比如是否临时表,或者设置表的保留时间。 另外,表的属性还包括SERDE(序列化与反序列化),用于处理数据读写时的格式。比如使用OpenCSVSerde来处理CSV文件。还有表的压缩属性,比如设置压缩算法来减少存储空间。 可能还需要提到表的元数据信息,比如存储在Hive Metastore中的信息,比如表的创建者、创建时间、最后访问时间等。以及表的保护属性,比如权限设置,访问控制等,但这可能更多是HDFS层面的。 用户可能还想了解如何查看表的属性,比如使用DESCRIBE EXTENDED table_name命令,或者通过Hive Metastore的元数据表查询。 需要确保分类清晰,每个属性类别下有具体的例子和说明。例如,在存储格式里,要说明各个格式的特点和使用场景。在分区和分桶部分,要解释它们的作用和如何设置。 还需要注意一些高级属性,比如事务性表的属性(ACID支持),这在Hive 0.14之后支持,需要配置特定的存储格式(如ORC)和表属性(如'transactional'='true')。 可能容易遗漏的点包括:表的输入输出格式(INPUTFORMAT和OUTPUTFORMAT),这些在创建表时指定,影响数据如何读写。还有存储位置属性(LOCATION),指定表数据在HDFS中的路径。 总结一下,Hive属性大致可以分为: 1. 存储相关属性(格式、位置、压缩) 2. 结构优化属性(分区、分桶) 3. 元数据属性(注释、创建信息) 4. 序列化与反序列化(SERDE) 5. 表类型(外部表、内部表、临时表) 6. 事务性支持属性 7. 其他属性(行格式、字段分隔符等) 需要确保每个部分都有简明扼要的解释,并举例说明,比如创建表时的DDL语句示例,这样用户更容易理解。同时要避免使用过于专业的术语,保持解释的易懂性。 最后,检查是否有遗漏的重要属性,比如表的保护机制或生命周期管理相关的属性,或者Hive新版本中引入的属性。例如,是否支持动态分区,或者表的缓存设置等。这些可能也属于表属性的一部分,需要根据用户的背景知识决定是否包含。</think>Hive属性是定义表结构和行为的关键参数,主要用于控制数据存储、格式、分区等。以下是常见的分类及说明: --- ### **一、基础属性** 1. **表类型** - **内部表(Managed Table)** Hive管理数据生命周期,删除表时数据一起删除。 示例:`CREATE TABLE table_name (...);` - **外部表(External Table)** 数据存储在HDFS指定路径,删除表仅删除元数据。 示例:`CREATE EXTERNAL TABLE ... LOCATION '/hdfs/path';` - **临时表(Temporary Table)** 会话级临时表,会话结束自动删除。 示例:`CREATE TEMPORARY TABLE ...;` 2. **存储格式** - `STORED AS`:指定文件格式,如: - `TEXTFILE`(默认,文本格式) - `ORC`(高效列式存储,支持压缩和索引) - `PARQUET`(列式存储,兼容多种计算框架) - `AVRO`、`SEQUENCEFILE`等。 示例:`STORED AS ORC;` 3. **行格式(Row Format)** - 定义字段分隔符、集合分隔符等: ```sql ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' COLLECTION ITEMS TERMINATED BY ',' MAP KEYS TERMINATED BY ':' ``` --- ### **二、优化属性** 1. **分区(Partitioning)** 按目录划分数据,提升查询效率。 示例:`PARTITIONED BY (dt STRING, country STRING);` 2. **分桶(Bucketing)** 将数据按哈希分散到固定数量的文件中,优化JOIN和采样。 示例:`CLUSTERED BY (user_id) INTO 32 BUCKETS;` 3. **排序(Sorting)** 指定分桶内的排序字段。 示例:`SORTED BY (timestamp DESC) INTO 32 BUCKETS;` --- ### **三、序列化与压缩** 1. **SERDE(序列化/反序列化)** 处理非标准格式数据(如JSON、CSV)。 示例:`ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe';` 2. **压缩属性** - 表级压缩:`SET hive.exec.compress.output=true;` - 文件格式压缩(如ORC):`TBLPROPERTIES ("orc.compress"="SNAPPY");` --- ### **四、高级属性** 1. **事务支持(ACID)** Hive 0.14+支持事务表,需配置ORC格式和表属性: ```sql CREATE TABLE acid_table (...) STORED AS ORC TBLPROPERTIES ('transactional'='true'); ``` 2. **表注释** 添加元数据描述:`COMMENT '用户行为日志表';` 3. **存储路径(Location)** 指定HDFS路径:`LOCATION '/hive/warehouse/logs';` 4. **保护属性** 设置权限(需HDFS支持): `TBLPROPERTIES ('hive.security.authorization.enabled'='true');` --- ### **五、查看表属性** 1. 使用 `DESCRIBE EXTENDED table_name;` 查看详细信息。 2. 查询元数据库(如MySQL中的Hive Metastore表)。 --- **示例完整DDL**: ```sql CREATE EXTERNAL TABLE user_logs ( user_id INT, action STRING ) PARTITIONED BY (dt STRING) CLUSTERED BY (user_id) INTO 50 BUCKETS STORED AS ORC LOCATION '/hive/logs' TBLPROPERTIES ( 'orc.compress'='SNAPPY', 'comment'='用户行为日志表' ); ``` 通过合理配置属性,可优化存储效率、查询性能和运维管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值