Hdfs java API

2023-12-13 10:36:55

1.在主机上启动hadoop

sbin/start-all.sh

这里有一个小窍门,可以在本机上打开8088端口查看三台机器的连接状态,以及可以打开50070端口,查看hdfs文件状况。以我的主虚拟机为例,ip地址为192.168.198.200,所以可以采用下面这种方法使用这两个端口:

http://192.168.198.200:8088/
http://192.168.198.200:500070/

没有对hdfs进行任何操作的话,50070端口不会有任何文件显示,这是正常的,不代表发生了异常。8088端口显示的节点正常来说至少要为3,不对的话,说明有从机启动失败,此时就需要到各个从机节点处排错,检查配置文件和环境变量事都有异常。排错完成后重启hadoop

---------------------------------------------------------------------------------------------------------------------------------

2.采用简单命令检查hdfs配置是否正常

采用这个命令查看hdfs目录,没有进行任何操作的话不会有任何显示,这是正常的现象

hadoop fs -ls /

---------------------------------------------------------------------------------------------------------------------------------

3.在idea中创建maven项目

jdk要采用和本机一致的jdk版本,Archetype随便选即可

可以使用java -version命令,查看本机jdk版本

---------------------------------------------------------------------------------------------------------------------------------

4.下载Hdfs依赖

在pom.xml中修改,有一个单独的文件,不是target目录下的pom.xml文件!

在project标签中插入以下内容:

<dependencies>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-client</artifactId>
      <version>3.3.4</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-hdfs</artifactId>
      <version>3.3.4</version>
    </dependency>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>
      <version>3.3.4</version>
    </dependency>
  </dependencies>

要选择和hadoop版本一致的依赖文件的版本,我的hadoop版本是3.3.4所以version标签是3.3.4,修改完成后要按提示下载依赖配置文件,然后静静的等待这些文件下载即可

---------------------------------------------------------------------------------------------------------------------------------

5.创建java类

在main文件夹下创建java文件夹,创建java类。但是这里不会一开始就建立主类,要自行调整为主类(New->dictionary->class)

---------------------------------------------------------------------------------------------------------------------------------

6.编写java代码

首先要配置本机环境变量,这一步必须提前设置,不然后续会出现权限错误报错!

代码如下:

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.hadoop.hdfs.DistributedFileSystem;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class test {
    public static void main( String[] args ) throws IOException, URISyntaxException, InterruptedException {
        Configuration config = new Configuration();
        config.set("fs.defaultFS", "hdfs://192.168.198.200:9000");
        FileSystem hdfs = FileSystem.get(new URI("hdfs://192.168.198.200:9000"),config,"root");
        Path local = new Path("file:/C:/Users/csr/Desktop/ihadoop.txt");
        Path remote = new Path("hdfs://192.168.198.200:9000/test/ihadoop.txt");
        hdfs.copyFromLocalFile(local, remote);
        System.out.print("file upload success!");
        hdfs.close();
    }
}

其中ip地址,文件地址替换为对应的正确地址即可,不要直接复制粘贴

---------------------------------------------------------------------------------------------------------------------------------

7.检查文件

输入指令查看或者在50070端口查看

---------------------------------------------------------------------------------------------------------------------------------

8.其他操作

和linux中文件的操作基本类似

1.查看目录:hadoop fs -ls /文件夹名字
2.删除文件夹:bin/hdfs dfs -rm -r /文件夹名
  删除文件:bin/hdfs dfs -rm -f /文件夹名/文件名
3.创建文件夹:hadoop fs -mkdir /文件夹名
4.创建文件:mkdir 文件名(hadoop)

文章来源:https://blog.csdn.net/weixin_61023150/article/details/134964138
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。