最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

借助Maven搭建Hadoop開(kāi)發(fā)環(huán)境的最詳細(xì)教程分享

 更新時(shí)間:2023年05月22日 11:27:07   作者:orion-orion  
在Maven插件的幫助下,VSCode寫(xiě)Java其實(shí)非常方便,所以本文就來(lái)和大家詳細(xì)講講如何借助maven用VScode搭建Hadoop開(kāi)發(fā)環(huán)境,需要的可以參考下

在Maven插件的幫助下,VSCode寫(xiě)Java其實(shí)非常方便。這一講我們介紹如何借助maven用VScode搭建Hadoop開(kāi)發(fā)環(huán)境。

1.Java環(huán)境安裝

首先我們需要搭建好Java開(kāi)發(fā)環(huán)境。我們需要從網(wǎng)站 https://www.oracle.com/java/technologies/downloads/ 下載指定版本的Java壓縮包或安裝包。壓縮包需要解壓到機(jī)器的指定目錄,安裝包直接傻瓜式安裝即可。我這里下載的是Java17的MacOS安裝包,運(yùn)行后它默認(rèn)給我安裝在了/Library/Java/JavaVirtualMachines/temurin-17.jdk/目錄下。

然后配置環(huán)境變量,Mac用戶(hù)在~/.zshrc中添加:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home

然后source ~/.zshrc即可(Linux用戶(hù)我沒(méi)記錯(cuò)的話(huà)應(yīng)該是~/.bashrc文件)。

可以運(yùn)行java -version命令查看當(dāng)前機(jī)器的Java版本。

(base) lonelyprince7@lonelyprince7deMacBook-Pro ~ % java -version
openjdk version "17" 2021-09-14
OpenJDK Runtime Environment Temurin-17+35 (build 17+35)
OpenJDK 64-Bit Server VM Temurin-17+35 (build 17+35, mixed mode)

然后讀者需要在VSCode中安裝以下Java插件:

其中需要注意,Maven for Java插件是用來(lái)構(gòu)建Java大型項(xiàng)目的(也就是說(shuō)不只是使用JRE內(nèi)部的包,而且使用外包的JDK包。內(nèi)部的包用java命令編譯的時(shí)候就會(huì)自動(dòng)幫我們導(dǎo)入,但外部的包要稍微復(fù)雜一些,最簡(jiǎn)單的方式就是使用maven工具了)。

2.安裝Maven

如果你是Mac系統(tǒng)且安裝了homebrew,可以直接下列命令運(yùn)行安裝

brew install maven

你也可以前往Maven官網(wǎng) https://maven.apache.org/download.cgi 下載并解壓到自定義目錄。

安裝完后記得配置環(huán)境變量:

export M2_HOME=/opt/homebrew/Cellar/maven/3.8.2/libexec
export PATH=${PATH}:${M2_HOME}/bin

此處/opt/homebrew/Cellar/maven/3.8.2/libexec是我的maven安裝位置,修改成你實(shí)際的自定義目錄即可。

然后source ~/.zshrc即可(同樣,Linux用戶(hù)應(yīng)該是~/.bashrc文件)。

運(yùn)行mvn -version可以查看maven版本。

(base) orion-orion@MacBook-Pro libexec % mvn -version
Apache Maven 3.8.2 (3599d3414f046de2324203b78ddcf9b5e4388aa0)
Maven home: /opt/homebrew/Cellar/maven/3.8.2/libexec
Java version: temurin-17, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home
Default locale: zh_CN_#Hans, platform encoding: UTF-8
OS name: "mac os x", version: "12.3.1", arch: "aarch64", family: "mac"

3.新建Maven項(xiàng)目

首先,用VSCode打開(kāi)一個(gè)存放用于項(xiàng)目的目錄(在我電腦上是 "/Users/lonelyprince7/Documents/LocalCode/Hadoop-MapReduce" ),然后在右鍵菜單中選擇從Maven原型中創(chuàng)建新項(xiàng)目。

然后從下拉選單中選擇“maven-archetype-quickstart”。

