草庐IT

mapReduce

全部标签

hadoop - 无法标记文件数据

我是hadoop和mapreduce的新手。在映射器中,我将使用以下给定格式的文本文件中的前几行标记这些数据9593C58F7C1C5CE4970916072134levis9593C58F7C1C5CE4970916072311levisstrause&co9593C58F7C1C5CE4970916072339levis501jeans45531846E8E7C12797091606585945531846E8E7C12797091606593545531846E8E7C127970916070105"brazilliansoccerteams"45531846E8E7C12797

hadoop - 什么影响Hbase性能

我是HBase的初学者。我目前不确定是什么影响了HBase的性能。首先,我以独立模式运行Hbase。我用单机运行Mapreduce程序处理200万文本行,并将结果输出到存储在本地文件系统中的HBase表中。大约用了1小时40分钟。然后我改成了伪分布式模式。Htable文件然后存储在HDFS中。包括程序在内的所有其他内容保持不变。然后花了3个多小时!!我完全糊涂了。谁能告诉我为什么会这样?另一个问题,因为我在一台不是很强大的Linux机器上创建了5个虚拟机作为虚拟集群(8G内存。3GHz4核CPU)。当我一个月前运行Mapreduce程序时,我发现在单个主服务器或5个以上的从服务器上运行

hadoop - MapReduce 不适合哪些任务?

我想知道是否有任何任务示例不适合MapReduce。有一些具体的例子会很棒。谢谢! 最佳答案 其中一些可能是主观的,所以我会尽量坚持最认同的:流数据--MapReduce本质上是批处理的。您在MapReduce中编写的内容时不时地运行,但很难获得它,因此它会处理实时传入的数据流。有一些项目正在计划解决这个问题,例如Storm。实时分析--同样,MapReduce是批处理的,专为聚合和大规模性能量身定制,无法快速获得答案。每个作业预计会有1-2分钟的开销,因此使用MapReduce获得不到一分钟的响应时间非常具有挑战性。这与作为软件的

hadoop守护进程没有启动

我已经在linux集群中安装了Hadoop。当我尝试通过命令启动服务器时$bin/start-all.sh,我收到以下错误:mkdir:cannotcreatedirectory`/var/log/hadoop/spuri2':Permissiondeniedchown:cannotaccess`/var/log/hadoop/spuri2':Nosuchfileordirectory/home/spuri2/spring_2012/Hadoop/hadoop/hadoop-1.0.2/bin/hadoop-daemon.sh:line136:/var/run/hadoop/hadoo

hadoop - 你能知道有多少输入值在 Hadoop 中有 reducer 而无需迭代它们吗?

我正在Hadoop中编写一个Reducer,我正在使用它的输入值来构建一个编码元素列表的字节数组。我写入数据的缓冲区大小取决于reducer接收到的值的数量。提前在内存中分配它的大小会很有效,但如果不使用“foreach”语句对其进行迭代,我不知道有多少值。Hadoop输出是一个HBase表。更新:使用映射器处理我的数据后,reducer键具有幂律分布。这意味着只有少数键具有很多值(最多9000),但大多数键只有几个值。我注意到通过分配一个4096字节的缓冲区,97.73%的值都适合它。对于其余的,我可以尝试重新分配一个双倍容量的缓冲区,直到所有值都适合它。对于我的测试用例,这可以通过

map - JobConf 中未设置输出目录

我在下面提到一个简单的mapR程序的驱动程序代码importorg.apache.hadoop.fs.Path;importorg.apache.hadoop.io.IntWritable;importorg.apache.hadoop.io.Text;importorg.apache.hadoop.mapred.JobClient;importorg.apache.hadoop.mapred.JobConf;importorg.apache.hadoop.mapreduce.Job;importorg.apache.hadoop.mapreduce.lib.input.FileInp

map - hadoop过滤 map 输出

我有一个用例,其中映射阶段生成的某些键需要在减少开始之前被过滤掉。这样的事情可行吗?请告诉我。 最佳答案 修改MapperClass过滤输入会更准确,因为combiner的执行是无法保证的,Hadoop可能会也可能不会执行combiner。此外,如果需要,它可以执行1次以上。因此,您的MapReduce作业不应依赖于组合器的执行。 关于map-hadoop过滤map输出,我们在StackOverflow上找到一个类似的问题: https://stackover

hadoop - 更改 Hadoop 中的数据节点数

如何改变数据节点的数量,即禁用和启用某些数据节点来测试可伸缩性?更清楚一点,我有4个数据节点,我想用1、2、3、4个数据节点一一试验性能。是否可以只更新namenode中的slaves文件? 最佳答案 临时下线节点的正确方式:创建一个“排除文件”。这会列出您希望删除的主机,每行一个。将dfs.hosts.exclude和mapred.hosts.exclude设置为此文件的位置。通过hadoopdfsadmin-refreshNodes和hadoopmradmin-refreshNodes更新namenode和jobtracker这

mongodb - 在 Hadoop 中提交 MapReduce 作业时找不到 com.mongodb.hadoop.MongoOutputFormat

我遵循本教程http://www.mongodb.org/display/DOCS/Hadoop+Quick+Start构建mongodb-hadoop。我尝试构建TreasuryYield示例(我的Hadoop版本是0.20.2。),但是当我提交MapReduce作业时出现以下错误:12/10/2414:01:09INFOutil.MongoTool:Createdaconf:'Configuration:core-default.xml,core-site.xml,mongo-defaults.xml,mongo-treasury_yield.xml'on{classcom.mon

java - hadoop: reducer 的数量保持不变 4

我正在使用mapred.reduce.tasks=100运行hadoop作业(只是试验)。生成的map数量为537,因为这取决于输入拆分。问题是并行“运行”的reducer数量不会超过4个。即使在map100%完成之后。有没有办法增加运行的reducer的数量,因为CPU使用率不是最佳的并且Reduce非常慢。我还设置了mapred.tasktracker.reduce.tasks.maximum=100。但这似乎并不影响并行运行的reducer数量。 最佳答案 检查分区程序使用的哈希码;如果您的键只返回4个哈希码值,Hadoop将