博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
11111
阅读量:5291 次
发布时间:2019-06-14

本文共 3324 字,大约阅读时间需要 11 分钟。

 package com.immoc.hadoop;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.*;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.util.Progressable;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.*;
import java.net.URI;
import java.util.Scanner;
/**
 * Hadoop HDFS Java API 操作
 */
public class HDFS_Classtest2 {
    public static final String HDFS_PATH = "hdfs://192.168.16.132:8020";
    FileSystem fileSystem = null;
    Configuration configuration = null;
    /**
     * 创建HDFS目录
     */
    public  void mkdir() throws Exception {
        fileSystem.mkdirs(new Path("/信1605-1班/20163694"));
    }
    /**
     *  [1]:新建:新建文本文件;
     */
    @Test
    public int create() throws Exception {
        FSDataOutputStream output = fileSystem.create(new Path("/信1605-1班/20163694/李婷婷.txt"));
        output.write("hello hadoop 20163694李婷婷\n".getBytes());
        System.out.println("新建:/信1605-1班/20163694/李婷婷.txt成功");
        output.flush();
        output.close();
        return 0;
    }
    /**
     * [2] 打开:打开指定目录下的文本文件,并将文本内容显示在编辑区
     */
    @Test
    public int  cat() throws Exception {
        FSDataInputStream in = fileSystem.open(new Path("/信1605-1班/20163694/李婷婷.txt"));
        System.out.println("\n文件内容为:");
        IOUtils.copyBytes(in, System.out, 1024);
        System.out.println("");
        in.close();
        return 0;
    }
    /**
     * (3) 编辑:向 HDFS 中指定的文件追加内容,由用户指定内容追加到原有文件的开头
     * 或结尾;
     */
    @Test
     public int add(String str ) throws Exception {
        FSDataOutputStream output = fileSystem.create(new Path("/信1605-1班/20163694/李婷婷.txt"));
        String s2 = "hello hadoop 20163694李婷婷";
        String s1 = s2+str;
        output.write(s1.getBytes());
        output.flush();
        output.close();
        return 0;
    }
    /**
     *  移动文件
     */
    @Test
    public int mv() throws Exception {
        Configuration conf = new Configuration();
        conf.set("fs.default.name","hdfs://localhost:9000");
        String remoteFilePath = "hdfs:///user/hadoop/text.txt";    // 源文件 HDFS 路径
        String remoteToFilePath = "hdfs:///user/hadoop/new.txt";    // 目的 HDFS 路径
        FileSystem fs = FileSystem.get(conf);
        Path srcPath = new Path(remoteFilePath);
        Path dstPath = new Path(remoteToFilePath);
        boolean result = fs.rename(srcPath, dstPath);
        fs.close();
        return result;
    }
    @Before
    public void setUp() throws Exception {
        System.out.println("连接到HDFS文件操作系统");
        configuration = new Configuration();
        fileSystem = FileSystem.get(new URI(HDFS_PATH), configuration, "jasmine");
    }
    @After
    public void tearDown() throws Exception {
        configuration = null;
        fileSystem = null;
        System.out.println("操作结束,已清除缓存\n\n\n\n\n");
    }
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 import com.immoc.hadoop.HDFSApp;
import com.immoc.hadoop.HDFS_Classtest2;
import org.junit.Test;
import java.util.Scanner;
public class Input {
    public static void main(String[] args)throws Exception {
        int flag =1;
        while(flag !=0){
        System.out.println("欢迎来到HDFS文件操作编辑器:\n输入操作功能的序号:\n");
        System.out.println("[1]:新建:新建文本文件");
        System.out.println("[2] 打开:打开指定目录下的文本文件,并将文本内容显示在编辑区");
        System.out.println("[3]编辑:向 HDFS 中指定的文件追加内容,由用户指定内容追加到原有文件的开头或结尾;");
        System.out.println("[4]退出系统");
        System.out.println("输入操作功能的序号:\n");
        Scanner in = new Scanner(System.in);
        int select = in.nextInt();
        HDFS_Classtest2 hdfs = new HDFS_Classtest2();
        hdfs.setUp();
        if(select==1){
            hdfs.create();
        }else if(select==2){
            hdfs.cat();
        }else if(select==3){
            System.out.println("请输入您想添加的内容:");
           String str = in.next();
           hdfs.add(str);
        }else if(select==4){
           flag=0;
        }else{
            System.out.println("输入错误请重新输入!");
        }
        hdfs.tearDown();
        }
    }
}
    

转载于:https://www.cnblogs.com/lijing925/p/9760875.html

你可能感兴趣的文章
苹果手表:大方向和谷歌一样,硬件分道扬镳
查看>>
ccf 出现次数最多的数
查看>>
单例模式
查看>>
Competing Consumers Pattern (竞争消费者模式)
查看>>
HDUOJ ------1398
查看>>
cf--------(div1)1A. Theatre Square
查看>>
Android面试收集录15 Android Bitmap压缩策略
查看>>
Tomcat 报错的解决方法:The APR based Apache Tomcat Native library which allows optimal
查看>>
最长公共子串问题(LCS)
查看>>
TortoiseSVN is locked in another working copy
查看>>
PHP魔术方法之__call与__callStatic方法
查看>>
ubuntu 安装后的配置
查看>>
Html学习_简易个人网页制作
查看>>
angular中ng-bind指令小案例
查看>>
jqery总结
查看>>
Lodop获取客户端主网卡ip地址是0.0.0.0
查看>>
VSCODE更改文件时,提示:EACCES: permission denied的解决办法(mac电脑系统)
查看>>
web前端之路,js的一些好书(摘自聂微东 )
查看>>
【模板】对拍程序
查看>>
微信小程序开发初体验
查看>>