然后隨便選擇一個(gè)版本即可。

 然后再輸入組織的名稱(chēng)(該名稱(chēng)在將你的項(xiàng)目打包發(fā)布有用)。組織名稱(chēng)一般命名為`com.×××`,這里我命名為`com.orion`。注意組織名稱(chēng)只能由小寫(xiě)字符和下?lián)Q線(xiàn)組成,不能包括大寫(xiě)字符和空格之類(lèi)的東西。 

 接下來(lái)輸入工程(archetype)的名稱(chēng),這里我們命名為"hello_world"即可。 

然后我們的工程目錄就選擇 "/Users/lonelyprince7/Documents/LocalCode/Hadoop-MapReduce" 就行。

之后VSCode會(huì)提示是否跳轉(zhuǎn)到"hello_world"工程的目錄,選擇“是”,然后就退跳轉(zhuǎn)到該目錄。

進(jìn)入該目錄后,我們會(huì)發(fā)現(xiàn)控制臺(tái)正在初始化Maven配置,有以下打印輸出:

其中,會(huì)跳出一些選項(xiàng)讓我們選擇,我們只需要全部按回車(chē)選擇默認(rèn)值即可。

最后,我們看到項(xiàng)目"hello_world"成功創(chuàng)建,項(xiàng)目目錄如下:

4.進(jìn)行測(cè)試

我們可以看到App.java已經(jīng)為我們生成,為如下內(nèi)容:

package com.orion;
/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

pom.xml只引入了最基本的junit依賴(lài)包,并配置了一些基本的Maven項(xiàng)目初始化的內(nèi)容:

<?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.orion</groupId>
  <artifactId>hello_world</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>hello_world</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.7.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

選中App.java文件按F5進(jìn)行編譯并運(yùn)行,看到控制臺(tái)成功打印Hello World!

(base) lonelyprince7@lonelyprince7deMacBook-Pro hello_world %  /usr/bin/env /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/bin/java -agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=localhost:50684 -XX:+ShowCodeDetailsInExceptionMessages -cp /Users/lonelyprince7/Documents/LocalCode/Hadoop-MapReduce/hello_world/target/classes com.orion.App 
Hello World!

我們接下來(lái)試試用Maven導(dǎo)入Hadoop依賴(lài)。我們只需要在pom.xml依賴(lài)項(xiàng)就行。相關(guān)的依賴(lài)項(xiàng)的名稱(chēng)和版本號(hào)我們可以在Maven倉(cāng)庫(kù)的官網(wǎng) https://mvnrepository.com/ 進(jìn)行查詢(xún),比如我們可以查詢(xún)到Hadoop-common(3.3.1)版本的依賴(lài)項(xiàng)如下:

一般來(lái)說(shuō),Hadoop項(xiàng)目需要引入hadoop-common、hadoop-hdfs、hadoop-client、hadoop-yarn-api這幾個(gè)api,我們需要將下列標(biāo)簽加入<dependencies> <dependencies/>之間,也即:

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!-- 導(dǎo)入hadoop依賴(lài)環(huán)境 -->
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>3.3.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-hdfs</artifactId>
        <version>3.3.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-mapreduce-client-core</artifactId>
        <version>3.3.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>3.3.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-yarn-api</artifactId>
        <version>3.3.1</version>
    </dependency>
  </dependencies>

但是聰明的逆可能已經(jīng)注意到了,這樣版本號(hào)就完全屬于“硬編碼”了。后期我要修改hadoop的版本號(hào),只能把上面的挨個(gè)修改,非常麻煩。好在我們?cè)?code><properties></properties>標(biāo)簽之間先集中定義好一些后面要使用的常量(比如版本號(hào)),后面再使用${變量名}的形式來(lái)引用即可。如我們將hadoop的版本號(hào)hadoop.version追加到<properties></properties>標(biāo)簽之間:

  <!-- 集中定義版本號(hào) -->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
    <hadoop.version>3.3.1</hadoop.version> <!--這里追加hadoop版本號(hào)-->
  </properties>

然后后面我們就可以使用${hadoop.version}來(lái)替代前面頻繁出現(xiàn)的3.3.1了。

最后給出我們完整的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>com.orion</groupId>
  <artifactId>hello_world</artifactId>
  <version>1.0-SNAPSHOT</version>
  <name>hello_world</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>
  <!-- 集中定義版本號(hào) -->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
    <hadoop.version>3.3.1</hadoop.version> <!--這里追加hadoop版本號(hào)-->
  </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
 <!-- 導(dǎo)入hadoop依賴(lài)環(huán)境 -->
    <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-mapreduce-client-core</artifactId>
        <version>${hadoop.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-client</artifactId>
        <version>${hadoop.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-yarn-api</artifactId>
        <version>${hadoop.version}</version>
    </dependency>
  </dependencies>
  </dependencies>
  <build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.7.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>s
</project>

ctrl/command+s保存,項(xiàng)目會(huì)對(duì)pom.xml重新解析,導(dǎo)入我們添加進(jìn)入的包。

最后我們嘗試在App.java中導(dǎo)入hadoop相關(guān)的包:

package com.orion;
import org.apache.hadoop.fs.FileSystem;
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;
/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
    }
}

按'F5'重新編譯運(yùn)行,成功打印輸出Hello World!,說(shuō)明我們的包導(dǎo)入成功。

(base) lonelyprince7@lonelyprince7deMacBook-Pro hello_world %  /usr/bin/env /Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home/bin/java -agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=localhost:54181 --enable-preview -XX:+ShowCodeDetailsInExceptionMessages -cp "/Users/lonelyprince7/Library/Application Support/Code/User/workspaceStorage/fe34994f622cdbfbf60e8ed045c6bde3/redhat.java/jdt_ws/jdt.ls-java-project/bin" com.orion.App 
Hello World!

注意,如果報(bào)錯(cuò)org.apache.hadoop.fs.FileSystem cant be resolved這種錯(cuò)誤,則需要先清空項(xiàng)目緩存,然后再重新編譯運(yùn)行。

至此,我們已經(jīng)成功用VScode+Maven創(chuàng)建好一個(gè)Hadoop的開(kāi)發(fā)環(huán)境。在Hadoop編程中,最基本的一種分布式編程范式即MapReduce編程。在后面我們會(huì)借由“WordCount”(詞頻統(tǒng)計(jì))這個(gè)MapReduce編程的入門(mén)項(xiàng)來(lái)講解Hadoop中MapReduce編程的基本語(yǔ)法,敬請(qǐng)繼續(xù)關(guān)注。

