当前位置 主页 > 服务器问题 > Linux/apache问题 >

    使用Maven搭建Hadoop开发环境

    栏目:Linux/apache问题 时间:2019-10-22 10:01

    关于Maven的使用就不再啰嗦了,网上很多,并且这么多年变化也不大,这里仅介绍怎么搭建Hadoop的开发环境。

    1. 首先创建工程

    复制代码 代码如下:mvn archetype:generate -DgroupId=my.hadoopstudy -DartifactId=hadoopstudy -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

    2. 然后在pom.xml文件里添加hadoop的依赖包hadoop-common, hadoop-client, hadoop-hdfs,添加后的pom.xml文件如下

    <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>my.hadoopstudy</groupId>
     <artifactId>hadoopstudy</artifactId>
     <packaging>jar</packaging>
     <version>1.0-SNAPSHOT</version>
     <name>hadoopstudy</name>
     <url>http://maven.apache.org</url>
    
     <dependencies>
     <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-common</artifactId>
      <version>2.5.1</version>
     </dependency>
     <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-hdfs</artifactId>
      <version>2.5.1</version>
     </dependency>
     <dependency>
      <groupId>org.apache.hadoop</groupId>
      <artifactId>hadoop-client</artifactId>
      <version>2.5.1</version>
     </dependency>
    
     <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
     </dependency>
     </dependencies>
    </project>
    
    

    3. 测试

    3.1 首先我们可以测试一下hdfs的开发,这里假定使用上一篇Hadoop文章中的hadoop集群,类代码如下

    package my.hadoopstudy.dfs;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FSDataOutputStream;
    import org.apache.hadoop.fs.FileStatus;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    import org.apache.hadoop.io.IOUtils;
    
    import java.io.InputStream;
    import java.net.URI;
    
    public class Test {
     public static void main(String[] args) throws Exception {
     String uri = "hdfs://9.111.254.189:9000/";
     Configuration config = new Configuration();
     FileSystem fs = FileSystem.get(URI.create(uri), config);
    
     // 列出hdfs上/user/fkong/目录下的所有文件和目录
     FileStatus[] statuses = fs.listStatus(new Path("/user/fkong"));
     for (FileStatus status : statuses) {
      System.out.println(status);
     }
    
     // 在hdfs的/user/fkong目录下创建一个文件,并写入一行文本
     FSDataOutputStream os = fs.create(new Path("/user/fkong/test.log"));
     os.write("Hello World!".getBytes());
     os.flush();
     os.close();
    
     // 显示在hdfs的/user/fkong下指定文件的内容
     InputStream is = fs.open(new Path("/user/fkong/test.log"));
     IOUtils.copyBytes(is, System.out, 1024, true);
     }
    }
    
    

    3.2 测试MapReduce作业