IDEA连接本地虚拟机HDFS集群(远程也可用)
本次环境如下:
集群信息:
虚拟机ip | 虚拟机hostname | 虚拟机操作系统 | 虚拟机类型 |
---|---|---|---|
192.168.0.177 | ambari-1 | Centos7 | Master |
192.168.0.178 | ambari-2 | Centos7 | Slave |
192.168.0.179 | ambari-3 | Centos7 | Slave |
Hadoop:2.7.1
IDEA:2019.3.4
主要按照以下几个思路走:
1.用IDEA创建Maven项目
2.导入Hadoop对应jar包
3.导入Hadoop配置文件
4.创建测试类
5.测试成功!
1.用IDEA创建Maven项目
1.1 打开IDEA
1.2 New Project
左侧选择Maven项目,选择jdk,建议是万能的1.8。
1.3 Maven配置
GroupID随便写,项目名也随便写,然后点finish。
1.4 等待配置成功
因为IDEA要从远程服务器上下载Maven依赖环境,所以这里需要等待一段时间,慢是正常的。
顺带提一下为什么要用Maven,其实普通的项目也是可以的,使用Maven是为了方便我们导入和同步jar包,
只需要几行dependency,就能安装对应版本的jar包,很是方便,尤其是Hadoop这种。
等到目录结构出来,也就说明Maven环境成功建立,可以进行下一步了,没有出来的不要着急,继续等或者百度相关关键词。
2.导入Hadoop对应jar包
本次一共使用4个jar包:
junit-4.12
hadoop-common-2.7.1
hadoop-hdfs-2.7.1
hadoop-client-2.7.1
其中2.7.1是Hadoop版本号,根据自己所安装的Hadoop版本进行变动。
因为使用的是Maven项目,所以在pom.xml里面把依赖包导入。
下面是pom.xml
<?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>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.7.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-hdfs -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.7.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.7.1</version>
</dependency>
</dependencies>
<groupId>progbin</groupId>
<artifactId>HadoopTest</artifactId>
<version>1.0-SNAPSHOT</version>
</project>
3.导入Hadoop配置文件
把集群上Master节点里的core-site.xml和hdfs-site.xml放在src/main/resources(根目录)下
这两个配置文件在/hadoop/etc/hadoop 目录下。
4.创建测试类
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.IOException;
public class HdfsTest {
public static void main(String[] args) {
try {
String filename = "hdfs://ambari-1:8020/user/test/jdk-8u201-linux-x64.tar.gz";
Configuration conf = new Configuration();
FileSystem fs = null;
fs = FileSystem.get(conf);
if (fs.exists(new Path(filename))){
System.out.println("the file is exist");
}else{
System.out.println("the file is not exist");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
其中ambari-1:8020 是Master节点的host,如果是Windows主机,可以修改hosts.txt把Master节点的映射加入进去
如果不知道的话,可以查看core-site.xml里面的fs.defaultFS这个属性名
由于每个人的配置文件不相同,如果是使用Ambari配置的Hadoop则是可以正常使用,因为Ambari都配置好了,
如果是自己装的Hadoop则是需要先配置core-site.xml和hdfs-site.xml。
5.测试成功!
搞腚!