草庐IT

str_shuffle

全部标签

Hadoop shuffle 使用哪种协议(protocol)?

在Hadoop数据的洗牌阶段,映射数据在集群的节点之间传输根据reducer的分区。Hadoop使用什么协议(protocol)在reduce阶段跨节点执行数据洗牌? 最佳答案 我第一次真的笑了,但是整个洗牌和合并是由一个HTTPServlet完成的。您可以在匿名类MapOutputServlet的Tasktrackers源代码中看到这一点。它获取带有任务和作业ID的HTTP请求,然后它将传输传入的输入流进入磁盘上的本地文件系统。 关于Hadoopshuffle使用哪种协议(protoc

hadoop - 当 mapred.job.shuffle.input.buffer.percent=0.70 时,pig join 在 reducer 中出现 OutOfMemoryError

我们正在一个小表和一个大倾斜表之间进行简单的pig连接。由于另一个错误(pigskewedjoinwithabigtablecauses"Splitmetadatasizeexceeded10000000"),我们无法使用"usingskewed":(如果我们使用默认的mapred.job.shuffle.input.buffer.percent=0.70我们的一些reducer在shuffle阶段会失败:org.apache.hadoop.mapred.Task:attempt_201305151351_21567_r_000236_0:Mapoutputcopyfailure:ja

mysql - auxService :mapreduce_shuffle does not exist

当我尝试运行以下命令时:#sqoopimport--connectjdbc:mysql://IPAddress/database--usernameroot--passwordPASSWORD--tabletable_name--m1从mysql数据库导入数据到HDFS,报错:TheauxService:mapreduce_shuffledoesnotexist.搜索并浏览了很多网站,没有任何帮助。如何解决这个问题?如果需要更多输入,请告诉我。 最佳答案 它是您在yarn-site.xml中丢失的一个条目。在名称节点和数据节点中应用

hadoop - Hadoop 中 map、shuffle、merge 和 reduce 时间的精确定义

在Hadoop中,作业执行后会提供以下指标:map时间减少时间洗牌时间合并时间我找不到这些时间的确切定义,因为所有来源都不清楚这些时间是如何准确计算的。这是我的看法:map时间是读取输入和应用map功能以及排序数据的时间reduce时间是应用reduce函数并编写输出的时间Shuffletime是mergemap排序数据传输到reducer的时间合并时间是仅在reduce端合并map输出的时间我不确定粗体部分。我的分析正确吗? 最佳答案 我决定研究Hadoop代码以获得更多见解。下图解释了我的发现。我发现:map时间是maptask

hadoop - Map only 任务中会出现 Shuffle 和 sort 吗?

shuffle和sort阶段是在map任务结束之前进行,还是在map任务生成输出之后进行,以便不再回头查看map任务。这是一个让我感到困惑的“仅限maptask”案例。如果在Maponly任务中没有Shuffle和sort,谁能解释一下数据是如何写入最终输出文件的。 最佳答案 当你有一个map-only任务时,根本没有混洗,这意味着映射器会将最终输出直接写入HDFS。另一方面,当你有一个完整的Map-Reduce程序时,带有映射器和缩减器,是的,洗牌可以在缩减阶段开始之前开始。引用thisveryniceanswer所以:First

hadoop - 为什么join和group by会影响spark中的数据shuffle量

我正在使用spark,我看到当一个查询有很多连接操作并且groupbyspark需要做很多洗牌操作。我一直在寻找信息为什么会发生这种情况,但我没有找到任何具体的信息。你能帮助理解这个吗? 最佳答案 Sparkshuffles只是在集群中移动数据。因此,任何需要分区中本地不存在的数据的转换都会执行洗牌。查看连接,每个分区都需要经过整个连接的df才能完成操作,因此完成了一个洗牌,基本上将连接的df移动到每个事件分区。groupbykey也会发生同样的事情,其中​​所有相同的键都需要在同一个分区中结束,以便随机播放将它们移到那里。如您所见

hadoop - 为什么我的 BroadcastHashJoin 比 Spark 中的 Shuffle Hash Join 慢

我在Spark中使用javaHiveContext执行连接。大表是1,76Gb,有1亿条记录。第二个表是273Mb,有1000万条记录。我得到一个JavaSchemaRDD并在其上调用count():Stringquery="selectattribute7,count(*)fromft,dtwhereft.chiavedt=dt.chiavedtgroupbyattribute7";JavaSchemaRDDrdd=sqlContext.sql(query);System.out.println("count="+rdd.count());如果我强制执行broadcastHashJo

hadoop - 辅助服务 :mapreduce_shuffle does not exist on hive

我正在使用hive1.2.0和hadoop2.6.0。每当我在我的机器上运行配置单元时...选择查询工作正常但在count(*)的情况下它显示以下错误:DiagnosticMessagesforthisTask:Containerlaunchfailedforcontainer_1434646588807_0001_01_000005:org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException:TheauxService:mapreduce_shuffledoesnotexistatsun.reflect.NativeCon

performance - spark.sql.shuffle.partitions 和 spark.default.parallelism 有什么区别?

spark.sql.shuffle.partitions和spark.default.parallelism有什么区别?我在SparkSQL中都尝试过设置,但是第二阶段的任务数一直是200。 最佳答案 来自答案here,spark.sql.shuffle.partitions配置在为连接或聚合改组数据时使用的分区数。spark.default.parallelism是RDD中的默认分区数s由join等转换返回,reduceByKey,和parallelize当用户未明确设置时。注意spark.default.parallelism似

java - 替换字符串中的多个单词 ln java like php str_replace

我需要在java中找到一种类似的巧妙方法来执行多字符串替换,就像您在php中使用str_replace执行此操作一样。我想获取一个字符串,然后返回一个字符串,其中数字1到10替换为这些数字的单词。“我赢了10场比赛中的7场,获得了30美元。”=>“我赢了十场比赛中的七场比赛并获得了30美元。”在php中,你可以这样做:functionreplaceNumbersWithWords($phrase){$numbers=array("1","2","3","4","5","6","7","8","9","10");$words=array("one","two","three","four