程序编写及打包
-
使用maven导入第三方jar
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>hadoop-study</groupId> <artifactId>HadoopTest</artifactId> <version>4.0</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <hadoop.version>2.7.5</hadoop.version> </properties> <dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-minicluster</artifactId> <version>${hadoop.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <finalName>word-count</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugin</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.5</version> <configuration> <outputDirectory>${basedir}</outputDirectory> </configuration> </plugin> </plugins> </build> </project>
-
导入本地配置文件测试运行
在Idea 里选择ProjectStructure 添加hadoop配置路径并把它设为resource,可以进行build和run
-
打包文件提交运行
在Idea 里选择ProjectStructure 删除hadoop配置路径
在Idea 里选择ProjectStructure/Artifact,添加jar/from modules with dependencies,选择主类
hadoop jar HadoopTest.jar [args]
监视job运行状态
-
修改hadoop配置文件
<!--mapred-site.xml--> <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> <!--yarn-site.xml--> <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>master:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8031</value> </property> </configuration>
-
常用网址和命令
查看任务: hadoop job -list
杀死任务: hadoop job -kill jobid
任务页面:http://master:8088
常见问题
-
Class not found
-
在IDE编译的时候发生,可能是没有导入需要的依赖包
解决办法:使用maven配置依赖环境
-
当手动运行class 文件时发生,可能是没有设置hadoopclasspath
解决办法:export $HADOOP_CLASSPATH=CLASSPATH:”.”,或者是打包成jar运行
-
-
在任务页面无法看到job
原因:hadoop需要另外配置mapreduce的运行时环境,默认是local,需配置成yarn
解决办法:在mapred-site.xml中添加mapreduce.framework.name配置
-
retrying connecting 0.0.0.0
原因:没设置yarn.resourcemanger的主机ip,或者设置错文件
解决办法: 在yarn-site.xml 上添加yarn.resourcemanger.hoatname等信息
-
map卡在0%
原因:需要在yarn里面配置附属服务为mapreduce
解决办法:在yarn-site.xml 上添加yarn.nodemanager.aux-services
参考文章:https://blog.csdn.net/tangtang5156/article/details/40867759
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/9144.html