javaAPI 连接 HDFS 高可用配置

1.引入jar包
<properties>
    <hdfs.version>2.8.2</hdfs.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-hdfs</artifactId>
      <version>${hdfs.version}</version>
    </dependency>

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

2.将 hdfs-site.xml 配置文件放到项目resources根目录下或项目根目录下,这样代码中 Configuration 对象在new 了之后会自动读取配置,代码里只需要配置一下hdfs地址即可

 private Configuration config ;
 private FileSystem fs ;

//		实例化
 config = new Configuration();
 config.set("fs.defaultFS", "hdfs://mycluster");

 fs = FileSystem.get(config);

3.这样就可以使用 FileSystem 来操作了,如果没有加 fs.defaultFS 的配置的话就会默认读写本地磁盘。。。

hdfs路径就是 core-site.xml 里面配置的

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://mycluster</value>
</property>
因为 hdfs-site.xml 中的配置文件会引用这个 属性,所以,把配置文件加进来 client 就可以找到当前 active 的 namebnode 了,如下:
<property>  
    <name>dfs.nameservices</name>  
    <value>mycluster</value>  
</property> 
  <!--配置集群中所有的namenode节点的namenodeid-->   
<property>  
    <name>dfs.ha.namenodes.mycluster</name>  <!-- 格式为dfs.ha.namenodes.[nameservices id] -->
    <value>NN-93,NN-92</value> <!-- namenodeid可以自定义,下方的其他配置与其保持一致即可 -->
</property>

4. windows系统里需要一个插件,如果没有的话会报错(null/bin/winutils.exe),但是不会影响结果,这里有个链接,下载之后解压,然后配置环境变量 HADOOP_HOME 指向这里即可

https://pan.baidu.com/s/1pMGvBuV


环境变量配置后可能需要重启电脑才有效,具体可以百度 “windows 环境变量 生效” 

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值