黑猴子的家:API 操作 HDFS 获取文件系统

本文介绍了两种在Java中初始化HDFS文件系统的方法。第一种是通过直接在代码中设置参数,包括NameNode的地址和数据块的复制次数。第二种方法则是在src根目录下创建并配置core-site.xml文件,通过读取此文件来初始化HDFS,避免了每次在代码中重复设置参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Code -> GitHub

https://github.com/liufengji/hadoop_hdfs.git

2、方法一

 import static org.junit.Assert.*; 
 import java.net.URI; 
 import org.apache.hadoop.conf.Configuration; 
 import org.apache.hadoop.fs.BlockLocation; 
 import org.apache.hadoop.fs.FileStatus; 
 import org.apache.hadoop.fs.FileSystem; 
 import org.apache.hadoop.fs.LocatedFileStatus; 
 import org.apache.hadoop.fs.Path; 
 import org.apache.hadoop.fs.RemoteIterator; 
 import org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.NewAppWeightBooster; 
 import org.junit.Test; 
 import sun.nio.ch.Net; 

  //HDFS  获取文件系统 
  @Test 
  public void initHDFS() throws Exception { 
       //1.  创建对象 
       Configuration configuretion = new Configuration(); 
       //2.  设置参数 
       configuretion.set("fs.defaultFS","hdfs://node1:9000"); 
       configuretion.set("dfs.replication", "3"); 
       //3  获取文件系统 
       FileSystem fs = FileSystem.get(configuretion); 
       //4  打印 
       System.out.println(fs.toString()); 
  } 

3、方法二

(1) 首先src根目录下创建 core-site.xml ,配置信息如下

9193428-2e0404ff4df7a2f9.png

 <?xml version="1.0" encoding="UTF-8"?> 
 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
 <configuration> 

       <!--   指定  HDFS  中  NameNode  的地址   --> 
       <property> 
            <name>fs.defaultFS</name> 
            <value>hdfs://node1:9000</value> 
       </property> 

       <!--   指定  hadoop  运行时产生文件的存储目录   --> 
       <property> 
            <name>hadoop.tmp.dir</name> 
            <value>/opt/module/hadoop-2.8.2/data/tmp</value> 
       </property> 

 </configuration> 

(2) 不用配置参数了,默认读取core-site.xml 信息

  //HDFS  获取文件系统 
  @Test 
  public void initHDFS() throws Exception { 
       //1.  创建对象 
       Configuration configuretion = new Configuration(); 

       //2  获取文件系统 
       FileSystem fs = FileSystem.get(configuretion); 

       //3  打印 
       System.out.println(fs.toString()); 
  } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值