目录

错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster

1. hadoop classpath

 2. 修改 yarn-sit.xml

3.将修改后的文件分到到其他节点

4. 重启 yarn

hadoop 项目运行

1. 软编码方式

2.硬编码方式

3. 打包配置

Exception in thread "main" java.lang.ClassNotFoundException: com.sys.hadoop.mr.tq.MyFof

4.打包

 5. pom.xml 文件

6. 再次运行正常

hadoop 集群再次运行步骤;

1. 防火墙

2. 开启 zookeeper 集群

3. 使用 start-dfs.sh 开启 hdfs 集群

4. 使用 start-yarn.sh 开启 yarn

5. 验证


 

错误: 找不到或无法加载主类 org.apache.hadoop.mapreduce.v2.app.MRAppMaster

hadoop收不到网卡 hadoop找不到或无法加载主类_项目运行运行时无法加载主类

1. hadoop classpath

hadoop收不到网卡 hadoop找不到或无法加载主类_hadoop收不到网卡_02

 2. 修改 yarn-sit.xml

将 hadoop classpath 的输出内容,放到 yarn-sit.xml 文件中。

hadoop收不到网卡 hadoop找不到或无法加载主类_hadoop项目运行_03

3.将修改后的文件分到到其他节点

 scp yarn-site.xml yang101:`pwd`

hadoop收不到网卡 hadoop找不到或无法加载主类_hadoop项目运行_04

4. 重启 yarn

关闭yarn    stop-yarn.sh

开启yarn    start-yarn.sh

 

hadoop 项目运行

1. 软编码方式

在编码中,没有将输入、输出路径,写死,通过在执行的时候,将路径指出。

hadoop收不到网卡 hadoop找不到或无法加载主类_hadoop_05

2.硬编码方式

各种数据都在编码的时候已经指定过,不能进行更改的操作,直接运行jar 包

 hadoop jar BIGH-1.0-SNAPSHOT.jar com.sys.hadoop.mr.FOF.MyTQ

hadoop收不到网卡 hadoop找不到或无法加载主类_hadoop集群启动步骤_06

3. 打包配置

idear 打包的时候

hadoop收不到网卡 hadoop找不到或无法加载主类_hadoop收不到网卡_07

 我这里写了两个项目,选择其中一个 的main 方法

hadoop收不到网卡 hadoop找不到或无法加载主类_hadoop集群启动步骤_08

将jar 包全部删除,只保留项目的编码

hadoop收不到网卡 hadoop找不到或无法加载主类_hadoop_09

 apply 应用之后,会出现这个文件夹,选择的是那个main 方法,文件中显示的就是那个 main 方法的 java 类路径

一个项目中只能存在一个 MANIFEST.MF 文件,将该文件删除之后,才能再次选择其他的main 方法进行打包,

因为在运行项目的时候,需要制定main 方法的类路径,指定的路径,需要和MANIFEST.MF 文件中的 Main-Class 内容进行匹配

Exception in thread "main" java.lang.ClassNotFoundException: com.sys.hadoop.mr.tq.MyFof

hadoop收不到网卡 hadoop找不到或无法加载主类_hadoop_10

hadoop收不到网卡 hadoop找不到或无法加载主类_hadoop_11

4.打包

该项目使用的是maven 项目,在打包之前需要先进行编译操作。

前面设置完之后,需要先clean ,清除之前的文件

hadoop收不到网卡 hadoop找不到或无法加载主类_hadoop收不到网卡_12

然后重新构建,否则在打包的时候会出现没有jar 的提示信息

hadoop收不到网卡 hadoop找不到或无法加载主类_hadoop项目运行_13

hadoop收不到网卡 hadoop找不到或无法加载主类_hadoop集群启动步骤_14

 5. pom.xml 文件

将下面的内容复制到 pom 文件中, 否则在打包的时候会出现编码不匹配的问题

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <archive>
                        <manifestEntries>
                            <Project-name>${project.name}</Project-name>
                            <Project-version>${project.version}</Project-version>
                            <!--                            <Premain-Class>com.coderead.agent.AgentMain</Premain-Class>-->
                            <!--                            <Premain-Class>com.sys.insertPilepublic.AgentMain</Premain-Class>-->
                            <!-- 需要打包的类的 -->
                            <Premain-Class>com.sys.hadoop.mr</Premain-Class>
                            <Can-Redefine-Classes>false</Can-Redefine-Classes>
                            <Can-Retransform-Classes>false</Can-Retransform-Classes>
                        </manifestEntries>
                    </archive>
                    <skip>true</skip>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>utf8</encoding>
                </configuration>
            </plugin>
        </plugins>

        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/test/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

6. 再次运行正常

hadoop收不到网卡 hadoop找不到或无法加载主类_hadoop项目运行_15

 

hadoop 集群再次运行步骤;

1. 防火墙

首先将集群的防火墙关闭(测试环境),如果在生产环境则需要在防火墙开放相应的端口

2. 开启 zookeeper 集群

3. 使用 start-dfs.sh 开启 hdfs 集群

4. 使用 start-yarn.sh 开启 yarn

5. 验证

使用 zkServer.sh status 查看zookeeper 集群是否正常运行

使用浏览器分别浏览 namenode 的主备节点 端口 9870

使用浏览器分别浏览 resourcemanager 的主备节点 端口为 8088