首页 > 其他分享 >hadoop 提交任务一直卡

hadoop 提交任务一直卡

时间:2023-07-14 16:32:55浏览次数:18  
标签:hdfs HDFS hadoop Hadoop 任务 提交 import

Hadoop 提交任务一直卡解决流程

1. 确认Hadoop集群状态

在提交任务之前,首先需要确认Hadoop集群的状态是否正常。可以使用以下命令检查集群中的节点是否都处于正常运行状态:

$ hdfs dfsadmin -report

2. 检查Hadoop任务配置

确保Hadoop任务的配置文件正确设置,主要包括以下几个方面:

  • core-site.xml:主要配置Hadoop的核心参数,如Hadoop集群的名称、HDFS的URL等。
  • hdfs-site.xml:主要配置Hadoop分布式文件系统(HDFS)的参数,如副本数量、数据块大小等。
  • mapred-site.xml:主要配置MapReduce的参数,如任务跟踪器的URL、任务最大尝试次数等。

可以使用以下命令查看当前Hadoop任务的配置:

$ hdfs getconf -confKey fs.defaultFS
$ hdfs getconf -confKey dfs.replication
$ yarn getconf -confKey yarn.resourcemanager.address

3. 准备任务输入数据

确保任务需要的输入数据已经上传到HDFS上的指定目录中。可以使用以下命令将本地文件上传到HDFS:

$ hdfs dfs -put <local-file> <hdfs-directory>

4. 准备任务代码和依赖库

确保任务代码和所需的依赖库已经上传到HDFS上的指定目录中。可以使用以下命令将本地文件上传到HDFS:

$ hdfs dfs -put <local-file> <hdfs-directory>

5. 提交Hadoop任务

使用以下命令提交Hadoop任务:

$ hadoop jar <jar-file> <main-class> <input-path> <output-path>

其中,<jar-file>为任务代码和依赖库所在的JAR文件,<main-class>为任务入口类,<input-path>为任务的输入路径,<output-path>为任务的输出路径。

6. 监控任务执行状态

可以使用以下命令监控任务的执行状态:

$ yarn application -list
$ yarn application -status <application-id>

7. 查看任务输出结果

任务执行完成后,可以使用以下命令查看任务的输出结果:

$ hdfs dfs -cat <output-path>

示例场景

假设我们要提交一个统计单词频次的Hadoop任务。首先,我们需要准备一个输入文件并上传到HDFS:

$ echo "hello world" > input.txt
$ hdfs dfs -put input.txt /input

接下来,我们需要编写一个MapReduce的代码,并将代码打包成JAR文件:

// WordCountMapper.java
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import java.io.IOException;
import java.util.StringTokenizer;

public class WordCountMapper extends Mapper<Object, Text, Text, IntWritable> {
    private final static IntWritable one = new IntWritable(1);
    private Text word = new Text();

    public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
        StringTokenizer itr = new StringTokenizer(value.toString());
        while (itr.hasMoreTokens()) {
            word.set(itr.nextToken());
            context.write(word, one);
        }
    }
}

// WordCountReducer.java
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
import java.io.IOException;

public class WordCountReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
    private IntWritable result = new IntWritable();

    public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
        int sum = 0;
        for (IntWritable val : values) {
            sum += val.get();
        }
        result.set(sum);
        context.write(key, result);
    }
}
$ javac -classpath $(hadoop classpath) WordCountMapper.java WordCountReducer.java
$ jar cf wordcount.jar WordCountMapper.class WordCountReducer.class

然后,我们可以使用以下命令提交任务:

$ hadoop jar wordcount.jar WordCount /input /output

最后,可以使用以下命令查看任务的输出结果:

$ hdfs dfs -cat /output/part-r-00000

总结

通过以上步骤,我们可以实现Hadoop

标签:hdfs,HDFS,hadoop,Hadoop,任务,提交,import
From: https://blog.51cto.com/u_16175447/6722971

