1. 程式人生 > >Hadoop實踐(二)---叢集和開發環境搭建(Intellij IDEA & Maven 開發Hadoop)

Hadoop實踐(二)---叢集和開發環境搭建(Intellij IDEA & Maven 開發Hadoop)

1. 開發環境準備

1. Hadoop叢集安裝

2. Maven安裝

3. Intellij IDEA安裝

2. 建立專案

1. 建立Maven專案

這裡寫圖片描述

這裡寫圖片描述

2. 輸入GroupId 和 ArtifactId

這裡寫圖片描述

新建專案後有提示 Maven project need to be imported ,選擇匯入

3. 修改pom.xml檔案

根據hadoop版本新增相應的依賴版本

ps:編寫程式碼需要用到什麼依賴,就在pom.xml中新增相應的依賴即可

新增apache的源

repositories>
    <repository>
<id>apache</id> <url>http://maven.apache.org</url> </repository> </repositories>

Tips:在新增Hadoop生態系統相關的依賴時,使用<scope>provided</scope>,這樣在生成的jar包中不包含這些依賴庫,即在程式編譯時使用這些依賴庫,但是不把它們打包到最終的jar中,因為在執行hadoop作業的節點上都有這些依賴包,這樣可以簡化jar包的大小,優化了它在叢集中的傳輸

Hadoop基礎依賴:

hadoop-common
hadoop-core

需要訪問HDFS時需要的2個依賴

hadoop-hdfs
hadoop-client

日誌訪問需要的依賴

log4j

配置log4j

在src/main/resources目錄下新增log4j的配置檔案log4j.properties,內容如下:

log4j.rootLogger = debug,stdout

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

開發HBase需要的依賴

hbase-client

開發Mahout需要的依賴

mahout-core

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.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.7.3</version>
        </dependency>


        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-core</artifactId>
            <version>2.7.3</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
            <version>2.7.3</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    </dependencies>

4. 新增本地依賴
通過修改工程結構的方式新增hadoop的本地依賴
這裡寫圖片描述

這裡寫圖片描述

需要新增的Hadoop本地依賴如下:

hadoop/share/hadoop/yarn
hadoop/share/hadoop/mapreduce
hadoop/share/hadoop/hdfs
hadoop/share/hadoop/commom
hadoop/share/hadoop/common/lib

5. 編寫程式碼
src/main/java資料夾下建立Java類檔案

6. IDE 除錯

  1. 和src目錄同級的目錄中建立輸入目錄input
  2. 在IDE中進行執行引數的配置
    這裡寫圖片描述

這裡寫圖片描述

輸入名字,找到主類,可以通過右側的按鈕搜尋,輸入執行時的引數配置分為本地路徑和HDFS路徑
這裡寫圖片描述

7. 打包

這裡寫圖片描述

這裡寫圖片描述

這裡的“Directory for META-INF/MAINFEST.MF”修改為src/main/resources

這裡寫圖片描述

這裡寫圖片描述

建立一個lib資料夾,將第三方庫都放在lib中

可以使用mvn命令打包(會在target中生成jar檔案)也可是使用IDE打包,在src同級目錄下生成out目錄生成的jar包在該目錄下

這裡寫圖片描述

在/out/目錄下生產需要的jar包

8. jar包傳送到叢集執行

yarn xx.jar args