`
JerryLead
  • 浏览: 77055 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Hadoop的TeraSort问题

阅读更多

第一步是运行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默认就启2map1reduce,这对于有多个节点的集群来说利用率太低。

 

修改命令如下:

 

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出现负数的情况。

分享到:
评论

相关推荐

    hadoop0.23.9离线api

    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....

    hadoop-2.7.6src.tar.gz的压缩包

    9. **Hadoop Tools**: 包含了与Hadoop交互的各种工具,如 FsShell、DistCp、TeraSort 等。 通过分析和编译这些源代码,开发者可以了解Hadoop的每一个细节,包括数据流的处理、文件系统的操作、资源调度的策略等。这...

    TeraByte Sort on Apache Hadoop

    《TeraByte Sort on Apache Hadoop》这篇论文不仅详细介绍了如何使用Hadoop进行大规模数据排序的具体实现,还提供了宝贵的实践经验和技术细节,对于理解和运用Hadoop解决大数据问题具有重要的参考价值。通过TeraGen...

    Spark-terasort:Spark Terasort基准测试

    Spark-Terasort TeraSort是一种流行的基准测试,用于衡量在给定群集上对1 TB随机分布的数据(或所需的任何其他数据量)进行排序的时间。 它最初是用来测量Apache:trade_mark:Hadoop:registered:集群的MapReduce性能...

    Hadoop 分布式部署配置及基准性能测试

    mapreduce-client-jobclient-3.3.3-tests.jar teragen &lt;number-of-records&gt; &lt;output-dir&gt;`生成测试数据,然后执行`hadoop jar hadoop-mapreduce-client-jobclient-3.3.3-tests.jar terasort &lt;output-dir&gt; ...

    Hadoop应用实例:基于Hadoop的大规模数据排序算法pdf

    一、前言 我们小组主要对基于[hadoop的大规模数据排序算法、海量数据的生成做了一定的研究。我们首先对于hadoop做了初步了解,其次,mapreduce是hadoop的很重要的... java, terasort。下面的正文中将作出具体的介绍。

    英特尔Hadoop发行版 2.2 开发者指南

    然而,社区版Hadoop存在一些挑战,如系统一致性、安装复杂性、管理和监控问题,这些问题在英特尔的发行版中得到了解决。 英特尔® Hadoop发行版2.2针对企业级用户进行了优化,确保了稳定性和效率,并且已经在多个...

    hadoop各个版本,用于测试需要

    Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它的出现主要解决了大数据处理的问题。这个压缩包文件包含了Hadoop的不同版本,这些版本可能是为了满足不同测试环境的需求,以便开发者或者数据工程师能够...

    hadoop面试题

    - **Hadoop工具集**:包括DistCp用于大量数据复制,TeraSort进行排序基准测试等。 9. **Hadoop实战** 面试中可能会问到如何解决特定场景下的问题,如数据倾斜、容错处理、性能瓶颈分析等。 10. **Hadoop与云计算...

    hadoop-testing:说明 Hadoop 中的测试示例

    5. **故障注入测试**:为了确保Hadoop在出现硬件故障或网络问题时能正常运行,故障注入测试会人为地引入错误条件。这有助于验证Hadoop的容错机制,如数据复制和作业恢复。 6. **安全测试**:在安全性成为首要考虑...

    大型数据中心演进历程——Robert+Ober:LSI高级专家兼LSI公司副总裁_IT168文库1

    例如,Nytro MegaRAID卡能减少Hadoop TeraSort任务的完成时间,提升数据中心效率。 【效率与成本】通过对带宽和延迟的优化,数据中心可以实现更高的单位成本效率,同时通过提高工作负载带宽和降低延迟,提升服务器...

    hadoop-examples-src:适用于实时测试的Hadoop Examples Src

    8. **TeraSort**: TeraSort是一个大数据排序基准测试,目标是在一万亿条记录中实现全局排序,这里Hadoop提供了实现此挑战的示例。 通过研究这些源代码,我们可以了解Hadoop如何处理输入输出,如何编写Mapper和...

    GarbageCollectionTuningforHadoopTeraSort

    本文深入分析了在Apache Hadoop框架上运行的TeraSort工作负载的Java垃圾收集(GC)特性,并对如何调整GC行为进行了详细探讨。TeraSort是Apache Hadoop分发版中带有的一个示例MapReduce应用程序,它用于排序数TB级的...

    大数据测试方法和工具梳理.docx

    3. **Hadoop TeraSort**:用于Hadoop集群的排序性能测试。 4. **Apache Hive**和**Pig**:提供SQL-like查询的工具,可用于测试数据处理能力。 5. **Apache Spark**:支持交互式数据处理和批量分析,可用于性能测试。...

    应用大数据技术获得近实时分析巨大成效

    文章还提到了调试和优化注意事项,强调在实际应用过程中可能遇到的网络连接、操作系统和驱动程序优化问题,以及Hadoop配置参数的调整问题。这些都需要在部署和实施Hadoop解决方案时充分考虑,以确保最佳的性能和成本...

Global site tag (gtag.js) - Google Analytics