相关文章

  • hadoop 笔记本配置
    Hadoop笔记本配置指南1.简介Hadoop是一个开源的分布式计算系统,用于处理大规模数据集。它提供了一种可靠的、可扩展的、高性能的分布式存储和计算解决方案。本篇文章将介绍如何配置Hadoop笔记本环境,让你顺利开始使用Hadoop进行开发。2.配置流程下面是配置Hadoop笔记本的步骤,具......
  • hadoop distcp命令
    HadoopDistcp命令简介与代码示例介绍Hadoop分布式拷贝(Distcp)命令是Hadoop生态系统中的一个重要工具,用于在不同的Hadoop群集之间复制数据。Distcp命令允许用户在不同的集群之间拷贝大量数据,而无需手动复制每个文件或目录。该命令利用Hadoop分布式处理能力,提供高效的并行......
  • 万字长文 | Hadoop 上云: 存算分离架构设计与迁移实践
    一面数据原有的技术架构是在线下机房中使用CDH构建的大数据集群。自公司成立以来,每年都保持着高速增长,业务的增长带来了数据量的剧增。在过去几年中,我们按照每1到2年的规划扩容硬件,但往往在半年之后就不得不再次扩容。而每次扩容都需要花费大量精力。为了解决包括扩容周期......
  • Git提交时出现Merge branch 'master' of ...之解决方法
    多人协作开发项目,在上传代码时通常会先pull一下远程代码,使本地与远程同步更新,但是如果远程此时与自己代码存在冲突,在解决冲突后提交有时会出现“Mergebranch‘master’of…”这条信息。这是因为pull其本质是fetch+Merge的结合。通常会分为以下两种情况:1.如果远程分支超前于本......
  • java回滚已提交的事务
    Java回滚已提交的事务在Java中,事务是一组数据库操作的逻辑单元,它要么全部成功执行,要么全部失败回滚。通常情况下,事务会被提交,也就是将数据库的更改持久化到磁盘上。然而,有时候我们可能需要撤销已提交的事务,这就是事务回滚。事务回滚的概念事务回滚是指将已提交的事务的所有更改......
  • 我遇到的hadoop错误和解决方法汇总
     ==================================windowscygwin环境下,遇到这个错误:org.apache.hadoop.security.AccessControlException:Permissiondenied:user=cyg_server,access=EXECUTE,inode="job_201010161322_0003":heipark:supergroup:rwx------ 解决:刚开始还使用“./bin/hadoo......
  • hadoop eclipse插件的不错入门文章
    基于Eclipse的Hadoop应用开发环境的配置http://blog.sina.com.cn/s/blog_537770820100byho.html?retcode=0  Hadoop学习-7Eclipse运行hadoop(解决错误)http://sunjun041640.blog.163.com/blog/static/25626832201061751825292/  搭建基于Eclipse的Hadoop测试环境http://www.tech......
  • hadoop性能调优笔记
    Hadoop调优mapred.tasktracker.map.tasks.maximum 官方解释:Themaximumnumberofmaptasksthatwillberun  simultaneouslybyatasktracker. 我的理解:一个tasktracker最多可以同时运行的map任务数量 默认值:2 优化值:mapred.tasktracker.map.tasks.maximum=cpu数量 ......
  • hadoop相关端口说明
    http相关端口:DaemonDefaultPortConfigurationParameterHDFSNamenode50070dfs.http.addressDatanodes50075dfs.datanode.http.addressSecondarynamenode50090dfs.secondary.http.addressBackup/Checkpointnode❋50105dfs.backup.http.addressMapReduceJobracker50030mapred.job.......
  • 解析 bin/hadoop 文件
     $HADOOP_HOME/bin/hadoop文件是Hadoop主要shell脚本,它提供格式化HDFS、恢复namenode、HDFSShell、任务提交等诸多功能,它的执行语句在最后一行,如下: exec"$JAVA"$JAVA_HEAP_MAX$HADOOP_OPTS-classpath"$CLASSPATH"$CLASS"$@" 下面是这几个变量的说明: $JAVA $......