草庐IT

Mapreduce1

全部标签

hadoop - 使用 MapReduce 在 HBase 中插入多行

我想从每个映射器批量插入N行到HBase表。我目前知道有两种方法可以做到这一点:创建Put的列表对象和使用put(Listputs)HTable的方法实例并确保禁用autoFlush参数。使用TableOutputFormat类和使用context.write(rowKey,put)方法。哪个更好?第一种方式,context.write()不需要,因为hTable.put(putsList)方法用于直接将数据放入表中。我的映射器类正在扩展ClassMapper,那么我应该为KEYOUT使用什么类呢?和VALUEOUT?在第二种方式中,我必须调用context.write(rowKey,

hadoop - 我可以使用 Combiner 在 mapreduce 作业中计算平均值吗?

我想实现一个mapreduce作业,该作业读取具有以下架构的Parquet文件:{optionalint96dropoff_datetime;optionalfloatdropoff_latitude;optionalfloatdropoff_longitude;optionalint32dropoff_taxizone_id;optionalfloatehail_fee;optionalfloatextra;optionalfloatfare_amount;optionalfloatimprovement_surcharge;optionalfloatmta_tax;optional

java - 如何在java mapreduce hadoop中获得两个键的最大计数

我有一个包含6列的txt文件,我对第三和第四列、城市和产品感兴趣,这是一个示例:2015-01-01;09:00:00;NewYork;shoes;214.05;Amex>我需要按城市获取销量最大的产品。我已经有了按城市聚合和计算所有产品的代码,这是类映射器和类缩减器的代码:importjava.io.IOException;importorg.apache.hadoop.io.IntWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapreduce.Mapper;publicclassContaMaxC

hadoop - 无法通过 ssh 进入 Elastic MapReduce

我正在使用elastic-mapreduce从命令行创建新集群。看完this教程,我有:elastic-mapreduce--create--alive\--instance-typem1.xlarge\--num-instances5\--supported-productmapr\--namem7\--args"--edition,m7"将创建一个具有6个节点(1个主节点+5个从节点)的新集群。所以我尝试通过ssh进入master:elastic-mapreduce--jobflowj-3FLVMX9CYE5L6--ssh然后我得到Permissiondenied(publicke

hadoop - 来自 AVRO Mapreduce 的错误

当我尝试在avro上运行mapreduce时出现以下错误:14/02/2620:07:50INFOmapreduce.Job:TaskId:attempt_1393424169778_0002_m_000001_0,Status:FAILEDError:org.apache.avro.generic.GenericData.createDatumWriter(Lorg/apache/avro/Schema;)Lorg/apache/avro/io/DatumWriter;我该如何解决这个问题?我已经启动并运行了Hadoop2.2。我正在使用Avro1.7.6。代码如下:packagea

java - 为什么建议将 scan.setCacheBlocks(false) 用于 mapReduce 作业?

我理解为什么scan.setCaching对mapreduce作业有好处,但我不明白为什么setCacheBlocks(false)不好。它会使服务器负担过重吗? 最佳答案 简而言之-是,如果您在mapreduce作业中将blockcaching设置为true,它会给RegionServer带来负担。当您主要在输入扫描上使用mapreduce作业时,最近扫描的输入将在下一个映射阶段被丢弃。Blockcache是​​LRU..第一次请求的时候把数据放入Blockcache,第二次请求的时候发现没用就交换,然后继续。所以RegionSe

hadoop - 使用 hadoop mapreduce 确定用于重复数据删除的键值对

我想使用HadoopMapreduce实现文件重复数据删除。我计划通过计算映射器函数中输入目录中存在的所有文件的MD5总和来实现。这些MD5散列将成为reducer的关键,因此具有相同散列的文件将进入同一个reducer。Hadoop中的mapper默认是key是行号,value是文件的内容。我还读到如果文件很大,那么它会被分成64MB的block,这是Hadoop中的最大块大小。如何将键值设置为文件名,以便在我的映射器中计算文件的哈希值?还有如何保证不会有两个节点计算同一个文件的哈希值? 最佳答案 如果您需要将整个文件作为一个映射

hadoop - 使用 Tez 的 MapReduce

我正在创建一个验证工具来检查ApacheTez是否在Hadoop的hortonworks发行版中工作,为此我需要检查一个简单的mapreduce程序是否正在Tez上执行,我可以看到mapred-default.xml中的一个属性必须更改。mapreduce.framework.name=yarn-tez(ref:http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.0.2/bk_installing_manually_book/content/rpm-chap-tez-2.html)我不想更改集群的任何设置,那么有什么方法可以在不触

hadoop - Hive 阶段 mapreduce

我是Hive的新手。我几乎没有怀疑。我想知道Hive如何将查询转换为MapReduce作业?我查看了解释命令,它为我提供了一个阶段计划,并且依赖项。我想知道阶段的细节。这些阶段如何有定义吗?如何控制MapReduce的执行。假设我想改变Reducejoin到mapsidejoin。 最佳答案 在抽象层面上,当你在hive中执行查询时会发生以下事情解析查询并创建抽象语法树然后将AST转换为MapReduce任务的DAG然后为每个MapReduce任务创建一个Runnable。然后MapReduce任务将被序列化为xml文件(存储在/t

hadoop - 在远程服务器上存储 mapreduce 中间输出

我使用一个由16个节点组成的hadoop(1.2.0版)集群,其中一个具有公共(public)IP(主节点),另外15个节点通过专用网络连接(从节点)。是否可以使用远程服务器(除了这16个节点之外)来存储映射器的输出?问题是节点在映射阶段磁盘空间不足而且我无法再压缩map输出。我知道mapred-site.xml中的mapred.local.dir用于设置存储tmp文件的目录的逗号分隔列表。理想情况下,我希望在远程服务器上有一个本地目录(默认目录)和一个目录。当本地磁盘满了,然后我想使用远程磁盘。 最佳答案 我对此不是很确定,但根据