win10下IDEA连接虚拟机上的HDFS实现文件操作

要在windows下连接虚拟机上的HDFS首先要保证windows下有java环境和hadoop环境

    这里给出hadoop在windows下的配置方法跳转windows下hadoop环境配置,java环境的配置可以搜相关教程。

IDEA连接虚拟机上的HDFS

一、环境准备

  1.   JDK-13
  2.   IDEA2020.3
  3.   Ubutun 18.04
  4.   Hadoop 2.10.1

二、big data tools插件连接HDFS

安装步骤

     1.   打开IDEA,进入插件下载,点击左上角File->Settings-> Plugins,输入big data tools进行下载。

在这里插入图片描述

    2.  打开big data tools 进行配置
打开侧边栏的big data tools 新增一个hdfs。
在这里插入图片描述
然后进行ip地址的配置.,
在这里插入图片描述
HDFS开放的端口地址通过如下方法可以获取,首先在虚拟机中通过ifconfig指令,获取到当前虚拟机的ip地址,然后在虚拟机hadoop安装目录下/etc/hadoop/core-site.xml文件,显示如下
在这里插入图片描述
,然后将big data tools的url设置为文件中的地址。这里要注意如果你的是9000端口开放则客户端无法访问到这个端口,可以将9000修改为8020。
最终如下:点击ok即可。
在这里插入图片描述

    3.  打开big data tools 进行配置

三、通过代码方式连接远程HDFS

连接hadoop所需要的maven依赖:

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client -->
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>2.7.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common -->
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>2.7.2</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-hdfs -->
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-hdfs</artifactId>
        <version>2.7.2</version>
    </dependency>
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;

public class Read {
    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
        conf.set("fs.defaultFS", "hdfs://192.168.164.134:8020");//这里填写你的hdfs端口
        FileSystem fs = FileSystem.get(conf);
        System.out.println(fs);
        FSDataInputStream fis = fs.open(new Path("/input/file1.txt"));
        IOUtils.copyBytes(fis,System.out,4096,true);
    }
}

四、报错解决

  1. 连接服务器时,出现Connection refused: no further information异常
        (1)首先检查主机和虚拟机之间的通信,通过ping命令进行检测主机和虚拟机之间是否连通。如果主机无法ping通虚拟机,则首先通过sudo ufw disable关闭虚拟机防火墙,然后检查主机网络连接,是否存在VMent1 和VMnet8 ,然后分别对这两个网络连接进行诊断,重新定位IP地址。然后通过ping命令,看看主机能否正常连接虚拟机。若正常则进行下一步。

在这里插入图片描述
在这里插入图片描述

    (2) 检查虚拟机能够ping通主机,如果不能ping通主机,则可能是由于主机防火墙的原因,直接的办法就是关闭主机的防火墙,然后再次尝试ping主机IP,一般都能够成功。如果想不通过关闭防火墙ping通主机,可在百度上自行查找资料,修改虚拟机网络连接配置。这里采用的是关闭主机的防火墙。
    (3)如果主机和虚拟机能够互相ping通,则可以进行idea连接hdfs操作了。运行上述代码或者通过big data tools连接即可.

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值