java程式員的大資料之路(3):用maven構建Hadoop項目__hadoop

來源:互聯網
上載者:User
背景

由於Hadoop項目多數是比較大的項目,因此我們選擇使用構建工具來構建Hadoop項目,這裡我們使用的是maven。當然也可以使用Gradle等比較流行的構建工具 構建過程

這裡總結一下我使用Intellij idea開發maven項目的過程。 建立maven工程

首先建立一個maven項目

不需要勾選Create from archetype,根據項目填寫GroupId和ArtifactId,然後填寫工程名及工程路徑。
Finish之後我們就建立出了一個maven項目 配置pom.xml

接下來添加依賴,我使用的是最新的穩定版本Hadoop 2.7.4
需要添加以下依賴: hadoop-common hadoop-hdfs hadoop-mapreduce-client-core hadoop-mapreduce-client-jobclient log4j
修改後的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>    <groupId>mavenHadoop</groupId>    <artifactId>mavenHadoop</artifactId>    <version>1.0-SNAPSHOT</version>    <repositories>        <repository>            <id>apache</id>            <url>http://maven.apache.org</url>        </repository>    </repositories>    <dependencies>        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.12</version>            <scope>test</scope>        </dependency>        <dependency>            <groupId>org.apache.hadoop</groupId>            <artifactId>hadoop-common</artifactId>            <version>2.7.4</version>        </dependency>        <dependency>            <groupId>org.apache.hadoop</groupId>            <artifactId>hadoop-hdfs</artifactId>            <version>2.7.4</version>        </dependency>        <dependency>            <groupId>org.apache.hadoop</groupId>            <artifactId>hadoop-mapreduce-client-core</artifactId>            <version>2.7.4</version>        </dependency>        <dependency>            <groupId>org.apache.hadoop</groupId>            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>            <version>2.7.4</version>        </dependency>        <dependency>            <groupId>log4j</groupId>            <artifactId>log4j</artifactId>            <version>1.2.17</version>        </dependency>    </dependencies></project>
配置log4j

配置log4j,用於列印日誌,方便調試

log4j.rootLogger = debug,stdout### 輸出資訊到控制抬 ###log4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

配置好之後,如果沒有啟動Hadoop,需要先啟動Hadoop。 配置 Run/Debug Configurations

啟動Hadoop後,配置運行參數。選擇main函數所在類,填寫輸入檔案和輸出路徑。(詳細見上一篇文章:java程式員的大資料之路(2):建立第一個Hadoop程式)
可以現在本地運行WordCount,運行前要保證輸出路徑不存在,為避免每次都要刪除輸出路徑,可以在代碼中實現。

import java.io.File;public class FileUtil {    public static boolean deleteDir(String path) {        File dir = new File(path);        if(dir.exists()) {            for(File f:dir.listFiles()) {                if(f.isDirectory()) {                    deleteDir(f.getName());                }else {                    f.delete();                }            }            dir.delete();            return true;        }else {            System.out.printf("file do not exist");            return false;        }    }}
讀取HDFS檔案

如果上一步中輸入路徑配置為HDFS的檔案路徑,就可以直接讀取HDFS中的檔案,但是FileUtil類不會起作用。編碼調用HDFS的過程我會在之後進行分享。 參考文章

http://www.cnblogs.com/licheng/p/6833342.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.