Hadoop之mapreduce参数大全-1

1.设置Map/Reduce任务允许使用的最大虚拟内存大小

mapred.task.maxvmem是MapReduce的一个配置参数,用于指定每个Map/Reduce任务允许使用的最大虚拟内存大小(以字节为单位)。如果一个任务使用的虚拟内存超过了此参数指定的值,则任务会被认为是失败的,并且MapReduce集群会尝试重新分配任务。

默认情况下,此参数的值为MapReduce任务的堆内存大小的两倍。可以通过在mapred-site.xml配置文件中设置来修改此参数的值。 将此参数设置得比默认值小,可以用于限制任务的内存使用,从而减少集群中总的内存使用量。但是,如果任务的内存使用量超过了指定的值,可能会导致任务失败和重新分配,从而影响任务的执行效率。

需要注意的是,此参数只对使用Java虚拟机的任务有效,对于其他类型的MapReduce任务(如Shell任务)则无效。

mapred.task.maxvmem = 1024

2.指定包含MapReduce作业的JAR文件

mapreduce.job.jar是MapReduce的一个配置参数,用于指定包含MapReduce作业的JAR文件。通过此参数,可以将所有依赖项打包到一个JAR文件中,以便在集群中分发和执行作业。

设置此参数后,MapReduce集群会将JAR文件中的Mapper、Reducer和其他相关类加载到内存中,并在执行作业时使用这些类。这样可以减少作业的依赖项在集群中的分发和加载时间,提高作业的执行效率。

需要注意的是,如果作业依赖于其他文件或资源,这些文件或资源也应该包含在JAR文件中,以便在集群中正确加载和使用。另外,如果作业需要访问集群中的其他服务或资源,可能需要在JAR文件中提供相关的配置信息。

<property>
  <name>mapreduce.job.jar</name>
  <value>/path/to/job.jar</value>
</property>

3.指定集群中节点级别的临时文件存储目录

mapreduce.cluster.local.dir是MapReduce的一个配置参数,用于指定集群中节点级别的临时文件存储目录。MapReduce任务在执行过程中会生成和使用一些临时文件,这些临时文件需要存储在一个或多个指定的目录中。

可以通过在mapred-site.xml配置文件中设置来指定mapreduce.cluster.local.dir的值。该值可以是一个目录,也可以是多个目录,多个目录之间使用逗号分隔。例如:

<property>
  <name>mapreduce.cluster.local.dir</name>
  <value>/tmp1,/tmp2,/tmp3</value>
</property>

其中,/tmp1、/tmp2和/tmp3是集群中节点上的临时文件存储目录。

需要注意的是,指定的临时文件存储目录需要具备足够的空间来存储MapReduce任务生成的临时文件,并且需要具备适当的权限,以便MapReduce可以读写这些文件。另外,如果指定的目录不存在,MapReduce会尝试创建该目录。如果目录无法创建或访问,MapReduce任务将无法正常执行。

4.指定作业的拥有者

mapreduce.job.user.name是MapReduce的一个配置参数,用于指定作业的拥有者。在MapReduce集群中,每个用户都会在集群上运行自己的作业,每个用户的UID是唯一的。通过设置mapreduce.job.user.name参数,可以指定作业的拥有者,以便在任务日志和临时文件中使用正确的用户名。

默认情况下,MapReduce会使用提交作业的用户的用户名作为作业的拥有者。可以通过在mapred-site.xml配置文件中设置来指定mapreduce.job.user.name的值。例如:

<property>
  <name>mapreduce.job.user.name</name>
  <value>username</value>
</property>

其中,username是作业的拥有者用户名。

需要注意的是,作业的拥有者只能是集群中存在的用户。如果指定的用户名不存在,作业将无法正常启动。另外,作业的拥有者对作业的运行没有影响,只是用于标识作业的归属。作业的运行权限和临时文件的权限是由MapReduce集群的管理员配置和管理的。

5.指定是否保留失败任务的临时文件

mapreduce.task.files.preserve.failedtasks是MapReduce的一个配置参数,用于指定是否保留失败任务的临时文件。

