上传文件到HDFS,对文件进行压缩
来源:互联网 发布:linux开机启动sh脚本 编辑:程序博客网 时间:2024/05/29 17:24
hadoop计算需要在hdfs文件系统上进行,文件上传到hdfs上通常有三种方法:a hadoop自带的dfs服务,put;b hadoop的API,Writer对象可以实现这一功能;c 调用OTL可执行程序,数据从数据库直接进入hadoop
hadoop计算需要在hdfs文件系统上进行,因此每次计算之前必须把需要用到的文件(我们称为原始文件)都上传到hdfs上。文件上传到hdfs上通常有三种方法:
a hadoop自带的dfs服务,put;
b hadoop的API,Writer对象可以实现这一功能;
c 调用OTL可执行程序,数据从数据库直接进入hadoop
由于存在ETL层,因此第三种方案不予考虑
将a、b方案进行对比,如下:
1 空间:方案a在hdfs上占用空间同本地,因此假设只上传日志文件,则保存一个月日志文件将消耗掉约10T空间,如果加上这期间的各种维表、事实表,将占用大约25T空间
方案b经测试,压缩比大约为3~4:1,因此假设hdfs空间为100T,原来只能保存约4个月的数据,现在可以保存约1年
2 上传时间:方案a的上传时间经测试,200G数据上传约1小时
方案b的上传时间,程序不做任何优化,大约是以上的4~6倍,但存在一定程度提升速度的余地
3 运算时间:经过对200G数据,大约4亿条记录的测试,如果程序以IO操作为主,则压缩数据的计算可以提高大约50%的速度,但如果程序以内存操作为主,则只能提高5%~10%的速度
4 其它:未压缩的数据还有一个好处是可以直接在hdfs上查看原始数据。压缩数据想看原始数据只能用程序把它导到本地,或者利用本地备份数据
压缩格式:按照hadoop api的介绍,压缩格式分两种:BLOCK和RECORD,其中RECORD是只对value进行压缩,一般采用BLOCK进行压缩。
对压缩文件进行计算,需要用SequenceFileInputFormat类来读入压缩文件,以下是计算程序的典型配置代码:
JobConf conf = new JobConf(getConf(), log.class);
conf.setJobName(”log”);
conf.setOutputKeyClass(Text.class);//set the map output key type
conf.setOutputValueClass(Text.class);//set the map output value type
conf.setMapperClass(MapClass.class);
//conf.setCombinerClass(Reduce.class);//set the combiner class ,if havenot, use Recuce class for default
conf.setReducerClass(Reduce.class);
conf.setInputFormat(SequenceFileInputFormat.class);//necessary if use compress
接下来的处理与非压缩格式的处理一样
文章来自:http://www.cnblogs.com/tangtianfly/archive/2012/12/19/2825353.html
- 上传文件到HDFS,对文件进行压缩
- 上传文件到HDFS
- 上传文件到HDFS
- FileChannal文件上传以及对文件像素进行压缩
- servlet上传文件到hdfs
- 上传文件到HDFS方式
- java上传文件到HDFS
- HDFS之上传文件到hdfs中
- hadoop的hdfs文件操作实现上传文件到hdfs
- Hadoop - HDFS API 对文件进行操作
- 远程Java客户端上传文件到HDFS
- Hadoop MapReduce之上传文件到HDFS
- hadoop上传文件到hdfs出错
- 上传文件到hdfs报错处理
- flume上传文件到hdfs上
- 上传到hdfs文件所属问题
- 本地多级文件 原样上传到hdfs
- java上传文件到hdfs简单demo
- c语言产生随机数并排序
- hdu 1085 母函数
- mongo-node 利用eval属性完成数据库的增删改(可以使用mongodb的原生语言,解决ID自增问题)
- 泛型
- 基于UDP的多线程网络通信程序
- 上传文件到HDFS,对文件进行压缩
- @Controller("loginAction") @Scope("prototype") @Resource(name="loginService")
- Python学习第一课(1)python介绍安装
- Jackson 框架,轻易转换JSON
- c语言的一个数组翻转
- 第三次C程序设计上机报告
- hadoop集群默认配置和常用配置
- 第一次C程序设计上机报告
- 利用Intent实现两个Activity之间的跳转