hadoopapi上传文件|如何实现让用户在网页中上传下载文件到HDFS中

① 在Hadoop搭建的云平台上实现视频文件的共享、上传和下载

先安装JDK和JRE;然后Cygwin;再开启SSHD服务,之后便可以配置搭建Hadoop云平台。在云版平台搭建好之后,权安装Eclipse,并将Hadoop-eclipse开发插件包嵌入Eclipse。此后便可以通过eclipse连接Hadoop云平台,并实现其上的二次开发。具体的文件上传与下载都可以通过HDFS提供的API实现。

② 如何实现让用户在网页中上传下载文件到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(Rece.class);//set the combiner class ,if havenot, use Recuce class for default conf.setRecerClass(Rece.class); conf.setInputFormat(SequenceFileInputFormat.class);//necessary if use compress 接下来的处理与非压缩格式的处理一样

③ hadoop提交作业时要先上传输入文件吗

maprece的作业输入输出都需要在一个分布式文件系统上,一般来说都是hdfs,也可以是其他的文件系统。所以运行作业的输入文件必须首先上传到hdfs,输出文件自然也在hdfs上。

把文件上传到hdfs上,hdfs会根据设定的块的大小,默认是64M,来分块存放文件,并存放到不同机器以及会备份多份

maprece作业在开始时会对输入文件进行切分,这个和hdfs分块存储文件是不同的。但是maprece切分输入文件大小也和文件的块有关,不过maprece切分文件的目的是方便多个map任务同时进行处理,提高处理效率,实现分布式计算。而且在maprece看来输入文件是一个整体,并不知道输入文件在hdfs中的存储方式。这样说吧,文件在hdfs中的存储方式由namenode决定,所以只有namenode知道,而Maprece任务由jobtracker负责,所以jobtracker无法知道输入文件的具体分块信息,只能知道哪些节点上保存有该文件。

④ Hadoop2.2简单上传文件,web环境下启动报错,求大神

放到web项目的WebRoot/WEB-INF/lib下

⑤ 如何远程上传文件到hadoop中

全用以下命令答码上传文件到Hadoop上:hadoopfs-putlocal_file_name/user/hadoop/其中,/user/hadoop/为旦举握HDFS上的模庆路径。local_file_name为需要上传的文件名。


赞 (0)