Hive 常见属性配置

Hive 常见属性配置

1.1Hive 数据仓库位置配置

1)Default 数据仓库的最原始位置是在 hdfs 上的:/user/hive/warehouse 路径下
2)在仓库目录下,没有对默认的数据库 default 创建文件夹。如果某张表属于 default 数据库,直接在数据仓库目录下创建一个文件夹。
3)修改 default 数据仓库原始位置(将 hive-default.xml.template 如下配置信息拷贝到 hive-site.xml 文件中)

<property>
<name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>

1.2 查询后信息显示配置
1)在 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>

2)重新启动 hive,对比配置前后差异
在这里插入图片描述

1.3 Hive 运行日志信息配置

1)Hive 的 log 默认存放在/tmp/atguigu/hive.log 目录下(当前用户名下)。
 2)修改 hive 的 log 存放日志到/opt/module/hive/logs
(1)修改/opt/module/hive/conf/hive-log4j.properties.template 文件名称为hive-

log4j.properties
[atguigu@hadoop102 conf]$ pwd
/opt/module/hive/conf
[atguigu@hadoop102 conf]$ mv hive-log4j.properties.template hive-log4j.properties
(2)在 hive-log4j.properties 文件中修改 log 存放位置 hive.log.dir=/opt/module/hive/logs

1.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)参数声明方式
可以在 HQL 中使用 SET 关键字设定参数
例如:
hive (default)> set mapred.reduce.tasks=100;
注意:仅对本次 hive 启动有效。
查看参数设置hive (default)> set mapred.reduce.tasks;
上述三种设定方式的优先级依次递增。即配置文件<命令行参数<参数声明。注意某些 系统级的参数,例如 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、付费专栏及课程。

余额充值