idea远程连接hadoop并进行文件操作

idea远程连接hadoop

部署完高可用集群之后,尝试idea远程连接hadoop进行操作

配置windows中的hadoop环境

  • 下载hadoop2.6.5到windows中并放在一个纯英文目录下

  • 配置环境变量,先系统变量中创建HADOOP_HOME

在这里插入图片描述

  • 创建HADOOP_USER_NAME,名称为集群中的登录名称

    在这里插入图片描述

  • 在系统变量的Path中添加%HADOOP_HOME%/bin

  • 将hadoop.dll添加到C:\Windows\System32文件夹下

  • 在命令行中输入hdfs和hadoop,检测是否安装成功

    在这里插入图片描述

在idea中配置hadoop

在这里插入图片描述

  • 重启idea,菜单栏中会出现hadoop选项

连接hadoop,进行文件操作

  • 首先开启集群,先zkServer.sh start开启zookeeper,再start-dfs.sh开启全部节点,在配置节点前首先进入node01:50070查看node01和node02的状态。

  • 点击idea上方菜单栏中的hadoop进入设置

在这里插入图片描述

  • 确定之后左边会出现hadoop

在这里插入图片描述

  • 进行文件操作,代码具体如下,可用junit进行调试,并在hadoop插件中查看hdfs文件系统

    package com.sxt.hdfs.test;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.conf.Configured;
    import org.apache.hadoop.fs.*;
    import org.apache.hadoop.io.IOUtils;
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    
    import java.io.BufferedInputStream;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    /**
     * \* Project: hadoop
     * \* Package: com.sxt.hdfs.test
     * \* Author: Hoodie_Willi
     * \* Date: 2019-07-29 20:36:22
     * \* Description:
     * \
     */
    public class test {
        Configuration conf = null;
        FileSystem fs = null;
        @Before
        public void conn() throws IOException {
            conf = new Configuration();
            fs = FileSystem.get(conf);
            //System.out.println("success");
        }
        @Test
        public void mkdir() throws IOException {
            Path path = new Path("/mytemp");
            if (fs.exists(path)){
                fs.delete(path);
            }
            fs.mkdirs(path);
        }
        @Test
        public void uploadFile() throws IOException{
            //文件上传路径
            Path path = new Path("/mytemp/haha.txt");
            FSDataOutputStream fdos = fs.create(path);
            //获取磁盘文件
            InputStream is = new BufferedInputStream(new FileInputStream("D:\\IdeaProject\\hadoop\\src\\files\\hello.txt"));
            IOUtils.copyBytes(is, fdos, conf, true);
        }
        @Test
        public void readFile() throws IOException{
            Path f = new Path("/user/root/test.txt");
            FileStatus file = fs.getFileStatus(f);
    //        BlockLocation[] blks = fs.getFileBlockLocations(file,0, file.getLen());
    //        for (BlockLocation blk : blks){
    //            System.out.println(blk);
    //        }
            //读取文件
            FSDataInputStream fdis = fs.open(f); // fileinputstream
            fdis.seek(1048576);
            System.out.println((char) fdis.readByte());
            System.out.println((char) fdis.readByte());
            System.out.println((char) fdis.readByte());
            System.out.println((char) fdis.readByte());
            System.out.println((char) fdis.readByte());
        }
        //@After
        public void close() throws IOException{
            fs.close();
        }
    }
    
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值