欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

hadoop 提交程序并监控运行

程序员文章站 2022-06-06 12:46:31
程序编写及打包 1. 使用maven导入第三方jar pom.xml ~~~xml 4.0.0 hadoop study HadoopTest 4.0 UTF 8 2.7.5 org.apache.hadoop hadoop client ${hadoop.version} junit junit ......

程序编写及打包

  1. 使用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>
  2. 导入本地配置文件测试运行

    在Idea 里选择ProjectStructure 添加hadoop配置路径并把它设为resource,可以进行build和run

  3. 打包文件提交运行

    在Idea 里选择ProjectStructure 删除hadoop配置路径

    在Idea 里选择ProjectStructure/Artifact,添加jar/from modules with dependencies,选择主类

    hadoop jar HadoopTest.jar [args]

监视job运行状态

  1. 修改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>
  2. 常用网址和命令

    查看任务: hadoop job -list

    杀死任务: hadoop job -kill jobid

    任务页面:

常见问题

  1. Class not found

    • 在IDE编译的时候发生,可能是没有导入需要的依赖包

      解决办法:使用maven配置依赖环境

    • 当手动运行class 文件时发生,可能是没有设置hadoopclasspath

      解决办法:export $HADOOP_CLASSPATH=CLASSPATH:".",或者是打包成jar运行

  2. 在任务页面无法看到job

    原因:hadoop需要另外配置mapreduce的运行时环境,默认是local,需配置成yarn

    解决办法:在mapred-site.xml中添加mapreduce.framework.name配置

  3. retrying connecting 0.0.0.0

    原因:没设置yarn.resourcemanger的主机ip,或者设置错文件

    解决办法: 在yarn-site.xml 上添加yarn.resourcemanger.hoatname等信息

  4. map卡在0%

    原因:需要在yarn里面配置附属服务为mapreduce

    解决办法:在yarn-site.xml 上添加yarn.nodemanager.aux-services

参考文章: