当我希望更改适用于将来写入该目录的文件时,有没有办法在Hadoop中更改目录的复制因子?
我使用以下命令生成项目:
$ mvn archetype:generate
构建失败期间出现的错误是:
INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Old (1.x) Archetype: maven-archetype-quickstart:1.1
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: com.man.gir
[INFO] Parameter: packageName, Value: com.man.gir
[INFO] Parameter: package, Value: com.man.gir
[INFO] Parameter: artifactId, Value: b-e
[INFO] Parameter: basedir, Value: /home/hduser/testing
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 37.798 s
[INFO] Finished at: 2014-11-05T18:38:43+05:30
[INFO] Final Memory: 12M/124M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.2:generate (default-cli) …Run Code Online (Sandbox Code Playgroud) 我们最近使用以下配置测试了 G1 垃圾收集器:
-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseG1GC -XX:MaxGCPauseMillis=1250 -XX:+PrintTenuringDistribution -Xloggc:${logdir}/gc-$(date +%Y_%m_%d -%H_%M).log -XX:+UseStringDeduplication -XX:+PrintStringDeduplicationStatistics -XX:+PrintPromotionFailure -XX:+PrintAdaptiveSizePolicy -XX:+PrintHeapAtGC -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=15 -XX:ParallelGCThreads=8 -XX:+ParallelRefProcEnabled -XX:G1HeapRegionSize=8M JAVA_OPTS_HEAP: -Xms16g -Xmx16g
我们最近遇到一个问题,两个 java 进程在具有 48 GB RAM 的机器上以上述配置运行,并且两个进程各自消耗大约 20 - 22 GB RAM(少数小进程消耗剩余内存) ,从而填满整个 RAM,然后触发磁盘交换,最终导致 OOM 和进程被杀死。
这似乎令人担忧,因为 NMT 都没有以有意义的方式报告内存使用情况,我们也没有从 GC 日志中获得任何有关此使用情况的线索。在 NMT 统计中,应用程序内存低于 16G,元空间使用量低于 1G。
我们尝试将 maxMetaSpaceSize 设置为 2G,但这也没有帮助。当进程运行数天时,RAM 使用量似乎会无限增长。
从其他问题来看,G1 垃圾收集器确实倾向于消耗更多内存,但磁盘交换是一个令人担忧的问题。有人可以提供一些有关如何解决此问题的指示吗?
我的输出出错了.输入文件是:
1 2 3 4
5 4 3 2
输出应该是关键:总和值:24
MapReduce产生的输出:key:总和值:34
我在Ubuntu 14.04中使用OpenJDK 7来运行jar文件,而jar文件是在Eclipse Juna中创建的,使用的java版本是Oracle JDK 7来编译它.NumberDriver.java
包装数量;
import java.io.*;
//import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
//import org.apache.hadoop.mapreduce.Mapper;
//import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;
public class NumberDriver {
public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
// TODO Auto-generated method stub
Configuration conf=new Configuration();
String[] otherArgs=new GenericOptionsParser(conf,args).getRemainingArgs();
if(otherArgs.length!=2)
{
System.err.println("Error");
System.exit(2);
}
Job job=new Job(conf, "number sum");
job.setJarByClass(NumberDriver.class);
job.setMapperClass(NumberMapper.class);
job.setReducerClass(NumberReducer.class); …Run Code Online (Sandbox Code Playgroud)