国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Eclipse+Maven構(gòu)建Hadoop項目的方法步驟

Eclipse+Maven構(gòu)建Hadoop項目的方法步驟

2021-07-15 11:27Eric Chan Java教程

這篇文章主要介紹了Eclipse+Maven構(gòu)建Hadoop項目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

maven 翻譯為”專家”、”內(nèi)行”,是 apache 下的一個純 java 開發(fā)的開源項目。基于項目對象模型(project object model 縮寫:pom)概念,maven利用一個中央信息片斷能管理一個項目的構(gòu)建、報告和文檔等步驟。maven 是一個項目管理工具,可以對 java 項目進行構(gòu)建、依賴管理。

在開發(fā)一些大型項目的時候,需要用到各種各樣的開源包jar,為了方便管理及加載jar,使用maven開發(fā)項目可以節(jié)省大量時間且方便項目移動至新的開發(fā)環(huán)境。

開發(fā)環(huán)境

  • 系統(tǒng):macos 10.14.1
  • hadoop:2.7.0
  • java:1.8.0
  • eclipse:4.6.2
  • maven: 3.3.9

maven安裝

我使用的這個版本的eclipse已經(jīng)自帶了maven插件,不需要在自行安裝,因此我也沒有實際操作,本文就不介紹如何配置。

至于怎么知道自己使用的eclipse是否自帶有maven,可以在eclipse->preference->maven->installations查看是否有maven及版本號。或者直接新建項目查看是否有maven選項。

Eclipse+Maven構(gòu)建Hadoop項目的方法步驟

構(gòu)建hadoop環(huán)境

創(chuàng)建maven項目

打開eclipse,file->new->project,選擇maven,然后下一步next

Eclipse+Maven構(gòu)建Hadoop項目的方法步驟

選擇creat a simple project,然后下一步next

Eclipse+Maven構(gòu)建Hadoop項目的方法步驟

輸入group id和artifact id。然后finish。

groupid和artifactid被統(tǒng)稱為“坐標(biāo)”是為了保證項目唯一性而提出的,如果你要把你項目弄到maven本地倉庫去,你想要找到你的項目就必須根據(jù)這兩個id去查找。

groupid一般分為多個段,這里我只說兩段,第一段為域,第二段為公司名稱。域又分為org、com、cn等等許多,其中org為非營利組織,com為商業(yè)組織。舉個apache公司的tomcat項目例子:這個項目的groupid是org.apache,它的域是org(因為tomcat是非營利項目),公司名稱是apache,artigactid是tomcat。

比如我創(chuàng)建一個項目,我一般會將groupid設(shè)置為cn.snowin,cn表示域為中國,snowin是我個人姓名縮寫,artifactid設(shè)置為testproj,表示你這個項目的名稱是testproj,依照這個設(shè)置,你的包結(jié)構(gòu)最后是cn.snowin.testproj打頭。(引自 鏈接 )

Eclipse+Maven構(gòu)建Hadoop項目的方法步驟

完成上述步驟后,就可以在project explorer中看到剛剛創(chuàng)建的maven項目。

Eclipse+Maven構(gòu)建Hadoop項目的方法步驟

增加hadoop依賴

我使用的hadoop 2.7版本,以下是我的pom配置文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<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>practice.hadoop</groupid>
    <artifactid>simple-examples</artifactid>
    <version>0.0.1-snapshot</version>
    <packaging>jar</packaging>
 
    <name>simple-examples</name>
    <url>http://maven.apache.org</url>
 
    <properties>
        <project.build.sourceencoding>utf-8</project.build.sourceencoding>
    </properties>
 
    <dependencies>
        <dependency>
            <groupid>junit</groupid>
            <artifactid>junit</artifactid>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common -->
        <dependency>
            <groupid>org.apache.hadoop</groupid>
            <artifactid>hadoop-common</artifactid>
            <version>2.7.0</version>
        </dependency>
 
        <dependency>
            <groupid>org.apache.hadoop</groupid>
            <artifactid>hadoop-hdfs</artifactid>
            <version>2.7.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client -->
        <dependency>
            <groupid>org.apache.hadoop</groupid>
            <artifactid>hadoop-client</artifactid>
            <version>2.7.0</version>
        </dependency>
        
        <dependency>
            <groupid>org.apache.mrunit</groupid>
            <artifactid>mrunit</artifactid>
            <version>1.1.0</version>
            <classifier>hadoop2</classifier>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-mapreduce-client-core -->
        <dependency>
            <groupid>org.apache.hadoop</groupid>
            <artifactid>hadoop-mapreduce-client-core</artifactid>
            <version>2.7.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-yarn-api -->
        <dependency>
            <groupid>org.apache.hadoop</groupid>
            <artifactid>hadoop-yarn-api</artifactid>
            <version>2.7.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-auth -->
        <dependency>
            <groupid>org.apache.hadoop</groupid>
            <artifactid>hadoop-auth</artifactid>
            <version>2.7.0</version>
        </dependency>
 
        <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-minicluster -->
        <dependency>
            <groupid>org.apache.hadoop</groupid>
            <artifactid>hadoop-minicluster</artifactid>
            <version>2.7.0</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-mapreduce-client-jobclient -->
        <dependency>
            <groupid>org.apache.hadoop</groupid>
            <artifactid>hadoop-mapreduce-client-jobclient</artifactid>
            <version>2.7.0</version>
            <scope>provided</scope>
        </dependency>
 
    </dependencies>
