Hive常见属性配置总结

本文总结了Hive的配置要点,包括数据仓库位置的修改、权限配置、查询结果显示以及日志管理。Hive配置遵循就近原则,如通过java api或shell客户端操作时,不同层级的配置有不同的优先级。数据仓库默认位于/user/hive/warehouse,可通过修改hive-site.xml调整。日志默认存储在用户目录下,可通过修改hive-log4j.properties指定日志路径。配置参数可通过配置文件、命令行或HQL SET关键字设定,命令行参数和HQL SET具有更高的优先级。

Hive常见属性配置总结

1.概述

  1. 和其他所有框架一样,hive的配置信息也是划分层级的,就近原则
  2. 如果是使用java api进行操作,则代码中配置优先级最高,然后是java项目中配置文件,然后是hive安装目录中的配置文件
  3. 如果是shell 客户端进行操作,则hive指令中参数优先级最高,然后是shell客户端启动时的配置信息,然后是hive安装目录中配置。

2. 具体配置

  1. Hive数据仓库位置配置
  1. Default数据仓库的最原始位置是在hdfs上的:/user/hive/warehouse路径下。
    在这里插入图片描述
  1. 在仓库目录下,没有对默认的数据库default创建文件夹。如果某张表属于default数据库,直接在数据仓库目录下创建一个文件夹。

  2. 修改default数据仓库原始位置(将hive-default.xml.template如下配置信息拷贝到hive-site.xml文件中)。

<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse
<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'='用户行为日志表' ); ``` 通过合理配置属性,可优化存储效率、查询性能和运维管理。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值