idea 搭建hadoop开发环境

前文学习了hadoop一些的理论知识,本文介绍如何在idea上搭建hadoop开发环境,进行实战编程。

1、创建项目:File-->new-->Project

idea 搭建hadoop开发环境1

2、创建项目名

idea 搭建hadoop开发环境2

3、pom.xml添加相关hadoop jar包依赖,我本地虚拟机部署的是hadoop 2.10.0版本,配置如下:

<?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>com.oraclejsq.www</groupId>
    <artifactId>myHadooop</artifactId>
    <version>1.0-SNAPSHOT</version>
    
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <hadoop.version>2.10.0</hadoop.version>
    </properties>


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

    <build>
        <finalName>${project.artifactId}</finalName>
    </build>

</project>

4、加载好相关依赖jar包后,就可以开始编写一个简单的hadoop程序,查找一个特定的文件是否存在,如下:

idea 搭建hadoop开发环境4

package hdfs;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class HdfsLearn {
    public static void main(String[] args) {
        try {
            String filename = "hdfs://192.168.100.100:9000/NOTICE.txt";
            Configuration conf = new Configuration();
            //conf.set("fs.defaultFS", "hdfs://192.168.100.100:9000");
            FileSystem fs = FileSystem.get(conf);
            if(fs.exists(new Path(filename))){
                System.out.println("文件存在");
            }else{
                System.out.println("文件不存在");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

5、运行代码看下情况,发现会遇到如下报错信息,那是虽然你的远程hdfs系统已经运行,但是本地开发运行也需要core-site.xml和hdfs-site.xml这两个配置文件知道要访问的hdfs文件部署在哪里,所以把集群上/hadoop/etc/hadoop目录下的两个配置文件复制到当前工程项目下。

idea 搭建hadoop开发环境5

 

6、再次运行项目,发现可以正常运行了。

idea 搭建hadoop开发环境6

7、也可以利用conf.set方法告知配置类,要访问的具体hadoop hdfs文件系统的地址,如下也可以正常访问文件系统。

conf.set("fs.defaultFS", "hdfs://192.168.100.100:9000");

idea 搭建hadoop开发环境7