背景
由於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