HDFS API 测试用例

增加依赖

        <!--hadoop-->
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>2.9.2</version>
        </dependency>

 

编写测试用例

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import lombok.extern.slf4j.Slf4j;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

@Slf4j
public class HdfsTest {

    private static final String HDFS_PATH = "hdfs://192.168.3.127:8020";

    /**
     * 解决无权限访问,设置远程hadoop的linux用户名称
     */
    private static final String USER = "root";

    FileSystem fileSystem = null;
    Configuration configuration = null;

    @Before
    public void setUp() throws URISyntaxException, IOException, InterruptedException {

        System.setProperty("hadoop.home.dir", "D:\\app\\hadoop-2.9.2");

        configuration = new Configuration();
        fileSystem = FileSystem.get(new URI(HDFS_PATH), configuration, USER);
    }

    @After
    public void tearDown(){

        fileSystem = null;
        configuration = null;
    }

    @Test
    public void mkdirTest() throws IOException {

        String home = System.getProperty("hadoop.home.dir");
        log.info("====>hadoop_home is {}", home);
        String dirPath = "/hdfsapi/test";
        fileSystem.mkdirs(new Path(dirPath));
    }

    @Test
    public void putTest() throws IOException {

        long start = System.currentTimeMillis();

        String filePath = "E:\\ThunderDownload\\hadoop-2.9.2.tar.gz";

        String digestPaht = "/";
        fileSystem.copyFromLocalFile(new Path(filePath), new Path(digestPaht));
        long end = System.currentTimeMillis();
        log.info("====>put file cost {}", end - start);
    }
}

 

posted @ 2019-08-05 16:43  景岳  阅读(666)  评论(0编辑  收藏  举报