MapReduceプログラムパッケージングプラグインを実行しているSpringBootにより、クラスが見つからないという問題が発生します

プログラムの構造

ここに画像の説明を挿入します
説明:非常に一般的なスプリングブーツの構造

pomファイルパッケージプラグインの使用

<build>
<plugins>
    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
            <fork>true</fork>
            <mainClass>com.example.springbootintegrationtest.hadoop.mapreduce.WordCountDriver</mainClass>
        </configuration>
        <executions>
            <execution>
                <goals>
                    <goal>repackage</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
</plugins>
</build>

説明:mainClassモードですが、このプラグインではありません

解凍してjar構造を表示します

ここに画像の説明を挿入します
注:これはspringbootのデフォルトのパッケージの構造です。通常のjarとして実行されます。デフォルトでは、orgの下にあり、WordCountプログラムコードはBOOT_INFの下にあるため、クラスが見つかりません。

エラーの報告(mapおよびreduceクラスが見つかりませんでした)

ここに画像の説明を挿入します
説明:hadoop jarを使用してエラーを実行しましたが、クラスが見つかりません

Hadoopの公式ケースでパッケージ化されたプラグインを使用する

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.example.springbootintegrationtest.hadoop.mapreduce.WordCountDriver
                        </mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>findbugs-maven-plugin</artifactId>
            <configuration>
                <findbugsXmlOutput>true</findbugsXmlOutput>
                <xmlOutput>true</xmlOutput>
                <effort>Max</effort>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.rat</groupId>
            <artifactId>apache-rat-plugin</artifactId>
        </plugin>
    </plugins>
</build>

説明:org.apache.maven.pluginsです

mvn installを使用して、ディレクトリ構造を確認します

ここに画像の説明を挿入します
注:wordCount関連のクラスはすべてcomパッケージに含まれています

実行結果を表示する

ここに画像の説明を挿入します
説明:mapreduceジョブを正常に実行します

総括する

問題が見つからない場合は、公式Webサイトにアクセスして見つける必要があります。8時間検索し、最後に公式の例を参照します。

おすすめ

転載: blog.csdn.net/weixin_38312719/article/details/115060411