HDFS JAVA API(Hadoop3.0系列)

本文档详细介绍了如何在Linux环境下配置和启动Hadoop,使用Eclipse创建Java项目,通过Apache Hadoop的Java API进行HDFS的基本操作,包括创建目录、写文件、读取文件、上传下载文件、列出文件信息以及查找文件块信息等步骤,旨在帮助读者掌握Hadoop的本地开发环境搭建和文件系统操作。
  1. 实验环境:
    Linux Ubuntu 16.04

    jdk-8u191-linux-x64
    
    hadoop-3.0.0
    
    hadoop-eclipse-plugin-2.7.3.jar 
    
    eclipse-java-juno-SR2-linux-gtk-x86_64
    
  2. 切换目录到/apps/hadoop/sbin下,启动hadoop。

    view plain copy
    cd /apps/hadoop/sbin  
    ./start-all.sh  
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210331174300426.png)
    
  3. 在Linux本地创建/data/hadoop4目录
    mkdir -p /data/hadoop4

  4. 切换到/data/hadoop4目录,用wget命令,从…网址上下载依赖包hadoop2lib.tar.gz,并解压到当前目录。

  5. 打开clipse,新建JAVA项目,名为hadoop4。
    在这里插入图片描述

  6. 在hadoop4项目下新建包,名为my.hdfs。
    在这里插入图片描述

  7. 在hadoop4项目下创建目录,名为hadoop4lib,用于存放项目所需依赖包。
    在这里插入图片描述

  8. 从/data/hadoop4/hadoop2lib目录下拷贝所有jar包到项目下的hadoop4lib目录
    在这里插入图片描述

  9. 选中hadoop4lib里面的所有jar包,右键点击BuildPath=>Add to Build Path选项。
    在这里插入图片描述

  10. 这样就将jar包加载到项目里面了,然后是进行Java API对HDFS的各种基本操作。
    在这里插入图片描述

  11. 在my.hdfs包下,新建类MakeDir,程序功能是在HDFS的根目录下,创建名为hdfstest的目录

       ```java
       package my.hdfs;  
       import java.io.IOException;  
       import java.net.URI;  
       import java.net.URISyntaxException;  
       import org.apache.hadoop.conf.Configuration;  
       import org.apache.hadoop.fs.FileSystem;  
       import org.apache.hadoop.fs.Path;  
       public class MakeDir {  
           public static void main(String[] args) throws IOException, URISyntaxException {  
               Configuration conf = new Configuration();  
         
               String hdfsPath = "hdfs://localhost:9000";  
               FileSystem hdfs = FileSystem.get(new URI(hdfsPath), conf);  
         
               String newDir = "/hdfstest";  
         
               boolean result = hdfs.mkdirs(new Path(newDir));  
               if (result) {  
                   System.out.println("Success!");  
               }else {  
                   System.out.println("Failed!");  
               }  
           }  
       }  
       ```
    
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210331175637749.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0NhbmR5bHg=,size_16,color_FFFFFF,t_70)
  1. 点击运行
    在这里插入图片描述
  2. 在Eclipse里执行,然后在HDFS上查看实验结果
    在这里插入图片描述
  3. 在my.hdfs包下,新建类TouchFile,程序功能是在HDFS的目录/hdfstest下,创建名为touchfile的文件
package my.hdfs;  
import java.io.IOException;  
import java.net.URI;  
import java.net.URISyntaxException;  
import org.apache.hadoop.conf.Configuration;  
import org.apache.hadoop.fs.FSDataOutputStream;  
import org.apache.hadoop.fs.FileSystem;  
import org.apache.hadoop.fs.Path;  
public class TouchFile {
   
     
    public static void main(String[] args) throws IOException, URISyntaxException {
   
     
        Configuration configuration = new Configuration();  
  
        String hdfsPath = "hdfs://localhost:9000";  
        FileSystem hdfs = FileSystem.get(new URI(hdfsPath), configuration);  
  
        String filePath = "/hdfstest/touchfile";  
  
        FSDataOutputStream create = hdfs.create(new 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值