`
bit1129
  • 浏览: 1068057 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Hive十五】Hive IO相关

    博客分类:
  • Hive
 
阅读更多

1. Hadoop配置压缩算法(Hadoop的配置属性,Hive读取core-site.xml文件中的配置,可以再hive-site.xml中配置以覆盖Hadoop中的配置)
key: io.compression.codecs
value:org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.BZip2Codec,org.apache.hadoop.io.compress.SnappyCodec

压缩算法压缩/解压缩的速度与压缩比之间取得一个平衡,
GZip,BZip2的压缩比高,压缩速度相对低;
Snappy,LZO的压缩比低,但是压缩解压缩的速度很高。
BZip2,LZO支持压缩文件分block后的并行处理,而GZip和Snappy则不可以。要使用GZip和Snappy,推荐使用Block压缩的Sequence File

压缩文件是否支持分割?
数据压缩成GZIP,BZIP2,Snappy或者LZO格式后,这个压缩文件如果比较大,比如1G,那么HDFS将它分成10个block(每个block是128M),那么每个分块是否支持
并行处理?

答:
1.
In text files, each line is a record, but these boundaries are obscured by GZip and Snappy.
However, BZip2 and LZO provide block-level compression, where each block has
complete records, so Hadoop can split these files on block boundaries.


Hive属性配置
1. hive.exec.compress.intermediate
表示是否对MapReduce的Shuffle过程产生的中间数据进行压缩,默认是false,即不压缩
2. mapred.map.output.compression.codec
Shuffle过程产生的中间数据采用的压缩算法
3. hive.exec.compress.output
表示是否对Hive的查询结果数据做压缩,默认是false,表示不压缩
4. mapred.output.compression.codec
表示最终结果(reducer输出)的压缩算法

5.Sequence File文件格式的特点
a. The sequence file format supported by Hadoop breaks a file into blocks and then optionally compresses the blocks in a splittable way(按block压缩,表示SequenceFile得到的分块数据是完整的).
b. Sequence files have three different compression options: NONE, RECORD, and BLOCK.RECORD is the default. However, BLOCK compression is usually more efficient and it still
provides the desired splittability
c.设置Sequence File的压缩类型(compression options)
<property>
<name>mapred.output.compression.type</name>
<value>BLOCK</value>
<description>If the job outputs are to compressed as SequenceFiles,
how should they be compressed? Should be one of NONE, RECORD or BLOCK.
</description>
</property>

d. 使用Sequence File作为最终文件格式(reduce输出数据的文件格式,可以对每个block进行压缩)
hive> set mapred.output.compression.type=BLOCK;
hive> set hive.exec.compress.output=true;
hive> set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
hive> CREATE TABLE final_comp_on_gz_seq
> ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
> STORED AS SEQUENCEFILE
> AS SELECT * FROM a;
对Sequence File而言,可以使用Gzip进行压缩,原理是Sequence File支持按照块进行压缩(每个块都是完整的数据)

分享到:
评论

相关推荐

    Hive 对 Protobuf 序列化文件读取.zip

    本篇将重点讲解如何利用Hive对Protobuf序列化的文件进行读取,以及相关的技术细节。 首先,了解Protobuf(Protocol Buffers)。这是Google开发的一种数据序列化协议,用于结构化数据的序列化,可以看作是XML、JSON...

    jdbc hive相关jar包

    10. **Apache Commons**: Apache Commons库提供了一些通用的Java工具类,如IO、Lang、Collections等,对Hive JDBC的实现非常有用。 11. **JDBC基础**: 了解JDBC的基本概念,如Connection、Statement、...

    Hive1.2.1安装指南

    #### 五、启动Hive 1. **启动Hive服务**:在终端中运行`hive`命令启动Hive服务。 #### 六、常见问题解决 在启动Hive时可能会遇到以下异常: **异常信息**: ``` Exception in thread "main" java.lang....

    hive-jdbc.jar包

    hive jdbc jar包用于hive连接数据库驱动

    hive的自定义函数

    import org.apache.hadoop.hive.serde2.io.TimestampWritable; import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; public class UDFNowDate...

    base64加密解密的hive udf函数

    1. 创建一个Java项目,引入Hive相关的依赖库,如`hive-exec`和`hive-serde`。 2. 编写一个名为`Base64UDF`的类,继承`org.apache.hadoop.hive.ql.udf.generic.GenericUDF`。这个类将包含加密和解密方法。 ```java ...

    王家林hive学习资料

    Hive的架构优化是课程的重点,包括降低IO负载、表分区、动态分区、压缩和分布式缓存等技术,以提升Hive的性能。 针对HQL的优化,课程将深入探讨具体的策略和方法,包括Map和Reduce的优化、数据倾斜问题的解决,以及...

    开发高效的hive程序

    分区允许数据按特定的维度(如日期、地区等)进行组织,使得针对特定分区的查询只需要扫描部分数据,减少了不必要的IO操作。 2. 压缩:启用数据压缩可以减少存储空间并提高读取速度。Hive支持多种压缩格式,如Gzip...

    spark-hive_2.11-2.1.4-SNAPSHOT.jar

    HiveHBaseTableOutputFormat cannot be cast to org.apache.hadoop.hive.ql.io.HiveOutputFormat 问题的补丁,替换jars文件夹下的对应jar包即可,版本spark2.1

    hive配置文件信息修改

    例如,在Python中,我们可以使用`pyhive`库连接Hive并调整参数,而在Scala中,可以直接调用SparkSession的相关方法来修改配置。 DataX是阿里巴巴开源的一款数据同步工具,它支持多种数据源之间的数据迁移。虽然...

    hive参数优化文档

    - 调整`io.sort.mb`参数,优化内存中的排序过程。 #### 三、JOB优化 除了上述针对Hive本身的优化外,还可以从Job的配置层面进行调优。 1. **资源分配**: - 根据实际需求调整`yarn.nodemanager.resource.cpu-...

    Hive 编程指南

    《Hive编程指南》是一本深入探讨Hive技术的教程,专门为那些想要利用Hadoop进行大规模数据处理的读者设计。Hive是建立在Hadoop生态系统之上的一种数据仓库工具,它允许用户通过SQL-like语言(HQL)对分布式存储的...

    hive进阶强化必备

    ### Hive进阶强化必备知识点详解 #### 一、HiveThrift服务启动及连接方法 在Hive的日常管理和使用过程中,Hive...通过以上知识点的学习,可以帮助我们更好地理解和掌握Hive的相关技能,提高数据分析和处理的效率。

    hive3.1.2编译.doc

    具体修改的源码类未在描述中给出,但通常这类bug修复会涉及解析、执行或统计相关类的改动,你可能需要查看该JIRA问题的具体详情以确定需要修改哪些文件。 完成所有修改后,使用Maven进行编译: ```shell cd apache...

    Hive及Hadoop作业调优

    标题《Hive及Hadoop作业调优》与描述《阿里巴巴内部hive优化经验文档》指明了本文档的核心内容,它涉及到了在大数据处理领域内,如何针对Hive以及Hadoop作业进行优化的详细方法和经验分享。标签“hive”, “hadoop”...

    SparkSQL通过Hive创建DataFrame

    SparkSQL通过Hive创建DataFrame问题分析 问题一 Caused by: org.apache.spark.sql.catalyst.analysis.NoSuchTableException: Table or view 'stu' not found in database 'default'; 分析:确实没有临时表View,...

    Hive优化.docx

    - **空值关联问题**:通过添加条件或使用`CASE`语句避免空值参与关联,减少Job数量和IO操作。 - **不同类型ID关联**:确保关联字段的数据类型一致,避免类型转换带来的倾斜问题。 - **利用Hive对UNION ALL的优化*...

    hadoop和hive调优个人总结

    2. HDFS抛出错误(java.io.IOException: config()) 这种情况可能是由于HDFS中的配置文件存在问题,导致HDFS无法正常工作的情况。可以通过检查HDFS的配置文件,确保其正确性和完整性来解决这个问题。 Hadoop和Hive...

Global site tag (gtag.js) - Google Analytics