到此這篇關(guān)于借助Maven搭建Hadoop開(kāi)發(fā)環(huán)境的最詳細(xì)教程分享的文章就介紹到這了,更多相關(guān)Maven搭建Hadoop開(kāi)發(fā)環(huán)境內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中的BigDecimal原理詳解

    Java中的BigDecimal原理詳解

    這篇文章主要介紹了Java中的BigDecimal原理詳解,對(duì)于日常開(kāi)發(fā)過(guò)程中出現(xiàn)小數(shù)的問(wèn)題,通常都是使用float或者double類(lèi)型來(lái)處理,在java中float占用四個(gè)字節(jié), double類(lèi)型占用8個(gè)字節(jié),需要的朋友可以參考下
    2023-09-09
  • 總結(jié)十個(gè)實(shí)用但偏執(zhí)的Java編程技術(shù)

    總結(jié)十個(gè)實(shí)用但偏執(zhí)的Java編程技術(shù)

    Java是世界上最流行的程序語(yǔ)言,從1995年問(wèn)世以來(lái),Java的生態(tài)系統(tǒng)在一直在蓬勃的發(fā)展著。下面這篇文章主要總結(jié)了十個(gè)實(shí)用但偏執(zhí)的Java編程技術(shù),需要的朋友可以參考借鑒,下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-01-01
  • TCC分布式事務(wù)七種異常情況小結(jié)

    TCC分布式事務(wù)七種異常情況小結(jié)

    這篇文章主要為大家詳細(xì)介紹了在整個(gè)TCC模型過(guò)程中可能會(huì)出現(xiàn)的七種異常情況,文中的示例代碼簡(jiǎn)潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11
  • java實(shí)現(xiàn)的二級(jí)聯(lián)動(dòng)菜單效果

    java實(shí)現(xiàn)的二級(jí)聯(lián)動(dòng)菜單效果

    這篇文章主要介紹了java實(shí)現(xiàn)的二級(jí)聯(lián)動(dòng)菜單效果,結(jié)合實(shí)例形式分析了java前臺(tái)頁(yè)面布局及與后臺(tái)交互構(gòu)造聯(lián)動(dòng)菜單的相關(guān)技巧,需要的朋友可以參考下
    2016-08-08
  • Idea中導(dǎo)入新模塊無(wú)法被識(shí)別的問(wèn)題

    Idea中導(dǎo)入新模塊無(wú)法被識(shí)別的問(wèn)題

    這篇文章主要介紹了Idea中導(dǎo)入新模塊無(wú)法被識(shí)別的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • spring AMQP代碼生成rabbitmq的exchange and queue教程

    spring AMQP代碼生成rabbitmq的exchange and queue教程

    使用Spring AMQP代碼直接創(chuàng)建RabbitMQ exchange和queue,并確保綁定關(guān)系自動(dòng)成立,簡(jiǎn)化消息隊(duì)列配置,此經(jīng)驗(yàn)分享供參考,歡迎支持腳本之家
    2025-08-08
  • 一文詳解Java Netty中的Constant類(lèi)

    一文詳解Java Netty中的Constant類(lèi)

    這篇文章主要介紹了Constants類(lèi)即常量類(lèi)是將一些常用的變量集合到一個(gè)地方的類(lèi),文中有詳細(xì)的代碼示例,感興趣的同學(xué)可以參考一下
    2023-05-05
  • 基于SpringBoot+MySQL+Vue實(shí)現(xiàn)文件共享系統(tǒng)

    基于SpringBoot+MySQL+Vue實(shí)現(xiàn)文件共享系統(tǒng)

    我們每天要傳海報(bào)、視頻、文案,以前靠微信群、U盤(pán)、郵箱來(lái)回傳,問(wèn)題一大堆, 于是,我用SpringBoot+MySQL+Vue搞了個(gè)文件共享系統(tǒng),同時(shí)加了用戶(hù)空間限額,本文通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2025-08-08
  • Java多線(xiàn)程之哲學(xué)家就餐問(wèn)題詳解

    Java多線(xiàn)程之哲學(xué)家就餐問(wèn)題詳解

    這篇文章主要介紹了Java多線(xiàn)程之哲學(xué)家就餐問(wèn)題詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • SpringBoot集成Apache POI實(shí)現(xiàn)Excel的導(dǎo)入導(dǎo)出

    SpringBoot集成Apache POI實(shí)現(xiàn)Excel的導(dǎo)入導(dǎo)出

    Apache POI是一個(gè)流行的Java庫(kù),用于處理Microsoft Office格式文件,包括Excel文件,本文主要介紹了SpringBoot集成Apache POI實(shí)現(xiàn)Excel的導(dǎo)入導(dǎo)出,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06

最新評(píng)論

德化县| 南安市| 酉阳| 莆田市| 夏邑县| 辉县市| 通州区| 鹿泉市| 沈阳市| 隆尧县| 长宁县| 曲周县| 屏东市| 绥江县| 龙州县| 沛县| 化德县| 库伦旗| 玛纳斯县| 南平市| 大安市| 紫阳县| 额尔古纳市| 夹江县| 泰宁县| 滦南县| 东海县| 安庆市| 天津市| 彭山县| 双城市| 兴宁市| 濮阳市| 曲水县| 山阳县| 如皋市| 两当县| 宜兰市| 溧阳市| 赫章县| 尼勒克县|