文档章节

HDFS API复制文件到远程HDFS中,目标文件输出格式差异,导致文件存放位置的差异

hiqj
 hiqj
发布于 2014/08/12 15:50
字数 402
阅读 124
收藏 0

代码中目标路径dst格式的区别比较:

Path dst = new Path("qj1");

Path dst = new Path("hdfs://master:9000/qj2");

代码如下:

package com.lango.mapreduce.example.chainmapper;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class CopyToHDFS {
    public static void main(String[] args) throws IOException {
        
        Configuration conf = new Configuration();
        conf.set("fs.default.name", "hdfs://master:9000");
        
        FileSystem fs = FileSystem.get(conf);
        
        fs.copyFromLocalFile(new Path("/home/wqj/opt/140702152709log.txt"), new Path("qj1"));
        fs.copyFromLocalFile(new Path("/home/wqj/opt/140702152709log.txt"), new Path("hdfs://master:9000/qj2"));
    }
}

运行结果:

Path dst = new Path("qj1");


Path dst = new Path("hdfs://master:9000/qj2");

可见,dst输出文件格式写法不一样,其结果存放位置也不一样。

总结:

猜想:

Path dst = new Path("qj1");

HDFS中,用户默认是在“/user/hadoop/”目录下。

可以通过运行“hadoop fs -ls”验证猜想。

运行“hadoop fs -ls”程序结果为:


命令列出的是"/user/hadoop/"目录下的内容。所以,我们现在做的一系列操作都是在"/user/hadoop"目录下。

所以,

Path dst = new Path("qj1");

如果未指定绝对路径,而是如上这种相对路径形式,上传的文件自然就到了"/user/hadoop"目录底下。

如使用

Path dst = new Path("/qj1");

形式,则其结果和

Path dst = new Path("hdfs://master:9000/qj1");

的结果是一致的。都是在HDFS分布式文件系统的根目录下。

感悟:

事实上,HDFS分布式文件系统很多特性和本地文件的很多特性是一样的。

© 著作权归作者所有

hiqj
粉丝 24
博文 208
码字总数 92586
作品 0
渝北
程序员
私信 提问
从HDFS看分布式文件系统的设计需求

分布式文件系统的设计需求大概是这么几个:透明性、并发控制、可伸缩性、容错以及安全需求等。我想试试从这几个角度去观察HDFS的设计和实现,可以更清楚地看出HDFS的应用场景和设计理念。 首...

IT追寻者
2014/06/05
34
0
深入理解Hadoop之HDFS架构

Hadoop分布式文件系统(HDFS)是一种分布式文件系统。它与现有的分布式文件系统有许多相似之处。但是,与其他分布式文件系统的差异是值得我们注意的: HDFS具有高度容错能力,旨在部署在低成...

架构师springboot
2018/12/19
216
0
HDFS的Shell访问和Java API访问

Shell访问HDFS常用命令 1.shell 操作单个 HDFS 集群 下面列举出几个常用场景下的命令。 1、创建文件夹 HDFS 上的文件目录结构类似 Linux,根目录使用 "/" 表示。下面的命令将在 /middle 目录...

等待救赎
2015/10/19
246
0
Hadoop分布式文件系统设计要点与架构

Hadoop分布式文件系统设计要点与架构 Hadoop简介:一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存...

李伟铭k
2018/07/09
0
0
Hadoop系列学习笔记(一)HDFS架构

前言 本篇文章翻译了Hadoop系列下的HDFS Architecture,原文最初经过笔者翻译后大概有6000字,之后笔者对内容进行了精简化压缩,从而使笔者自己和其他读者们阅读本文时能够更加高效快速的完成...

time刺痛你的眼
2017/12/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MainThreadSupport

MainThreadSupport EventBus 3.0 中的代码片段. org.greenrobot.eventbus.MainThreadSupport 定义一个接口,并给出默认实现类. 调用者可以在EventBus的构建者中替换该实现. public interface ...

马湖村第九后羿
25分钟前
2
0
指定要使用的形状来代替文字的显示

控制手机键盘弹出的功能只能在ios上实现,安卓是实现不了的,所以安卓只能使用type类型来控制键盘类型,例如你要弹出数字键盘就使用type="number",如果要弹出电话键盘就使用type="tel",但这...

前端老手
35分钟前
3
0
总结:Raft协议

一、Raft协议是什么? 分布式一致性算法。即解决分布式系统中各个副本数据一致性问题。 二、Raft的日志广播过程 发送日志到所有Followers(Raft中将非Leader节点称为Follower)。 Followers收...

浮躁的码农
43分钟前
3
0
Flask-admin Model View字段介绍

Model View字段介绍 can_create = True 是否可以创建can_edit = True 是否可以编辑can_delete = True 是否可以删除list_template = 'admin/model/list.html' 修改显......

dillonxiao
今天
5
0
从AnnotationTransactionAspect开始rushSpring事务

0. Spring 事务 with LTW 0.1. Spring 事务 With LTW的原因: Pure Proxy-base mode有缺陷,其失效原因分析及使用方法及运行机制(LoadTimeWeaverBeanDefinitionParser和 AspectJWeavingEnable......

Aruforce
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部