java对Hadoop进行文件的操作(二)

本次主要是简单的对Hadoop中HDFS中文件的操作,可自行先添加文件,或者直接上传文件操作实验。

去不代码如下:

package hadoop1;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FsUrlStreamHandlerFactory;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;

public class hdfs {

    public static void main(String[] args) throws MalformedURLException {
        /*URL url=new URL("http://www.baidu.com");//用URL判断路径
        try {
            InputStream in=url.openStream();//路径打开一个输入流文件
             IOUtils.copyBytes(in, System.out, 4096,true);//将文件内容拷贝出来
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }*/

        /*
        URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory());//用URL的方法先建立一个url的工厂
        URL url=new URL("hdfs://192.168.83.100:9000/hello.txt");//获取我们想要文件的路径
        try {
            InputStream in=url.openStream();//文件打开
             IOUtils.copyBytes(in, System.out, 4096,true);//文件内容输出
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }*/

        Configuration conf =new Configuration();//configuration的对象建立
        conf.set("fs.defaultFS", "hdfs://192.168.83.100:9000");//将要访问的路径放入
        try {
            FileSystem fileSystem=FileSystem.get(conf);//获取路径信息

            /*boolean success=fileSystem.mkdirs(new Path("/asb"));//判断是否创建一个目录文件
            System.out.println(success);

            success=fileSystem.exists(new Path("\\hello.txt"));//判断是否存在文件
            System.out.println(success);

            success=fileSystem.delete(new Path("/asb"));//删除文件
            System.out.println(success);

            success=fileSystem.exists(new Path("/asb"));
            System.out.println(success);*/

            /*FSDataOutputStream out =fileSystem.create(new Path("/test.data"),true);//重新创建一个data目录
            FileInputStream fis =new FileInputStream("C:\\Users\\ZB\\Desktop\\data\\Hamlet.txt");//将桌面文件读入
            IOUtils.copyBytes(fis, out, 4096,true);*///读取放入的文件

            /*FSDataOutputStream out =fileSystem.create(new Path("/test.data"),true);//手动添加
            FileInputStream fis =new FileInputStream("C:\\Users\\ZB\\Desktop\\data\\Hamlet.txt");
            byte[] buf=new byte[4096];//一个字节一个字节的上传
            int len=fis.read(buf);
            while(len!=-1) {
                out.write(buf,0,len);
                len=fis.read(buf);
            }
            fis.close();
            out.close();*/

            FileStatus[] status=fileSystem.listStatus(new Path("/"));//查找存在根目录下的文件
            for(FileStatus status2 : status) {
                System.out.println(status2.getPath());//获取地址
                System.out.println(status2.getPermission());//获取认证信息
                System.out.println(status2.getReplication());//获取响应

            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

原文地址:https://www.cnblogs.com/qianshuixianyu/p/9319063.html

时间: 2025-01-04 10:58:35

java对Hadoop进行文件的操作(二)的相关文章

Hadoop HDFS文件常用操作及注意事项

1.Copy a file from the local file system to HDFS The srcFile variable needs to contain the full name (path + file name) of the file in the local file system. The dstFile variable needs to contain the desired full name of the file in the Hadoop file s

java中的File文件读写操作

之前有好几次碰到文件操作方面的问题,大都因为时间太赶而没有好好花时间去仔细的研究研究,每次都是在百度或者博客或者论坛里面参照着大牛们写的步骤照搬过来,之后再次碰到又忘记了,刚好今天比较清闲,于是就在网上找了找Java常用的file文件操作方面的资料.之后加以一番整理,现分享给大家. 直接上源码吧. package com.file; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx

Java文件IO操作应该抛弃File拥抱Path和Files

Java7中文件IO发生了很大的变化,专门引入了很多新的类: import java.nio.file.DirectoryStream;import java.nio.file.FileSystem;import java.nio.file.FileSystems;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.nio.file.attribute.FileAt

文件IO操作

前言 本文介绍使用java进行简单的文件IO操作. 操作步骤 - 读文件 1. 定义一个Scanner对象 2. 调用该对象的input函数族进行文件读取 (参见下面代码) 3. 关闭输入流 说明:其实和标准输入没什么不同.唯一要注意的区别就是 1 中Scanner构造函数的参数要是路径类型那么才是读文件,否则就是读字符串.(参考下面代码注释部分) 示例代码 1 package test; 2 3 import java.io.IOException; 4 import java.nio.fil

iOS 关于文件的操作

最近做东西,遇到了使用文件方面的问题,花了点时间把文件研究了一下! 一  关于文件路径的生成 我用的方法是: -(NSString*)dataFilePath { NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES); NSString * documentsDirectory  = [paths objectAtIndex:0]; NSLog(

Java接口对Hadoop集群的操作

Java接口对Hadoop集群的操作 首先要有一个配置好的Hadoop集群 这里是我在SSM框架搭建的项目的测试类中实现的 一.windows下配置环境变量 下载文件并解压到C盘或者其他目录. 链接:http://pan.baidu.com/s/1jHHPElg 密码:aufd 配置环境变量 1.配置HADOOP_HOME 2.配置PATH 在PATH中添加 %HADOOP_HOME%\bin 1 3.配置HADOOP_USER_NAME 这是Hadoop集群的用户名 HADOOP_USER_N

Java I/O流操作(二)---缓冲流[转]

转自:http://blog.csdn.net/johnny901114/article/details/8710403 一.BufferWriter类 IO的缓冲区的存在就是为了提高效率,把要操作的数据放进缓冲区,然后一次性把缓冲区的内容写到目的地,而不是写一次就往目的地写一次. 在这里要注意的是当我们关闭了缓冲区对象实际也关闭了与缓冲区关联的流对象. BufferWriter类 try { FileWriter fw =new FileWriter("test.txt"); //使

java文件读写操作类

借鉴了项目以前的文件写入功能,实现了对文件读写操作的封装 仅仅需要在读写方法传入路径即可(可以是绝对或相对路径) 以后使用时,可以在此基础上改进,比如: 写操作: 1,对java GUI中文本框中的内容进行捕获,放在txt文本文档中 2,对各种类型数据都以字符串的形式逐行写入 3,对全局数组的内容进行写入 读操作: 获取文件行数 对逐行字符串型数据进行类型转换,放入二维数组中 为后面算法处理提供入口,但是要小心的是:不可以将行数用全局变量做计数器,否则每次读入是全局变量累加出错,应重新开始读取

Java的文件读写操作 <转>

目录: file内存----输入流----程序----输出流----file内存 java中多种方式读文件 判断文件是否存在不存在创建文件 判断文件夹是否存在不存在创建文件夹 java 写文件的三种方法比较 java中的getParentFile Java RandomAccessFile的使用 高效的RandomAccessFile 高效的RandomAccessFile续 file(内存)----输入流---->[程序]----输出流---->file(内存) 当我们读写文本文件的时候,采