hadoop mapreduce作业对Cassandra的结果是错误的

hadoop mapreduce作业对Cassandra的结果是错误的,hadoop,nosql,mapreduce,cassandra,Hadoop,Nosql,Mapreduce,Cassandra,我有7个节点的cassandra(1.1.1)和hadoop(1.03)集群(tasktracker在每个cassandra节点上安装相同的) 我的列族使用宽行模式。一行包含大约200k列(最多约300k列) 我的问题是,当我们使用Hadoop运行分析作业(计算单词出现的次数)时,我收到的结果是错误的(结果比我在测试记录中预期的要低) 当我们在job tracker上监视时,有一个奇怪的现象是映射进度任务指示错误(在我的下图中),并且当我重新运行job(相同的数据)时,“映射输入记录”的数量不一

我有7个节点的cassandra(1.1.1)和hadoop(1.03)集群(tasktracker在每个cassandra节点上安装相同的)

我的列族使用宽行模式。一行包含大约200k列(最多约300k列)

我的问题是,当我们使用Hadoop运行分析作业(计算单词出现的次数)时,我收到的结果是错误的(结果比我在测试记录中预期的要低)

当我们在job tracker上监视时,有一个奇怪的现象是映射进度任务指示错误(在我的下图中),并且当我重新运行job(相同的数据)时,“映射输入记录”的数量不一样

以下是我的初始作业代码:

    Job job = new Job(conf);
    job.setJobName(this.jobname);
    job.setJarByClass(BannerCount.class);

    job.setMapperClass(BannerViewMapper.class);
    job.setReducerClass(BannerClickReducer.class);
    FileSystem fs = FileSystem.get(conf);

    ConfigHelper.setInputRpcPort(job.getConfiguration(), "9160");
    ConfigHelper.setInputInitialAddress(job.getConfiguration(), "192.168.23.114,192.168.23.115,192.168.23.116,192.168.23.117,192.168.23.121,192.168.23.122,192.168.23.123");
    ConfigHelper.setInputPartitioner(job.getConfiguration(), "org.apache.cassandra.dht.RandomPartitioner");
    ConfigHelper.setInputColumnFamily(job.getConfiguration(), KEYSPACE, COLUMN_FAMILY, true);
    ConfigHelper.setRangeBatchSize(job.getConfiguration(), 500);


    SlicePredicate predicate = new SlicePredicate();
    SliceRange sliceRange = new SliceRange();
    sliceRange.setStart(ByteBufferUtil.EMPTY_BYTE_BUFFER);
    sliceRange.setFinish(ByteBufferUtil.EMPTY_BYTE_BUFFER);
    sliceRange.setCount(200000);
    predicate.setSlice_range(sliceRange);
    ConfigHelper.setInputSlicePredicate(job.getConfiguration(), predicate);

    String outPathString = "BannerViewResultV3" + COLUMN_FAMILY;
    if (fs.exists(new Path(outPathString)))
        fs.delete(new Path(outPathString), true);

    FileOutputFormat.setOutputPath(job, new Path(outPathString));

    job.setInputFormatClass(ColumnFamilyInputFormat.class);
    job.setOutputFormatClass(TextOutputFormat.class);

    job.setMapOutputKeyClass(Text.class);
    job.setMapOutputValueClass(LongWritable.class);

    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(LongWritable.class);
    job.setNumReduceTasks(28);
    job.waitForCompletion(true);
    return 1;

日志中有没有提到某些映射程序失败并必须重新运行的原因?tasktracker日志中没有错误消息,也没有失败的映射程序或还原程序。但是我现在很困惑!!