使用Hadoop自己的类操作HDFS

 1 package hdfs;
 2
 3 import java.io.FileInputStream;
 4 import java.io.FileNotFoundException;
 5 import java.io.IOException;
 6 import java.net.URI;
 7 import java.net.URISyntaxException;
 8
 9 import org.apache.hadoop.conf.Configuration;
10 import org.apache.hadoop.fs.FSDataInputStream;
11 import org.apache.hadoop.fs.FSDataOutputStream;
12 import org.apache.hadoop.fs.FileStatus;
13 import org.apache.hadoop.fs.FileSystem;
14 import org.apache.hadoop.fs.Path;
15 import org.apache.hadoop.io.IOUtils;
16
17 public class App2 {
18     static final String PATH = "hdfs://chaoren:9000/";
19     static final String DIR = "/d1";
20     static final String FILE = "/d1/hello";
21     public static void main(String[] args) throws Exception {
22         FileSystem fileSystem = getFileSystem();
23         //创建文件夹     hadoop fs -mkdir   /f1
24         mkdir(fileSystem);
25         //上传文件  -put  src  des
26         putData(fileSystem);
27         //下载文件   hadoop fs -get src des
28         //getData(fileSystem);
29         //浏览文件夹
30         list(fileSystem);
31         //删除文件夹
32         //remove(fileSystem);
33     }
34     private static void list(FileSystem fileSystem) throws IOException {
35         final FileStatus[] listStatus = fileSystem.listStatus(new Path("/"));
36         for (FileStatus fileStatus : listStatus) {
37             String isDir = fileStatus.isDir()?"文件夹":"文件";
38             final String permission = fileStatus.getPermission().toString();
39             final short replication = fileStatus.getReplication();
40             final long len = fileStatus.getLen();
41             final String path = fileStatus.getPath().toString();
42             System.out.println(isDir+"\t"+permission+"\t"+replication+"\t"+len+"\t"+path);
43         }
44     }
45     private static void getData(FileSystem fileSystem) throws IOException {
46         final FSDataInputStream in = fileSystem.open(new Path(FILE));
47         IOUtils.copyBytes(in, System.out, 1024, true);
48     }
49     private static void putData(FileSystem fileSystem) throws IOException,
50             FileNotFoundException {
51         final FSDataOutputStream out = fileSystem.create(new Path(FILE));
52         final FileInputStream in = new FileInputStream("H:/kuaipan/hadoop/classes/yy131009/day2/readme.txt");
53         IOUtils.copyBytes(in, out, 1024, true);
54     }
55     private static void remove(FileSystem fileSystem) throws IOException {
56         fileSystem.delete(new Path(DIR), true);
57     }
58     private static void mkdir(FileSystem fileSystem) throws IOException {
59         fileSystem.mkdirs(new Path(DIR));
60     }
61     private static FileSystem getFileSystem() throws IOException, URISyntaxException {
62         return FileSystem.get(new URI(PATH), new Configuration());
63     }
64 }
时间: 2024-10-18 02:01:17

使用Hadoop自己的类操作HDFS的相关文章

使用hadoop的类操作HDFS

1. 创建文件夹 private static final String PATH = "hdfs://hadoop:9000/"; private static final String DIR = "/d2"; public static void main(String[] args) throws Exception { FileSystem fileSystem = FileSystem.get(new URI(PATH), new Configurati

Java操作HDFS开发环境搭建以及HDFS的读写流程

Java操作HDFS开发环境搭建 在之前我们已经介绍了如何在Linux上进行HDFS伪分布式环境的搭建,也介绍了hdfs中一些常用的命令.但是要如何在代码层面进行操作呢?这是本节将要介绍的内容: 1.首先使用IDEA创建一个maven工程: maven默认是不支持cdh的仓库的,需要在pom.xml中配置cdh的仓库,如下: <repositories> <repository> <id>cloudera</id> <url>https://re

Hadoop读书笔记(三)Java API操作HDFS

Hadoop读书笔记(一)Hadoop介绍:http://blog.csdn.net/caicongyang/article/details/39898629 Hadoop读书笔记(二)HDFS的shell操作:http://blog.csdn.net/caicongyang/article/details/41253927 JAVA URL 操作HDFS OperateByURL.java package hdfs; import java.io.InputStream; import jav

Hadoop大象之旅009-通过Shell操作hdfs

Hadoop大象之旅009-通过Shell操作hdfs 老帅 调用Hadoop分布式文件系统(HDFS)Shell命令应使用bin/hadoop fs <args>的形式. 1.查看hdfs都有哪些Shell命令 参照前面章节中所述方法,使用SecureCRTPortable.exe登录CentOS; 使用命令"hadoopfs"查看hdfs的命令列表,如下图所示: hdfs的所有命令的格式,都为:hadoop fs –xx,具体使用方法,可参考官方文档: http://h

hadoop集群配置和在windows系统上运用java操作hdfs

安装 配置 概念 hadoop常用shell命令 使用java操作hadoop 本文介绍hadoop集群配置和在windows系统上运用java操作hdfs 安装 http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.1/ sudo apt-get install ssh sudo apt-get install rsync mkdir /usr/local/hadoop tar -zxvf hadoop-3.1.1.tar.gz -C

hadoop 》》 django 简单操作hdfs 语句

>> from django.shortcuts import render # Create your views here. from hdfs.client import Client from django.views import View from hdfs.client import Client import os # # # 关于python操作hdfs的API可以查看官网: # # https://hdfscli.readthedocs.io/en/latest/api.h

Java API操作HDFS

HDFS是存储数据的分布式文件系统,对HDFS的操作,就是对文件系统的操作,除了用HDFS的shell命令对文件系统进行操作,我们也可以利用Java API对文件系统进行操作,比如文件的创建.删除.修改权限等等,还有文件夹的创建.删除.重命名等等. 使用Java API对文件系统进行操作主要涉及以下几个类: 1.Configuration类:该类的对象封装了客户端或者服务端的配置. 2.FileSystem类:该类的对象是一个文件系统对象,可以利用该对象的一些方法来对文件进行操作,FileSys

HDFS是什么?HDFS适合做什么?我们应该怎样操作HDFS系统?(第3篇)

第四章  HDFS文件系统 Hadoop 附带了一个名为 HDFS(Hadoop分布式文件系统)的分布式文件系统,专门存储超大数据文件,为整个Hadoop生态圈提供了基础的存储服务. 本章内容: 1) HDFS文件系统的特点,以及不适用的场景 2) HDFS文件系统重点知识点:体系架构和数据读写流程 3) 关于操作HDFS文件系统的一些基本用户命令 1. HDFS特点: HDFS专为解决大数据存储问题而产生的,其具备了以下特点: 1) HDFS文件系统可存储超大文件 每个磁盘都有默认的数据块大小

Hadoop企业级完整训练:HDFS&amp;MapReduce&amp;HBase&amp;Hive&amp;Zookeeper&amp;Pig&amp;Project)

Hadoop是云计算的事实标准软件框架,是云计算理念.机制和商业化的具体实现,是整个云计算技术学习中公认的核心和最具有价值内容. 如何从企业级开发实战的角度开始,在实际企业级动手操作中深入浅出并循序渐进的掌握Hadoop是本课程的核心. 云计算学习者的心声: 如何从企业级开发的角度,不断动手实际操作,循序渐进中掌握Hadoop,直到能够直接进行企业级开始,是困惑很多对云计算感兴趣的朋友的核心问题,本课程正是为解决此问题而生,学习者只需要按照一步步的跟着视频动手操作,即可完全无痛掌握Hadoop企