`
JerryLead
  • 浏览: 76368 次
  • 性别: 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出现负数的情况。

分享到:
评论

相关推荐

    Hadoop使用常见问题以及解决方法

    Hadoop使用常见问题以及解决方法,简单实用

    hadoop常见问题及解决方法

    安装hadoop的时候或者使用的时候,会出现hadoop常见问题及解决方法

    hadoop常见问题及解决办法

    在网上搜集的以及本人自己总结的hadoop集群常见问题及解决办法,融合了网上常常搜到的一些文档以及个人自己的经验。

    hadoop2.7.3 hadoop.dll

    在windows环境下开发hadoop时,需要配置HADOOP_HOME环境变量,变量值D:\hadoop-common-2.7.3-bin-master,并在Path追加%HADOOP_HOME%\bin,有可能出现如下错误: org.apache.hadoop.io.nativeio.NativeIO$Windows....

    ES和HADOOP使用问题和需求

    ES和HADOOP使用问题和需求

    《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf

    《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf《Hadoop大数据开发实战》教学教案—01初识Hadoop.pdf...

    Hadoop权威指南 中文版

     本书结合丰富的案例来展示如何用hadoop解决特殊问题,它将帮助您:  ·使用hadoop分布式文件系统(hdfs)来存储海量数据集,  通过mapreduce对这些数据集运行分布式计算  ·熟悉hadoop的数据和ilo构件,用于压缩...

    hadoop使用distcp问题解决

    hadoop使用distcp问题解决 然后用distcp从1.0.3的集群拷数据到2.0.1的集群中。 遇到问题处理

    hadoop安装过程中的问题

    (这是Hadoop的基础) 2.必须ssh无密码登录 3./etc/host 里配置 master和slaves 4.修改/etc/hostname 主机名 5、/etc/profile的java和Hadoop配置路径 6.hadoop namenode format 7./hadoop/etc/slaves这个文件里必须...

    Hadoop下载 hadoop-2.9.2.tar.gz

    Hadoop 是一个处理、存储和分析海量的分布式、非结构化数据的开源框架。最初由 Yahoo 的工程师 Doug Cutting 和 Mike Cafarella Hadoop 是一个处理、存储和分析海量的分布式、非结构化数据的开源框架。最初由 Yahoo...

    Hadoop下载 hadoop-3.3.3.tar.gz

    Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进 Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不...

    hadoop配置资源 ,hadoop-3.0.0,hadoop.dll,winutils

    调用保存文件的算子,需要配置Hadoop依赖 将文件夹中的 hadoop-3.0.0 解压到电脑任意位置 在Python代码中使用os模块...如果配置出现问题,可以参考: https://blog.csdn.net/ljqhello2008/article/details/130418888

    windows下hadoop2.7.3环境问题的解决(含说明)

    windows下hadoop2.7.3环境问题的解决,亲测win10、win7皆可使用

    hadoop集群遇到的问题及其解决方法

    hadoop安装时,会遇到不同问题,这里只是列举我自己遇到的问题

    Hadoop使用常见问题以及解决方法.doc

    Hadoop使用常见问题以及解决方法.doc Hadoop使用常见问题以及解决方法.doc

    hadoop最新版本3.1.1全量jar包

    hadoop-annotations-3.1.1.jar hadoop-common-3.1.1.jar hadoop-mapreduce-client-core-3.1.1.jar hadoop-yarn-api-3.1.1.jar hadoop-auth-3.1.1.jar hadoop-hdfs-3.1.1.jar hadoop-mapreduce-client-hs-3.1.1.jar ...

    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:快速部署Hadoop集群

    可以通过 Internet 访问“云”中的任何资源,而不需要担心计算能力、带宽、存储、安全性和可靠性等问题。 Apache Hadoop 是一个软件框架,它可以分布式 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    hadoop中文乱码问题

    NULL 博文链接:https://201201314056.iteye.com/blog/2193117

    Hadoop大数据平台安全问题和解决方案的综述

    Hadoop大数据平台安全问题和解决方案的综述,可以从这里学习到处理问题的思路。

Global site tag (gtag.js) - Google Analytics