目录
错误: 找不到或无法加载主类 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
1. hadoop classpath
2. 修改 yarn-sit.xml
将 hadoop classpath 的输出内容,放到 yarn-sit.xml 文件中。
3.将修改后的文件分到到其他节点
scp yarn-site.xml yang101:`pwd`
4. 重启 yarn
关闭yarn stop-yarn.sh
开启yarn start-yarn.sh
hadoop 项目运行
1. 软编码方式
在编码中,没有将输入、输出路径,写死,通过在执行的时候,将路径指出。
2.硬编码方式
各种数据都在编码的时候已经指定过,不能进行更改的操作,直接运行jar 包
hadoop jar BIGH-1.0-SNAPSHOT.jar com.sys.hadoop.mr.FOF.MyTQ
3. 打包配置
idear 打包的时候
我这里写了两个项目,选择其中一个 的main 方法
将jar 包全部删除,只保留项目的编码
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
4.打包
该项目使用的是maven 项目,在打包之前需要先进行编译操作。
前面设置完之后,需要先clean ,清除之前的文件
然后重新构建,否则在打包的时候会出现没有jar 的提示信息
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 集群再次运行步骤;
1. 防火墙
首先将集群的防火墙关闭(测试环境),如果在生产环境则需要在防火墙开放相应的端口
2. 开启 zookeeper 集群
3. 使用 start-dfs.sh 开启 hdfs 集群
4. 使用 start-yarn.sh 开启 yarn
5. 验证
使用 zkServer.sh status 查看zookeeper 集群是否正常运行
使用浏览器分别浏览 namenode 的主备节点 端口 9870
使用浏览器分别浏览 resourcemanager 的主备节点 端口为 8088