第一步是运行TeraGen来产生数据,原始命令如下:
root@master:/opt/hadoop-0.20.2# hadoop jar hadoop-0.20.2-examples.jar teragen 10000000000 /user/terasort/input1TB
由于Hadoop默认的配置文件中,设置的map task个数为2,而teragen也没给设定map task个数的命令行参数,因此teragen默认就启2个map,1个reduce,这对于有多个节点的集群来说利用率太低。
修改命令如下:
root@master:/opt/hadoop-0.20.2# hadoop jar hadoop-0.20.2-examples.jar teragen -Dmapred.map.tasks=10 10000000000 /user/terasort/input1TB
这样就设定了map task的个数为10.
问题:
今天突然发现产生TeraGen产生的数据rowid部分有误,如下:
<gr*,2G+!6-192184201CCCCCCCCCCDDDDDDDDDDEEEEEEEEEEFFFFFFFFFFGGGGGGGGGGHHHHHHHHHHIIIIIIIIIIJJJJJJJJ
2rC#0Zuzo2-192184201KKKKKKKKKKLLLLLLLLLLMMMMMMMMMMNNNNNNNNNNOOOOOOOOOOPPPPPPPPPPQQQQQQQQQQRRRRRRRR
lR6'\mML<x-192184201SSSSSSSSSSTTTTTTTTTTUUUUUUUUUUVVVVVVVVVVWWWWWWWWWWXXXXXXXXXXYYYYYYYYYYZZZZZZZZ
红色部分应该是正数(代表第几行)才对,怎么成了负数,原来TeraGen代码里面有问题:
private void addRowId(long rowId) {
byte[] rowid = Integer.toString((int) rowId).getBytes();
int padSpace = 10 - rowid.length;
if (padSpace > 0) {
value.append(spaces, 0, 10 - rowid.length);
}
value.append(rowid, 0, Math.min(rowid.length, 10));
}
第一行竟然对long型的rowId用了int强制类型转化,这样rowid怎么可能超过4个bytes,而设计的是10个bytes,因此就造成了rowid出现负数的情况。
分享到:
相关推荐
org.apache.hadoop.examples.terasort org.apache.hadoop.filecache org.apache.hadoop.fs org.apache.hadoop.fs.ftp org.apache.hadoop.fs.http.client org.apache.hadoop.fs.http.server org.apache.hadoop....
9. **Hadoop Tools**: 包含了与Hadoop交互的各种工具,如 FsShell、DistCp、TeraSort 等。 通过分析和编译这些源代码,开发者可以了解Hadoop的每一个细节,包括数据流的处理、文件系统的操作、资源调度的策略等。这...
《TeraByte Sort on Apache Hadoop》这篇论文不仅详细介绍了如何使用Hadoop进行大规模数据排序的具体实现,还提供了宝贵的实践经验和技术细节,对于理解和运用Hadoop解决大数据问题具有重要的参考价值。通过TeraGen...
Spark-Terasort TeraSort是一种流行的基准测试,用于衡量在给定群集上对1 TB随机分布的数据(或所需的任何其他数据量)进行排序的时间。 它最初是用来测量Apache:trade_mark:Hadoop:registered:集群的MapReduce性能...
mapreduce-client-jobclient-3.3.3-tests.jar teragen <number-of-records> <output-dir>`生成测试数据,然后执行`hadoop jar hadoop-mapreduce-client-jobclient-3.3.3-tests.jar terasort <output-dir> ...
一、前言 我们小组主要对基于[hadoop的大规模数据排序算法、海量数据的生成做了一定的研究。我们首先对于hadoop做了初步了解,其次,mapreduce是hadoop的很重要的... java, terasort。下面的正文中将作出具体的介绍。
然而,社区版Hadoop存在一些挑战,如系统一致性、安装复杂性、管理和监控问题,这些问题在英特尔的发行版中得到了解决。 英特尔® Hadoop发行版2.2针对企业级用户进行了优化,确保了稳定性和效率,并且已经在多个...
Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它的出现主要解决了大数据处理的问题。这个压缩包文件包含了Hadoop的不同版本,这些版本可能是为了满足不同测试环境的需求,以便开发者或者数据工程师能够...
- **Hadoop工具集**:包括DistCp用于大量数据复制,TeraSort进行排序基准测试等。 9. **Hadoop实战** 面试中可能会问到如何解决特定场景下的问题,如数据倾斜、容错处理、性能瓶颈分析等。 10. **Hadoop与云计算...
5. **故障注入测试**:为了确保Hadoop在出现硬件故障或网络问题时能正常运行,故障注入测试会人为地引入错误条件。这有助于验证Hadoop的容错机制,如数据复制和作业恢复。 6. **安全测试**:在安全性成为首要考虑...
例如,Nytro MegaRAID卡能减少Hadoop TeraSort任务的完成时间,提升数据中心效率。 【效率与成本】通过对带宽和延迟的优化,数据中心可以实现更高的单位成本效率,同时通过提高工作负载带宽和降低延迟,提升服务器...
8. **TeraSort**: TeraSort是一个大数据排序基准测试,目标是在一万亿条记录中实现全局排序,这里Hadoop提供了实现此挑战的示例。 通过研究这些源代码,我们可以了解Hadoop如何处理输入输出,如何编写Mapper和...
本文深入分析了在Apache Hadoop框架上运行的TeraSort工作负载的Java垃圾收集(GC)特性,并对如何调整GC行为进行了详细探讨。TeraSort是Apache Hadoop分发版中带有的一个示例MapReduce应用程序,它用于排序数TB级的...
3. **Hadoop TeraSort**:用于Hadoop集群的排序性能测试。 4. **Apache Hive**和**Pig**:提供SQL-like查询的工具,可用于测试数据处理能力。 5. **Apache Spark**:支持交互式数据处理和批量分析,可用于性能测试。...
文章还提到了调试和优化注意事项,强调在实际应用过程中可能遇到的网络连接、操作系统和驱动程序优化问题,以及Hadoop配置参数的调整问题。这些都需要在部署和实施Hadoop解决方案时充分考虑,以确保最佳的性能和成本...