- 浏览: 150241 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (113)
- Java工具类 (3)
- Hibernate (1)
- Struts>1&2 (0)
- Spring (0)
- Web前端 (1)
- 数据库 (2)
- 中间件 (3)
- 搜索引擎 (11)
- EJB (1)
- Log日志 (1)
- OS操作系统 (7)
- Java文档 (4)
- Security (1)
- Exception&Error (7)
- 日志&心情 (7)
- 开心一下 (3)
- 云计算 (41)
- Cache缓存 (4)
- MongoDB (1)
- OS操作系统 Linux (7)
- jquery (1)
- 机器学习 (2)
- Plugins (2)
- AJAX (1)
- Java工具 (1)
- WebService (1)
最新评论
-
a420144030:
你好,我想计算n篇文章的相似度,用mahout能处理吗,如何做 ...
mahout使用 -
di1984HIT:
OK,真的很牛啊
hadoop常见错误 -
xwl1991:
还真是这个问题 !
quartz报错java.lang.NoSuchMethodError: org.apache.commons.collections.SetUtils.ord
转自:http://www.tech126.com/hadoop-lzo/
自从Hadoop集群搭建以来,我们一直使用的是Gzip进行压缩
当时,我对gzip压缩过的文件和原始的log文件分别跑MapReduce测试,最终执行速度基本差不多
而且Hadoop原生支持Gzip解压,所以,当时就直接采用了Gzip压缩的方式
关于Lzo压缩,twitter有一篇文章,介绍的比较详细,见这里:
Lzo压缩相比Gzip压缩,有如下特点:
- 压缩解压的速度很快
- Lzo压缩是基于Block分块的,这样,一个大的文件(在Hadoop上可能会占用多个Block块),就可以由多个MapReduce并行来进行处理
虽然Lzo的压缩比没有Gzip高,不过由于其前2个特性,在Hadoop上使用Lzo还是能整体提升集群的性能的
我测试了12个log文件,总大小为8.4G,以下是Gzip和Lzo压缩的结果:
- Gzip压缩,耗时480s,Gunzip解压,耗时180s,压缩后大小为2.5G
- Lzo压缩,耗时160s,Lzop解压,耗时110s,压缩后大小为4G
以下为在Hadoop集群上使用Lzo的步骤:
1. 在集群的所有节点上安装Lzo库,可从这里下载
cd /opt/ysz/src/lzo-2.04
./configure –enable-shared
make
make install
#编辑/etc/ld.so.conf,加入/usr/local/lib/后,执行/sbin/ldconfig
或者cp /usr/local/lib/liblzo2.* /usr/lib64/
#如果没有这一步,最终会导致以下错误:
lzo.LzoCompressor: java.lang.UnsatisfiedLinkError: Cannot load liblzo2.so.2 (liblzo2.so.2: cannot open shared object file: No such file or directory)!
2. 编译安装Hadoop Lzo本地库以及Jar包,从这里下载
export CFLAGS=-m64
export CXXFLAGS=-m64
ant compile-native tar
#将本地库以及Jar包拷贝到hadoop对应的目录下,并分发到各节点上
cp lib/native/Linux-amd64-64/* /opt/sohuhadoop/hadoop/lib/native/Linux-amd64-64/
cp hadoop-lzo-0.4.10.jar /opt/sohuhadoop/hadoop/lib/
3. 设置Hadoop,启用Lzo压缩
vi core-site.xml
<property>
<name>io.compression.codecs</name>
<value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.DefaultCodec,com.hadoop.compression.lzo.LzoCodec,com.hadoop.compression.lzo.LzopCodec,org.apache.hadoop.io.compress.BZip2Codec</value>
</property>
<property>
<name>io.compression.codec.lzo.class</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
vi mapred-site.xml
<property>
<name>mapred.compress.map.output</name>
<value>true</value>
</property>
<property>
<name>mapred.map.output.compression.codec</name>
<value>com.hadoop.compression.lzo.LzoCodec</value>
</property>
4. 安装lzop,从这里下载
下面就是使用lzop压缩log文件,并上传到Hadoop上,执行MapReduce操作,测试的Hadoop是由3个节点组成集群
lzop -v 2011041309.log
hadoop fs -put *.lzo /user/pvlog
#给Lzo文件建立Index
hadoop jar /opt/sohuhadoop/hadoop/lib/hadoop-lzo-0.4.10.jar com.hadoop.compression.lzo.LzoIndexer /user/pvlog/
写一个简单的MapReduce来测试,需要指定InputForamt为Lzo格式,否则对单个Lzo文件仍不能进行Map的并行处理
job.setInputFormatClass(com.hadoop.mapreduce.LzoTextInputFormat.class);
可以通过下面的代码来设置Reduce的数目:
job.setNumReduceTasks(8);
最终,12个文件被切分成了36个Map任务来并行处理,执行时间为52s,如下图:
我们配置Hadoop默认的Block大小是128M,如果我们想切分成更多的Map任务,可以通过设置其最大的SplitSize来完成:
FileInputFormat.setMaxInputSplitSize(job, 64 *1024 * 1024);
最终,12个文件被切分成了72个Map来处理,但处理时间反而长了,为59s,如下图:
而对于Gzip压缩的文件,即使我们设置了setMaxInputSplitSize,最终的Map数仍然是输入文件的数目12,执行时间为78s,如下图:
从以上的简单测试可以看出,使用Lzo压缩,性能确实比Gzip压缩要好不少
发表评论
-
用Sqoop把数据从HDFS导入到MYSQL
2012-10-27 23:30 2304转自:http://www.kaifajie.cn/mySQL ... -
大数据的储存:百度HDFS集群的数据压缩
2012-08-30 17:48 11352012年4月13日,由IT168(ITP ... -
用sqoop进行mysql和hdfs系统间的数据互导
2012-07-31 16:32 1864转自:http://abloz.com/2012/07/19/ ... -
从hive将数据导出到mysql
2012-07-31 16:31 1775转自:http://abloz.com/2012/07/20/ ... -
Hive SQL
2012-07-19 13:49 1389转自:http://www.tbdata.org/ ... -
Hive优化总结
2012-07-09 15:18 4250优化时,把hive sql当做ma ... -
hadoop/mapred 优化方法
2012-06-12 11:47 1359从三个方面着手优化 : 1. hadoop配置 2. ... -
hadoop集群dfs.data.dir目录权限问题导致节点无法启动
2012-06-11 18:32 6176安装使用Hive的时候发现文件无法从本地拷贝到hadoo ... -
hadoop中的balancer
2012-06-11 15:49 1092对于HDFS集群,经常长时间的运行,尤其是大量的delete操 ... -
使用Hive读取Hbase中的数据
2012-05-23 13:12 2232转自:http://www.4ucode.com/Study/ ... -
在XP系统下配置eclipse集成hadoop开发
2012-05-05 11:09 1000一、目的:由于hadoop只能在Linux环境下运行,所以对于 ... -
使用Hive读取Hbase中的数据
2012-04-18 14:24 1046转自:http://www.4ucode.com/Study/ ... -
Web日志分析方法概述 让复杂的数据挖掘变得简单可行
2012-04-13 16:31 825志在计算机系统中是一个非常广泛的概念,任何程序都有可能输出日志 ... -
应用sqoop将MySQL数据库中的数据导入Hbase
2012-04-12 11:31 2027转自:http://www.bwxxkj.com/a/jish ... -
hadoop中的trash机制,恢复删除的文件
2012-03-31 13:46 2145Hadoop回收站trash,默认是关闭的。 1.修改con ... -
Hadoop 和DBMS 的互补性
2012-03-29 12:22 638随着Microsoft 也加入Hadoop 阵营,Hadoop ... -
Hadoop 中的两表join
2012-03-29 12:20 815转自:http://www.gemini52013 ... -
各版本编译hadoop eclipse plugin
2012-03-29 12:19 1340转自:http://www.gemini52013 ... -
hadoop常见错误
2012-03-24 13:04 1615错误1:bin/hadoop dfs 不能正常启动,持续提 ... -
hbase运维
2012-03-23 17:33 1274转自:http://blog.bluedavy.c ...
相关推荐
配置hadoop支持LZO和snappy压缩
Hadoop_Hadoop集群(第4期)_SecureCRT使用 Hadoop_Hadoop集群(第5期)_Hadoop安装配置 Hadoop_Hadoop集群(第5期副刊)_JDK和SSH无密码配置 Hadoop_Hadoop集群(第6期)_WordCount运行详解 Hadoop_Hadoop集群(第7...
hadoop支持LZO压缩配置 将编译好后的hadoop-lzo-0.4.20.jar 放入hadoop-2.7.2/share/hadoop/common/ core-site.xml增加配置支持LZO压缩 <name>io.compression.codecs org.apache.hadoop.io....
自动化安装hadoop集群 ...搭建hadoop集群-脚本使用教程.mp4 搭建Hadoop集群.docx(此为文本教程,脚本都是按这个配置的) 脚本使用教程.txt 请评论区留言反馈,您宝贵的意见是我前进的动力。 我会经常更新的!
hadoop集群内lzo的安装与配置 搞hadoop的朋友好好看看
手把手教你配置高效的Hadoop集群,充分利用Hadoop平台的优势。2. 为Hadoop生态系统实现强健的端到端的安全保障。
部署全分布模式Hadoop集群 实验报告一、实验目的 1. 熟练掌握 Linux 基本命令。 2. 掌握静态 IP 地址的配置、主机名和域名映射的修改。 3. 掌握 Linux 环境下 Java 的安装、环境变量的配置、Java 基本命令的使用。 ...
hadoop集群内lzo的安装与配置.doc
《Hadoop集群程序设计与开发(数据科学与大数据技术专业系列规划教材)》系统地介绍了基于Hadoop的大数据处理和系统开发相关技术,包括初识Hadoop、Hadoop基础知识、Hadoop开发环境配置与搭建、Hadoop分布式文件系统、...
hadoop2 lzo 文件 ,编译好的64位 hadoop-lzo-0.4.15.jar 文件 ,在mac ...看看hadoop jar /path/to/your/hadoop-lzo.jar com.hadoop.compression.lzo.LzoIndexer big_file.lzo 行不行,不行的话,重启一下hadoop 集群
另外,两类数据集在小规模集群(1个Slave)上的执行效率大约均是大规模集群(10个Slave)下的2倍.故此,在Hadoop集群环境中为了提高应用性能,应通过增大数据块等方法来减少map任务数,而不应盲目增大集群规模.该结论可对...
Hadoop集群构建实训报告
Hadoop集群·SecureCRT使用(第4期) Hadoop集群·Hadoop安装配置(第5期) Hadoop集群·JDK和SSH无密码配置(第5期副刊) Hadoop集群·WordCount运行详解(第6期) Hadoop集群·Eclipse开发环境设置(第7期) ...
利用ansible 自动 安装Hadoop 集群
22、MapReduce使用Gzip压缩、Snappy压缩和Lzo压缩算法写文件和读取相应的文件 网址:https://blog.csdn.net/chenwewi520feng/article/details/130456088 本文的前提是hadoop环境正常。 本文最好和MapReduce操作常见...
在redhat下安装hadoop集群,文件中包括设置静态ip,jdk安装,内含截图,详细指导。
搭建高可用的Hadoop集群,基于NFS共享磁盘的namenode配置,使用zookeeper进行主节点推举
大数据技术基础实验报告-Hadoop集群的使用和管理
教程:在linux虚拟机下(centos),通过docker容器,部署hadoop集群。一个master节点和三个slave节点。