`
cp1985chenpeng
  • 浏览: 44145 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hadoop-Streaming学习

阅读更多

 

 

1.概述

Hadoop Streaming Hadoop提供的一个编程工具,它允许用户使用任何可执行文件或脚本文件作为 Mapper Reducer,例如:

       $HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-streaming.jar \

       -input /user/test/input \

       -output /user/test/output \

       -mapper “myMapper.sh” \

       -reducer “myReducer.sh”

        -input等都为该命令的参数。

 

2. 原理

mapper reducer 会从标准输入中读取用户数据,一行一行处理后发送给标准输出。 Streaming 工具会创建 MapReduce 作业,发送给各个 tasktracker ,同时监控整个作业的执行过程。

如果一个可执行文件或者脚本作为 mapper mapper 初始化时,每一个 mapper 任务会把该文件作为一个单独进程启动, mapper 任 务运行时,它把输入切分成行并把每一行提供给可执行文件进程的标准输入。 同时, mapper 收集可执行文件进程标准输出的内容,并把收到的每一行内容转化成 key/value 对,作为 mapper 的输出。 默认情况下,一行中第一个 tab 之前的部分作为 key ,之后的(不包括 tab )作为 value 如果没有 tab ,整行作为 key 值, value 值为 null

对于 reducer,类似。

3.Streaming 命令说明

3.1Streaming 命令

使用下面的命令运行 Streaming MapReduce程序:

$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/hadoop-stream.jar [args]

其中 args streaming参数,下面是参数列表

-input <path> :map输入数据的 hdfs路径; path可以是文件或者目录,可以使用 *通配符, -input选项可以使用多次指定多个文件或目录作为输入。

-output <path> :reduce输出结果的 hdfs路径; path必须不存在,而且执行作业的用户必须有创建该目录的权限, -output只能使用一次。

-mapper <filename> : mapper可执行文件或脚本;必须指定且唯一。

-reducer <filename> : reducer 可执行文件或脚本;必须指定且唯一。

-file <file> : 分发本地文件,先上传到 hdfs,然后再分发 到各个节点;

-cacheFIle <file>: hdfs上的文件分发到各个节点;

-cachArchive <file> : hdfs上的压缩文件分发到各个节点;

-numReduceTasks <num> : 系统中 reduce任务个数; 如果设置 -numReduceTasks 0或者 -reducer NONE则没有 reducer程序, mapper的输出直接作为整个 job的输出。

-D name=value : 配置系统参数;

1 mapred.map.tasks map task数目

2 mapred.reduce.tasks reduce task数目

3 stream.map.input.field.separator/stream.map.output.field.separator map task输入 /输出数据的分隔符 ,默认均为 \t

4)stream.num.map.output.key.fields:指定 map task输出记录中 key所占的域数目

5)stream.reduce.input.field.separator/stream.reduce.output.field.separator reduce task输入 /输出数据的分隔符,默认均为 \t

6 stream.num.reduce.output.key.fields:指定 reduce task输出记录中 key所占的域数目 -combiner <javaClass> : Combiner java类;对应的 Java类文件打包成 jar文件后用 -file分发。

-partitioner <javaClass> : Partitioner java类;

-inputformat <java class> : InputFormat java 类;用于读取输入数据,要实现 InputFormat接口。如果不指定,默认使用 TextInputFormat

         -outputformat <javaClass> : OutputFormat java 类;用于写入输出数据,要实现 OutputFormat接口。如果不指定,默认使用 TextOutputFormat

         -cmdenv NAME=VALUE:给 mapper reducer程序传递额外的环境变量, NAME是变量名, VALUE是变量值。

         -verbose :指定输出详细信息,例如分发哪些文件,实际作业配置参数值等,可以用于调试

 

分享到:
评论

相关推荐

    使用hadoop-streaming运行Python编写的MapReduce程序.rar

    这个压缩包“使用hadoop-streaming运行Python编写的MapReduce程序.rar”显然是一个教程或示例,旨在指导用户如何利用Python编写MapReduce任务,并通过Hadoop Streaming进行执行。 MapReduce是一种编程模型,由...

    Apache Hadoop---Flink.docx

    - **Batch on Streaming处理**:Flink可以在同一个运行时环境处理批处理和流处理任务。 - **自定义内存管理**:在JVM内部实现,优化性能和资源利用率。 - **迭代计算**:支持多轮迭代的计算模式,适合图计算等...

    spark-3.2.4-bin-hadoop3.2-scala2.13 安装包

    它提供了一组高级APIs,支持批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)和机器学习(MLlib)等多种数据处理任务。Spark 3.2.4是其稳定版本,引入了多项性能优化和新特性。 2. **Hadoop**: ...

    spark-2.2-for-hadoop-2.2

    Spark-2.2-for-Hadoop-2.2版本是针对Hadoop 2.2版本优化的Spark 2.2版本,旨在更好地与Hadoop生态系统集成,提供高效的数据处理解决方案。 在Spark 2.2版本中,引入了多个关键改进和新特性,包括: 1. SQL增强:...

    hadoop-2.7.7.zip

    Hadoop-2.7.7是Hadoop的一个重要版本,它提供了许多改进和修复,使得大数据处理更加稳定和高效。在这个版本中,Windows用户也能方便地进行源码编译,从而在本地环境进行开发和测试。 1. **Hadoop的核心组件** - **...

    spark-1.6.3-bin-hadoop2.4-without-hive.tgz

    首先,Spark 1.6.3 提供了高效的计算引擎,其核心组件包括 Spark Core、Spark SQL、Spark Streaming、MLlib(机器学习库)和 GraphX(图计算)。在这一版本中,Spark SQL 提供了对 SQL 查询的支持,使得非程序员也能...

    Windows-hadoop-3.1.0.7z

    【标题】"Windows-hadoop-3.1.0.7z" 提供的是Hadoop 3.1.0版本在Windows环境下的配置和使用指南,主要用于在Windows 10操作系统中,通过集成开发环境IntelliJ IDEA(简称IDEA)和构建工具Maven来与Hadoop集群交互。...

    基于Spark的实时日志分析及异常检测系统 Flume + Kafka + Hbase + Spark-Streaming

    通过Spark-Streaming,我们可以利用机器学习算法(如基于统计的方法、聚类、深度学习等)对日志数据进行实时分析,识别出与正常行为模式偏离的事件,从而发现潜在的问题或攻击。 总结来说,这个系统构建了一个完整...

    spark--bin-hadoop3-without-hive.tgz

    此外,Spark还包含了多个模块,如Spark SQL用于结构化数据处理,Spark Streaming用于实时流处理,MLlib用于机器学习,GraphX用于图计算。 Hive on Spark是Hive的一种执行引擎选项,它允许用户利用Spark的计算能力来...

    大数据电商项目-Hadoop-Website-Project.zip

    该项目名为“大数据电商项目-Hadoop-Website-Project”,主要涉及大数据处理和分析在电商网站中的应用,使用Hadoop作为核心工具。Hadoop是Apache软件基金会的一个开源框架,专门设计用于处理和存储海量数据。这个...

    spark-2.4.0-bin-without-hadoop.tgz

    3. 流处理(Spark Streaming):Spark Streaming 可以处理实时数据流,2.4.0 版本增加了对复杂事件处理的支持,提升了处理延迟和吞吐量。 4. 图计算(GraphX):Spark 2.4.0 对 GraphX 进行了优化,支持大规模图...

    spark-2.3.1-bin-hadoop2.9-without-hive.tgz

    Spark的核心组件包括:Spark Core、Spark SQL、Spark Streaming、MLlib(机器学习库)和GraphX(图处理库)。 Spark 2.3.1的亮点包括: 1. **DataFrame和Dataset API增强**:DataFrame和Dataset API是Spark SQL的一...

    hadoop-3.1.2.tar.gz

    - 下载:首先从Apache官方网站下载hadoop-3.1.2的tar.gz文件。 - 解压:使用`tar -zxvf hadoop-3.1.2.tar.gz`命令解压缩。 - 配置:配置Hadoop的`etc/hadoop`目录下的配置文件,如`core-site.xml`, `hdfs-site....

    spark-3.0.0-bin-without-hadoop.tgz

    Spark的核心组件包括Spark Core、Spark SQL、Spark Streaming、MLlib(机器学习库)和GraphX(图处理库)。 Spark Core是Spark的基础,提供了分布式任务调度和内存管理机制。它负责任务的分发、监控和故障恢复,...

    spark-2.4.4-bin-hadoop2.6.tgz

    - **Spark Streaming**:处理连续数据流,通过微批处理实现高吞吐量和低延迟。 - **MLlib**:机器学习库,包含多种算法和实用工具。 - **GraphX**:用于图数据处理,提供图计算API。 3. **Hadoop集成**: Spark...

    spark-2.4.7-bin-hadoop2.7.tgz

    Spark的核心特性包括批处理、交互式查询(通过Spark SQL)、流处理(通过Spark Streaming)以及机器学习(通过MLlib库)。 1. **Spark核心组件**: - **Spark Core**:Spark的基础,提供分布式任务调度、内存管理...

    hadoop-2.7.5.zip

    在hadoop-env.cmd中,设置HADOOP_OPTS包含"-Djava.net.preferIPv4Stack=true",以解决可能出现的网络问题。在core-site.xml中,配置Hadoop的默认名称节点(name node)和数据节点(data node),通常使用本地文件...

    spark--bin-hadoop2-without-hive.tgz

    总的来说,"spark--bin-hadoop2-without-hive.tgz"是一个用于非Hive环境的Spark二进制包,提供了完整的Spark功能,包括核心计算、SQL查询、流处理和机器学习等,为大数据处理提供了高效解决方案。在实际使用中,应...

    hadoop-3.0.0&&spark-2.4.0&&scala-2.13.3&&maven-3.6.3

    标题中的"hadoop-3.0.0&&spark-2.4.0&&scala-2.13.3&&maven-3.6.3"涵盖了四个重要的IT技术组件:Hadoop 3.0.0、Spark 2.4.0、Scala 2.13.3和Maven 3.6.3。这些组件都是大数据处理和开发领域中的关键工具,下面将详细...

Global site tag (gtag.js) - Google Analytics