你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

New-AzureHDInsightMapReduceJobDefinition

定义新的 MapReduce 作业。

注意

本文档中引用的 cmdlet 用于管理使用 Azure Service Manager (ASM) API 的旧式 Azure 资源。 创建新资源时,建议不要使用旧的 PowerShell 模块,因为计划将停用 ASM。 有关详细信息,请参阅 Azure Service Manager 停用

Az PowerShell 模块是建议用于管理 PowerShell 的 Azure 资源管理器 (ARM) 资源的 PowerShell 模块。

语法

New-AzureHDInsightMapReduceJobDefinition
   [-Arguments <String[]>]
   -ClassName <String>
   [-Defines <Hashtable>]
   [-Files <String[]>]
   -JarFile <String>
   [-JobName <String>]
   [-LibJars <String[]>]
   [-StatusFolder <String>]
   [-Profile <AzureSMProfile>]
   [<CommonParameters>]

说明

此版本的 Azure PowerShell HDInsight 已弃用。 这些 cmdlet 将于 2017 年 1 月 1 日删除。 请使用较新版本的 Azure PowerShell HDInsight。

有关如何使用新的 HDInsight 创建群集的信息,请参阅 使用 Azure PowerShell 在 HDInsight 中创建基于 Linux 的群集(https://azure.microsoft.com/en-us/documentation/articles/hdinsight-hadoop-create-linux-clusters-azure-powershell/)。 有关如何使用 Azure PowerShell 和其他方法提交作业的信息,请参阅 HDInsight 中的提交 Hadoop 作业(https://azure.microsoft.com/en-us/documentation/articles/hdinsight-submit-hadoop-jobs-programmatically/)。 有关 Azure PowerShell HDInsight 的参考信息,请参阅 Azure HDInsight Cmdlet

New-AzureHDInsightMapReduceJobDefinition cmdlet 定义了要在 Azure HDInsight 群集上运行的新 MapReduce 作业。

示例

示例 1:定义 MapReduce 作业、运行作业并获取输出

PS C:\>$SubId = (Get-AzureSubscription -Current).SubscriptionId
PS C:\> $ClusterName = "MyCluster"
PS C:\> $WordCountJob = New-AzureHDInsightMapReduceJobDefinition -JarFile "/Example/Apps/Hadoop-examples.jar" -ClassName "WordCount" -Defines @{ "mapred.map.tasks" = "3" } -Arguments "/Example/Data/Gutenberg/Davinci.txt", "/Example/Output/WordCount"
PS C:\> $WordCountJob | Start-AzureHDInsightJob -Cluster $ClusterName
    | Wait-AzureHDInsightJob -Subscription $SubId -WaitTimeoutInSeconds 3600
    | Get-AzureHDInsightJobOutput -Cluster $ClusterName -Subscription $SubId -StandardError

第一个命令获取当前订阅的 ID,然后将其存储在$SubId变量中。

第二个命令将名称 MyCluster 分配给$Clustername变量。

第三个命令使用 New-AzureHDInsightMapReduceJobDefinition cmdlet 创建 MapReduce 作业定义,然后将其存储在$WordCountJob变量中。

第四个命令使用以下 cmdlet 执行一系列操作:

  • Start-AzureHDInsightJob 在$ClusterName上启动作业。
  • Wait-AzureHDInsightJob 等待作业完成并显示完成进度。
  • Get-AzureHDInsightJobOutput 以获取作业输出。

参数

-Arguments

指定 Hadoop 作业的参数数组。 参数以命令行参数的形式传递到每个任务。

类型:String[]
别名:Args
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-ClassName

指定 Java 存档 (JAR) 文件中作业类的名称。

类型:String
别名:Class
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-Defines

指定要在作业运行时设置的 Hadoop 配置值。

类型:Hashtable
别名:Params
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Files

指定作业所需的 WASB 文件的数组。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-JarFile

指定 JAR 文件的完全限定名称,该文件包含 MapReduce 作业的代码和依赖项。

类型:String
别名:Jar
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-JobName

指定 MapReduce 作业的名称。 此参数是可选的。 如果未指定此参数,则使用 ClassName 参数的值

类型:String
别名:Name
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-LibJars

指定作业的 LibJar 引用数组。

类型:String[]
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Profile

指定此 cmdlet 从中读取的 Azure 配置文件。 如果未指定配置文件,此 cmdlet 将从本地默认配置文件中读取。

类型:AzureSMProfile
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-StatusFolder

指定包含作业的标准输出和错误输出的文件夹的位置,包括其退出代码和任务日志。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False