</project>

在project explorer中右鍵該項目,選擇build project,maven就會根據(jù)pom.xml配置文件下載所需要的jar包。

Eclipse+Maven構(gòu)建Hadoop項目的方法步驟

稍等一段時間后,就可以看到maven dependencies中已經(jīng)下載好的jar包。

Eclipse+Maven構(gòu)建Hadoop項目的方法步驟

hadoop配置文件

運行 mapreduce 程序前,務(wù)必將 /usr/local/cellar/hadoop/2.7.0/libexec/etc/hadoop 中將有修改過的配置文件(如偽分布式需要core-site.xml 和 hdfs-site.xml),以及l(fā)og4j.properties復(fù)制到 src/main/resources/

Eclipse+Maven構(gòu)建Hadoop項目的方法步驟

mapreduce實例—wordcount

src/main/java/ 路徑下,創(chuàng)建java文件,代碼如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import java.io.ioexception;
import java.util.stringtokenizer;
 
import org.apache.hadoop.conf.configuration;
import org.apache.hadoop.fs.path;
import org.apache.hadoop.io.intwritable;
import org.apache.hadoop.io.text;
import org.apache.hadoop.mapreduce.job;
import org.apache.hadoop.mapreduce.mapper;
import org.apache.hadoop.mapreduce.reducer;
import org.apache.hadoop.mapreduce.lib.input.fileinputformat;
import org.apache.hadoop.mapreduce.lib.output.fileoutputformat;
import org.apache.hadoop.util.genericoptionsparser;
 
public class wordcount {
 
    public static class tokenizermapper extends mapper<object, text, text, intwritable> {
 
        /**
         * longwritable, intwritable, text 均是 hadoop 中實現(xiàn)的用于封裝 java
         * 數(shù)據(jù)類型的類,這些類實現(xiàn)了writablecomparable接口,
         * 都能夠被串行化從而便于在分布式環(huán)境中進行數(shù)據(jù)交換,你可以將它們分別視為long,int,string 的替代品。
         */
        private final static intwritable one = new intwritable(1); // 值為1
        private text word = new text();
 
        public void map(object key, text value, context context) throws ioexception, interruptedexception {
            stringtokenizer itr = new stringtokenizer(value.tostring()); // 對字符串進行切分
            while (itr.hasmoretokens()) {
                word.set(itr.nexttoken());
                context.write(word, one);
            }
        }
    }
 
    public static class intsumreducer extends reducer<text, intwritable, text, intwritable> {
        private intwritable result = new intwritable();
 
        public void reduce(text key, iterable<intwritable> values, context context)
                throws ioexception, interruptedexception {
            int sum = 0;
            for (intwritable val : values) {
                sum += val.get();
            }
            result.set(sum);
            context.write(key, result);
        }
    }
 
    public static void main(string[] args) throws exception {
        configuration conf = new configuration();
    conf.addresource("classpath:/hadoop/core-site.xml");
    conf.addresource("classpath:/hadoop/hdfs-site.xml");
    conf.addresource("classpath:/hadoop/mapred-site.xml");
//      string[] otherargs = new genericoptionsparser(conf, args).getremainingargs();
        string[] otherargs = {"/input", "/output"};
        if (otherargs.length != 2) {
            system.err.println("usage: wordcount <in> <out>");
            system.exit(2);
        }
        job job = new job(conf, "word count");
        job.setjarbyclass(wordcount.class);
        job.setmapperclass(tokenizermapper.class);
        job.setcombinerclass(intsumreducer.class);
        job.setreducerclass(intsumreducer.class);
        job.setoutputkeyclass(text.class);
        job.setoutputvalueclass(intwritable.class);
        fileinputformat.setinputdirrecursive(job, true);
        fileinputformat.addinputpath(job, new path(otherargs[0]));
        fileoutputformat.setoutputpath(job, new path(otherargs[1]));
        system.exit(job.waitforcompletion(true) ? 0 : 1);
    }
 
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://hareric.com/2019/02/01/Eclipse+Maven構(gòu)建Hadoop項目/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲视频一区二区三区 | 欧美精品久久久 | 亚洲视频 欧美视频 | 久久久一区二区三区 | 亚洲精品久久久久久久久久吃药 | 欧美激情视频一区二区三区在线播放 | 国产精品久久久久一区二区三区 | 亚洲高清视频在线 | 激情网站免费 | 久久中文在线观看 | 欧美中文字幕 | 精品久久久久久久久久久久 | 成人免费黄色毛片 | 国产一级一级国产 | 偷拍一区二区 | 操少妇逼视频 | 91亚洲国产 | 色综合天天综合网国产成人网 | 女人性做爰免费网站 | 国产人妖视频 | 日韩精品一区二区三区第95 | 91视频进入 | 午夜tv| 国产成人久久一区二区三区 | 久久中文字幕网 | 欧美亚洲一区 | 99久久久国产精品 | 中文字幕第一区 | 久久综合久久久 | 国产资源在线播放 | 久久久久国产 | 国产精品久久久久无码av | 午夜精品一区二区三区在线播放 | 国产一区二区在线免费观看 | 亚洲一区二区三 | 91精品一区二区三区久久久久久 | 成人欧美一区二区三区视频xxx | 亚洲一区二区中文字幕 | 色伊人| 成人va在线观看 | 欧美日韩国产成人 |