- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我计划在 Hadoop 0.20.2 中的 TeraSort 类的映射器中插入一些代码。但是查看源码,找不到mapper实现的那段。通常,我们会看到一个名为 job.setMapperClass() 的方法,它指示映射器类。但是,对于 TeraSort,我只能看到 setInputformat、setOutputFormat 之类的东西。我找不到调用 mapper 和 reduce 方法的位置?任何人都可以对此提供一些提示吗?谢谢,源码是这样的,
public int run(String[] args) throws Exception {
LOG.info("starting");
JobConf job = (JobConf) getConf();
Path inputDir = new Path(args[0]);
inputDir = inputDir.makeQualified(inputDir.getFileSystem(job));
Path partitionFile = new Path(inputDir, TeraInputFormat.PARTITION_FILENAME);
URI partitionUri = new URI(partitionFile.toString() +
"#" + TeraInputFormat.PARTITION_FILENAME);
TeraInputFormat.setInputPaths(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
job.setJobName("TeraSort");
job.setJarByClass(TeraSort.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
job.setInputFormat(TeraInputFormat.class);
job.setOutputFormat(TeraOutputFormat.class);
job.setPartitionerClass(TotalOrderPartitioner.class);
TeraInputFormat.writePartitionFile(job, partitionFile);
DistributedCache.addCacheFile(partitionUri, job);
DistributedCache.createSymlink(job);
job.setInt("dfs.replication", 1);
// TeraOutputFormat.setFinalSync(job, true);
job.setNumReduceTasks(0);
JobClient.runJob(job);
LOG.info("done");
return 0;
}
对于其他类,如 TeraValidate,我们可以找到如下代码,
job.setMapperClass(ValidateMapper.class);
job.setReducerClass(ValidateReducer.class);
我看不到 TeraSort 的此类方法。
谢谢,
最佳答案
为什么一个排序需要为它设置Mapper
和Reducer
类?
默认值是标准的Mapper
(以前的身份Mapper)和标准的Reducer
。这些是您通常继承的类。
您基本上可以说,您只是从输入中发出所有内容,然后让 Hadoop 进行自己的排序工作。所以排序是“默认”的。
关于hadoop - 为什么不为 hadoop TeraSort 映射器/ reducer ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6565255/
在通过修改参数运行 terasort 应用程序时,我收到以下错误。 15/05/24 21:41:42 ERROR terasort.TeraSort: Input path does not exi
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我有一个 Cloudera Hadoop 集群,我正在做一些运行 Terasort 的基准测试,但我在 105 - 150 分钟内得到非常不稳定的结果。有时我看到它比平时复制更多或进行大量垃圾收集,但
我正在使用 Hadoop 单节点,稍后可能会转向多节点。现在同一个节点既是主节点也是从节点,因此 namenode、datanode resource manager 和 node manager 是
在 Hadoop 的 Terasort 实现中,有一个名为 TeraScheduler 的调度程序。通读代码后,调度程序基本上执行以下操作: 选择 split 次数最少的宿主 对于该主机,选择主机数量
我计划在 Hadoop 0.20.2 中的 TeraSort 类的映射器中插入一些代码。但是查看源码,找不到mapper实现的那段。通常,我们会看到一个名为 job.setMapperClass()
在运行 map 和 reducer 启动时,它从0变为100失败,并显示: 15/05/12 07:21:27 INFO terasort.TeraSort: starting 15/05/12 07
我正在尝试分析哪些函数在 TeraSort Hadoop 作业中消耗的时间最多。对于我的测试系统,我使用的是基本的单节点伪分布式设置。这意味着 NameNode、DataNode、Tasktracke
我有一个包含 15 个节点(1 个主节点和 14 个从节点)的 hadoop 集群,其中 HDFS 的复制因子为 3。我使用以下命令在 YARN 中运行了 10GB 的 TeraSort: yarn
我有一个包含 terasort 的 spark bench,当数据只有几百 GB 时它可以正常运行,但是当我生成更多数据(例如 1 TB)时,它在某些步骤中出错了。以下是我的代码: import or
我正在尝试运行 spark-terasort使用 spark-1.6.1-bin-hadoop1(hadoop 1.X 的预构建包)。 当我尝试运行 spark 时: ./bin/spark-subm
我是一名优秀的程序员,十分优秀!