`
功夫小当家
  • 浏览: 186478 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

lzo + hive1.x测试

阅读更多

(一)环境:

hadoop 2.8.1
hive 1.2.2

 

   core-site.xml 配置项

<property>
  <name>io.compression.codecs</name>
  <value>org.apache.hadoop.io.compress.GzipCodec,
           org.apache.hadoop.io.compress.DefaultCodec,
           org.apache.hadoop.io.compress.BZip2Codec,
           com.hadoop.compression.lzo.LzopCodec,
           com.hadoop.compression.lzo.LzoCodec
  </value>
</property>    

<!-- lzop -->
<property>
   <name>io.compression.codec.lzo.class</name>
   <value>com.hadoop.compression.lzo.LzopCodec</value>
</property>

  

    mapred-site.xml 配置项

<!--设置map中间结果使用 lzop 压缩-->
<property> 
    <name>mapreduce.map.output.compress</name> 
    <value>true</value> 
</property> 

<property>
   <name>mapreduce.map.output.compress.codec</name>
   <value>com.hadoop.compression.lzo.LzopCodec</value>
</property>

<!--设置map/reduce 整个过程使用 lzop 压缩 -->
<property>
    <name>mapreduce.output.fileoutputformat.compress</name>
    <value>true</value>
</property>

<!-- lzop -->
<property>
   <name>mapreduce.output.fileoutputformat.compress.codec</name>
   <value>com.hadoop.compression.lzo.LzopCodec</value>
</property>

 

 

(二)

1.hive建表sql

CREATE TABLE `lzo5`(
  `uuid` string)
STORED AS 
INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat' 
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'

 

 

2.创建uuid.txt文件,放1行数据

uuid1

 

 

3.lzop创建lzo文件

lzop uuid.txt

 

 

4.hive load数据

load data inpath "/home/hadoop/uuid.txt.lzo" into table lzo5;

 

 

5.hive查询,查看结果是1(正确)

select count(1) from lzo5;

 

 

6.给hive表lzo5路径下的lzo文件,创建lzo索引

$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/share/hadoop/common/hadoop-lzo-0.mmon/hadoop-lzo-0.4.21-SNAPSHOT.jar com.hadoop.compression.lzo.DistributeddLzoIndexer  hdfs://hd1:9000/user/hive/warehouse/lzo5

 

 

7.查看索引生成情况

hdfs dfs -ls hdfs://hd1:9000/user/hive/warehouse/lzo5

 

 

 

8.再次查询sql,查看结果是1(正确)

select count(1) from lzo5;

 

 

(三)如何知道lzo index是否生效?

创建一个lzo文件,比hdfs的block size略大一点,分别在无索引和有索引两种场景下测试,看map数

  • 无索引的map数是1,因为lzo无索引不可split,
  • 有索引的map数是lzo文件大小 / block size 个, 因为lzo + index后支持split

 (四)对比结果:

block size是128M,生成的lzo文件是370M

无索引和有索引的执行时间如下,有索引的查询略快一点:

 

 

 无索引,map数1个

 

有索引的,map数3个(index后,支持split)


 

  • 大小: 9.4 KB
  • 大小: 88.9 KB
  • 大小: 5.5 KB
  • 大小: 5.3 KB
分享到:
评论

相关推荐

    lzo-2.06.tar.gz/lzo-2.10.tar.gz

    1. **配置Hadoop**:为了使用LZO,用户需要在Hadoop的配置文件中添加相应的设置,如启用对LZO的支持,并指定LZO库的路径。 2. **生成LZO压缩文件**:可以使用Hadoop的命令行工具,如`hadoop fs -put`和`hadoop fs -...

    hadoop-lzo-0.4.20.jar

    hadoop2 lzo 文件 ,编译好的64位 hadoop-lzo-0.4.20.jar 文件 ,在mac 系统下编译的,用法:解压后把hadoop-lzo-0.4.20.jar 放到你的hadoop 安装路径下的lib 下,把里面lib/Mac_OS_X-x86_64-64 下的所有文件 拷到 ...

    hadoop-lzo-0.4.15.jar

    hadoop2 lzo 文件 ,编译好的64位 hadoop-lzo-0.4.15.jar 文件 ,在mac 系统下编译的,用法:解压后把hadoop-lzo-0.4.15.jar 放到你的hadoop 安装路径下的lib 下,把里面lib/Mac_OS_X-x86_64-64 下的所有文件 拷到 ...

    lzo-2.10.tar.gz

    编写代码时,需要包含对应的头文件,例如`#include &lt;lzo/lzo1x.h&gt;`。 6. **跨平台移植**:LZO库设计得相当便携,支持多种操作系统和架构。移植到其他平台时,可能需要调整编译选项和链接器设置,确保所有依赖项都已...

    lzo-2.09.tar.gz

    6. **API和使用**:LZO库提供了一系列的API函数供开发者使用,例如`lzo1x压缩`和`lzo1x_decompress解压缩`,允许开发者将LZO压缩集成到他们的应用程序中。LZO库的使用通常包括初始化、压缩、解压缩和释放资源等步骤...

    lzo-2.05.tar.gz

    1. **压缩效率**:LZO算法以牺牲压缩比为代价,换取了极高的压缩和解压缩速度,这在资源有限的嵌入式系统中尤为重要。在UBIFS中,LZO可以快速压缩和解压缩数据,从而减小文件系统占用的存储空间,同时保持较高的读写...

    hadoop-lzo-0.4.21-SNAPSHOT.jar

    1. 安装和配置:首先,下载hadoop-lzo-0.4.21-SNAPSHOT.jar,并将其复制到所有Hadoop节点的lib目录下,确保所有节点都能访问到。接着,需要在Hadoop的配置文件(如hadoop-site.xml)中配置相关的属性,如启用LZO压缩...

    Lzo压缩算法.例子(vs2005)

    1. **获取LZO库:** 首先,你需要下载LZO库的源代码,如`lzo1x.c`和`lzo1x.h`,这是LZO的主要实现文件。 2. **项目设置:** 创建一个新的C或C++项目,将LZO源代码添加到项目中,确保编译器设置与LZO库的要求兼容。 3...

    图形图像压缩资料(LZO+LZSS+LZW)

    在给定的“图形图像压缩资料(LZO+LZSS+LZW)”压缩包中,包含了关于这三种压缩算法的代码、例子和文档,这对于学习和理解这些算法的实现原理极其有价值。通过研究这些资料,开发者可以更好地掌握如何在实际项目中...

    lzo-2.10.zip

    LZO(Lempel-Ziv-Oberhumer)是一种数据压缩算法,由V. Lempel、A. Ziv和M. Oberhumer在1986年提出。这个算法以其快速、简单和低内存需求著称,尤其适用于嵌入式系统和实时应用。在"LZO-2.10.zip"这个压缩包中,我们...

    hadoop-lzo-master.zip

    1. 下载并解压hadoop-lzo-master.zip 2. 需要jdk1.6+(非mac),jdk1.7 3. 安装LZO-2.x库(上步) 4. 编译hadoop-lzo $&gt;C_INCLUDE_PATH=/usr/local/include $&gt;LIBRARY_PATH=/usr/local/lib $&gt;参见下文先搭建maven...

    lzo-2.06.tar.gz

    1. **速度**:LZO的压缩和解压缩速度都非常快,它能在单个CPU核心上实现高效运行,不需要复杂的预处理或后处理步骤。 2. **内存效率**:LZO在内存使用方面相对节省,这使得它适合资源有限的环境,如嵌入式设备或...

    hadoop-lzo-0.4.15.tar.gz

    1. `lib/` 目录:包含了Hadoop LZO的库文件,这些文件是Java编译的类库,用于Hadoop环境中的数据压缩和解压缩。 2. `src/` 目录:包含了源代码,开发者可以查看和修改源代码,以适应特定需求或修复潜在问题。 3. `...

    hadoop-lzo-0.4.20-SNAPSHOT.jar

    编译后的hadoop-lzo源码,将hadoop-lzo-0.4.21-SNAPSHOT.jar放到hadoop的classpath下 如${HADOOP_HOME}/share/hadoop/common。hadoop才能正确支持lzo,免去编译的烦恼

    2.Hadoop-lzo.7z lzo源码+包

    1. **融入Hadoop源码**:首先,你需要获取Hadoop的源代码,然后将LZO的源代码整合进Hadoop项目。这通常涉及将LZO的Java代码添加到Hadoop的源代码树中,修改相应的配置文件,确保Hadoop知道如何处理LZO压缩的数据块。...

Global site tag (gtag.js) - Google Analytics