永发信息网

如何将hdfs上面的数据放到本地

答案:1  悬赏:10  手机版
解决时间 2021-03-28 03:18
如何将hdfs上面的数据放到本地
最佳答案
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

接下来的处理与非压缩格式的处理一样
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
南洋有哪几个国家?
200,000利率两分钱借了15天,100,000利率两分
她说她接受不了哪怕比她小一天 又说我很成熟
塔吊主电缆一根火线发热怎么回事
电机NEMA连接是什么意思
如何把numbers转换excel
小天鹅a和青岛海尔的优势以及他们的差异在那
C语言简单习题:w<x?w:y<z?y:z
沙姜炒鸡肉怎么做好
许华升今年几岁了,,,,,
告可以怎么组词
台达DTC1000怎么设置输出为PWM
五万元每天返利五百复投到二十万收益多少
viv0x7L和virv0x7有区别吗
狼人杀寻欢怎么升级
推荐资讯
北京西西友谊酒店地址好找么,我有些事要过去
德州驴养殖条件气候
a站和b站哪个好
鄂F8WF72是哪的车
上海彩亿做办信用卡客服怎么样
ムラムラってる素人のサイトを作りまし Dapo
有知道上海六链集团的吗?好像陈正林博士在这
左边丝纽旁,右边上方羽字中间人子下方三撇是
刚入手了Sony XZ港行 但开机是按照7,国行都
刘健艺术魔指钢琴培训地址有知道的么?有点事
公账对私账需跨行手续费吗
请问伯仕利电子秤如何公斤调市斤
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?