Hdfs java API

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 java API_第1张图片

Hdfs java API_第2张图片

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

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

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

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

hadoop fs -ls /

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

3.在idea中创建maven项目

Hdfs java API_第3张图片

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

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

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

4.下载Hdfs依赖

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

Hdfs java API_第4张图片

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


    
      org.apache.hadoop
      hadoop-client
      3.3.4
    
    
      org.apache.hadoop
      hadoop-hdfs
      3.3.4
    
    
      org.apache.hadoop
      hadoop-common
      3.3.4
    
  

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

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

5.创建java类

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

Hdfs java API_第5张图片

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

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)

你可能感兴趣的:(学习)