使用javaAPI的方式远程链接HDFS
首先项目进行maven管理
我这边使用的hadoop是2.5.0 进行学习
远程在win上面使用ide开发工具进行链接hadoop
首先创建maven工程
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>hadoop-demo</groupId>
<artifactId>hadoop-hdfs-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.5.0</version>
</dependency>
</dependencies>
</project>
然后在resources 导入在 hadoop-2.5.0/etc/hadoop/目录下面的 core-site.xml文件和hdfs-site.xml文件
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.1.129:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/modules/hadoop-2.5.0/data/tmp</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>420</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
创建类
package com.ibeifeng.hadoop.senior.hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
/**
* HDFS 远程
* @author DavidGHS
*/
public class HdfsApp {
public static void main(String[] args) throws Exception {
//默认加载 core-site.xml core-defult.xml hdfs-site.xml hdfs-defult.xml
Configuration configuration = new Configuration();
//获取文件系统
FileSystem fileSystem = FileSystem.get(configuration);
System.out.println(fileSystem);
}
}
在运行后 正常是可以输出
DFS[DFSClient[clientName=DFSClient_NONMAPREDUCE_2112275376_1, ugi=Administrator (auth:SIMPLE)]]
这种参数的
如果输出来那么就是获取了文件系统
如果没有 那么就是可能你的配置文件配置错误
希望可以帮助到你