首页 > 代码库 > HDFS
HDFS
1.HDFS shell
1.0查看帮助
hadoop fs -help <cmd>
1.1上传
hadoop fs -put <linux上文件> <hdfs上的路径>
1.2查看文件内容
hadoop fs -cat <hdfs上的路径>
1.3查看文件列表
hadoop fs -ls /
1.4下载文件
hadoop fs -get <hdfs上的路径> <linux上文件>
2.使用java接口操作HDFS
public class HDFSDemo { private FileSystem fs = null; @Before public void init() throws IOException, URISyntaxException, InterruptedException{ fs = FileSystem.get(new URI("hdfs://itcast01:9000"), new Configuration(),"root"); } @Test public void testDel() throws IllegalArgumentException, IOException{ boolean flag = fs.delete(new Path("/words.txt"), true); System.out.println(flag); } @Test public void testMkdir() throws IllegalArgumentException, IOException{ boolean flag = fs.mkdirs(new Path("/itcast88888888")); System.out.println(flag); } @Test public void testUpload() throws IllegalArgumentException, IOException{ FSDataOutputStream out = fs.create(new Path("/words.txt")); FileInputStream in = new FileInputStream(new File("c:/w.txt")); IOUtils.copyBytes(in, out, 2048, true); } public static void main(String[] args) throws IOException, URISyntaxException { FileSystem fs = FileSystem.get(new URI("hdfs://itcast01:9000"), new Configuration()); InputStream in = fs.open(new Path("/jdk.avi")); FileOutputStream out = new FileOutputStream(new File("c:/jdk123456")); IOUtils.copyBytes(in, out, 2048, true); } }
3.hadoop通信机制
不同进程之间的方法进行调用
4.HDFS源码分析
FileSystem.get --> 通过反射实例化了一个DistributedFileSystem --> new DFSCilent()把他作为自己的成员变量
在DFSClient构造方法里面,调用了createNamenode,使用了RPC机制,得到了一个NameNode的代理对象,就可以和NameNode进行通信了
FileSystem --> DistributedFileSystem --> DFSClient --> NameNode的代理
HDFS
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。