- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
hadoop上传文件
hadoop 上传文件
hdfs 上的文件是手动执行命令从本地 linux 上传至 hdfs 的。在真实的运行环境中,我们不可能每次手动执行命令上传
的,这样太过繁琐。那么,我们可以使用 hdfs 提供的 Java api 实现文件上传至 hdfs ,或者直接从ftp 上传至 hdfs。
然而,需要说明一点,之前笔者是要运行 MR ,都需要每次手动执行yarn jar ,在实际的环境中也不可能每次手动执行。像
我们公司是使用了索答的调度平台/任务监控平台,可以定时的以工作流执行我们的程序,包括普通java 程序和 MR。其实,
这个调度平台就是使用了 quartz。当然,这个调度平台也提供其它的一些功能,比如web 展示、日志查看等,所以也不是
免费的。
首先,给大家简单介绍一下 hdfs。hdfs 是以流式数据访问模式来存储超大文件,hdfs 的构建思路是一次写入,多次读取,
这样才是最高效的访问模式。hdfs 是为高数据吞吐量应用优化的,所以会以提高时间延迟为代价。对于低延时的访问需求,
我们可以使用 hbase。
然后 ,还要知道hdfs 中块(block )的概念,默认为64MB。块是 hdfs 的数据读写的最小单位,通常每个 map 任务一次只
处理一个 block ,像我们对集群性能评估就会使用到这个概念,比如目前有多少节点,每个节点的磁盘空间、cpu 以及所要
处理的数据量、网络带宽,通过这些信息来进行性能评估。我们可以使用 Hadoop fsck / -files -blocks 列出文件系统中各
个文件由哪些块构成。
然后,再就是要知道 namenode 和 datanode ,这个在之前的博文已经介绍过,下面看看cm 环境中 hdfs 的管理者
(namenode )和工作者(datanode ),如下
在 yarn 环境中是可以有多个 nameNode 的。此环境中没有 SecondaryNameNode ,当然也可以有。
好了,关于 hdfs 的基本概念就讲到这儿了,下面来看看具体的代码。
一、java 实现上传本地文件至 hdfs
这里,可以直接使用 hdfs 提供的java api 即可实现,代码如下:
package com.bjpowernode.hdfs.local;
1 / 5
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
/**
* ClassName:UploadLocalFileToHdfs br/
* Function: 本地文件上传至 hdfs. br/
* Date: 2016 年 3 月 28 日 下午 10:06:05 br/
* @author qiyongkang
* @version
* @since JDK 1.6
* @see
*/
public class UploadLocalFileToHdfs {
public static void main(String[] args) {
Configuration conf = new Configuration();
String localDir = /home/qiyongkang;
String hdfsDir = /qiyongkang;
try{
Path localPath = new Path(localDir);
Path hdfsPath = new Path(hdfsDir);
FileSystem hdfs = FileSystem.get(conf);
hdfs.copyFromLocalFile(localPath, hdfsPath);
}catch(Exception e){
e.printSt
文档评论(0)