<think>我们已知: - Hadoop版本为2.5.2 - 需要使用的jar文件:hadoop-mapreduce-examples-2.5.2.jar - 输入文件在HDFS上的路径:/input/songs/wordcount.txt - 输出目录需要指定(注意:输出目录不能预先存在) 根据引用[1]和引用[2]中的示例,我们可以构造命令。但注意引用[1]使用的是3.1.3版本,而引用[2]使用了完整的类名(org.apache.hadoop.examples.WordCount)。在Hadoop 2.5.2中,我们可以直接使用“wordcount”作为程序名,也可以使用完整的类名。 步骤: 1. 确认jar文件的位置:`/home/ylj/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar` 2. 确保输入文件已经在HDFS的指定路径上(/input/songs/wordcount.txt) 3. 选择一个输出目录,比如`/output/wordcount`(注意:这个目录在HDFS上不能存在,Hadoop会自动创建) 有两种方式调用: 方式一:使用程序别名(wordcount) ```bash hadoop jar /home/ylj/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar wordcount /input/songs/wordcount.txt /output/wordcount ``` 方式二:使用完整的类名(更精确,避免歧义) ```bash hadoop jar /home/ylj/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar org.apache.hadoop.examples.WordCount /input/songs/wordcount.txt /output/wordcount ``` 执行步骤: 1. 打开终端,确保Hadoop服务已经启动(如未启动,需要先启动HDFS和YARN)。 2. 执行上述命令中的任意一条。 注意: - 如果输出目录已经存在,需要先删除:`hadoop fs -rm -r /output/wordcount`(如果存在的话) - 执行过程中可以在YARN的Web界面查看作业进度(默认地址:http://<ResourceManager的IP>:8088) 执行完成后,查看结果: ```bash hadoop fs -ls /output/wordcount hadoop fs -cat /output/wordcount/part-r-00000 ``` 如果遇到权限问题,可以尝试在命令前加上`HADOOP_USER_NAME=hdfs`(如果当前用户没有权限)或者检查HDFS的权限设置。 根据引用[4]的经验,如果遇到类找不到的情况,可能是类名错误,所以建议使用完整的类名。 因此,推荐使用方式二。 总结命令(在终端执行): ```bash # 确保输出目录不存在,如果存在则删除 hadoop fs -rm -r /output/wordcount # 执行WordCount作业 hadoop jar /home/ylj/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar org.apache.hadoop.examples.WordCount /input/songs/wordcount.txt /output/wordcount ``` 如果执行成功,就可以查看结果了。 §§相关问题§§ 1. 如何查看Hadoop MapReduce作业的详细日志? 2. 如何调整WordCount程序以处理输入目录下的多个文件? 3. 如何自定义WordCount的输出分隔符? 4. Hadoop集群中如何监控WordCount作业的执行进度? </think> ### 使用Hadoop自带WordCount程序计算指定文件的方法 #### 步骤1:确认JAR文件位置 首先确认示例JAR文件存在(根据您的Hadoop版本): ```bash ls /home/ylj/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar ``` #### 步骤2:执行WordCount计算 使用以下命令对指定文件进行计算: ```bash hadoop jar /home/ylj/hadoop-2.5.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.2.jar \ wordcount \ /input/songs/wordcount.txt \ /output/wordcount-result ``` #### 关键说明: 1. **参数含义**: - `wordcount`:WordCount程序的入口类 - `/input/songs/wordcount.txt`:HDFS输入文件路径 - `/output/wordcount-result`:输出目录(HDFS自动创建) 2. **路径注意事项**: - 所有路径必须是**HDFS路径**,非本地路径 - 输出目录必须**不存在**(Hadoop自动创建) - 完整路径格式:`hdfs://<namenode>:<port>/path`(可省略前缀) #### 步骤3:验证结果 ```bash # 查看输出目录 hadoop fs -ls /output/wordcount-result # 查看词频统计结果 hadoop fs -cat /output/wordcount-result/part-r-00000 ``` #### 常见问题处理: 1. **权限问题**:添加配置参数 ```bash hadoop jar ... -D dfs.permissions=false ... ``` 2. **类找不到错误**:使用完整类名 ```bash hadoop jar ... org.apache.hadoop.examples.WordCount ... ``` 3. **输出目录已存在**:先删除旧目录 ```bash hadoop fs -rm -r /output/wordcount-result ``` > 注意:当处理大型文件时,作业将在YARN集群上分布式执行,可通过ResourceManager Web UI(默认8088端口)监控进度[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OnePandas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值