草庐IT

emp_performance

全部标签

performance - Hadoop减少内存中的洗牌合并

我在ReduceMerge阶段遇到了一些性能问题,我想知道是否有人可以看一下。我有一个6GB的数据集(文本),均匀分布在集群上,该数据集有两个键,然后我将其GroupBy放入两个缩减器(我正在使用级联)。所以每个reducer有3GB的数据。我给每个reducer12GB的内存,但我仍然看到20分钟的合并阶段。两个问题:这个合并不应该完全在内存中完成(如果我有12GB的堆)。即使没有内存合并,20分钟对于合并3GB来说似乎也太长了,尤其是在一个节点上有12个磁盘(JBOD)和12个内核的情况下。我想知道我是否将部分合并数据写入了错误的位置(HDFS,还是本地?)。MAPRFS_BYTE

performance - 在配置单元中分区

我在配置单元中使用静态分区根据日期字段将数据隔离到子目录中,我需要为每个表(总共14个表)每年365个分区,因为我每天都会加载到配置单元中。在hive中可以创建的静态分区的数量是否有任何限制?如果“hive.exec.max.dynamic.partitions.pernode”,动态分区会出错在sqoopimport中超过了指定的thresold(100)我有5个节点的HDP集群,其中3个是数据节点如果我增加可以在hive中创建的分区数量,它会影响集群的性能吗?该限制仅适用于动态分区还是也适用于静态分区?引用检查故障排除和最佳实践部分https://cwiki.apache.org/

performance - 使映射器处理多个文件而不是单个文件

我有一个hadoop映射器代码,它将文件作为输入处理它们,并将单个键和处理后的值发送到reducer。问题是我有将近100000个不超过5.6kb的文本文件,但是当我运行该作业时,它需要很长时间才能完成。一个原因是每个映射器开始时只处理一个文件,然后被销毁。因此,即使处理在计算上并不昂贵,我也会在映射器启动时浪费很多时间。我如何确保映射器继续处理多个文件?我的映射器最大限制是默认设置,我可以看到它是6。如果需要任何进一步的详细信息,请告诉我。 最佳答案 你应该使用CombineFileInputFormat处理许多小文件。这确实有助

performance - 使用 ganglia 监控 hadoop 集群上的磁盘 I/O

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭7年前。Improvethisquestion我部署了hadoop2(HDP2),并希望获得ganglia中从属节点的磁盘i/o指标。到目前为止,我没有找到任何相关指标。您建议使

hadoop - HBase 批量写入 : which one better on performance, 还是 put(List<Put>)?

开始学习HBase写数据流。我使用HTableInterface并且在性能上有问题。仅插入500行就花费了很多时间,我插入的每个批处理List将近500,000毫秒。关于使用HTableInterface批量写入HTable的任何示例或建议?我正在使用HBase0.94谢谢 最佳答案 它们本质上是一样的:batch(Listactions,Object[]results)不仅允许放置,还允许获取、删除、递增...put(Listputs)只需做一批put(它还会在客户端验证它们)。您还可以通过禁用table.setAutoFlush

performance - 如何优化对大型数据集的查询?

我的原始查询-CREATETABLEadmin.FctPrfitAmt_rptASSELECTrcn.*FROM(SELECTt1.*FROM(SELECT*FROMadmin.FctPrfitAmtt2WHEREt2.scenario_idNOTIN(SELECTDISTINCTt3.scenario_idFROMadmin.FctPrfitAmt_incrt3)UNIONALLSELECT*FROMadmin.FctPrfitAmt_incr)t1)rcn;问题是目前这个查询需要很多时间,因为涉及的记录数量很多。有没有办法调整这个查询?我尝试过这种方法,但它不起作用-CREATET

performance - 更高效的查询以避免 Hive 中的 OutOfMemoryError

我在Hive中遇到异常:java.lang.OutOfMemoryError:GCoverheadlimitexceeded.在搜索中我发现这是因为该进程所有CPU时间的98%都将用于垃圾回收(不管那是什么意思?)。我的问题的核心在我的查询中吗?我是否应该以不同的方式编写以下内容以避免此类问题?我正在尝试计算在给定时间段内有多少特定电话类型处于事件“使用”状态。有没有一种方法可以以不同的方式执行此逻辑,从而运行得更好?selectcount(a.imei)from(SelectdistinctimeifrompingdatawheretimestampbetweenTO_DATE("2

performance - 如何调整配置单元以查询元数据?

如果我在具有特定分区列的表上运行下面的hive查询,我想确保hive不进行全表扫描,而只是从元数据本身找出结果。有什么方法可以启用它吗?Selectmax(partitioned_col)fromhive_table;现在,当我运行此查询时,它会启动mapreduce任务,我确信它会进行数据扫描,同时它可以很好地从元数据本身中找出值。 最佳答案 每次更改数据时计算表统计信息。ANALYZETABLEhive_tablePARTITION(partitioned_col)COMPUTESTATISTICSFORCOLUMNS;启用CB

performance - hbase 'checkAndPut' 延迟是否高于简单的 'put'?

逻辑上……checkAndPut似乎需要更多时间。我对加载场景特别感兴趣,我们看到平均checkandput延迟为15ms(每行数据17KB)....将checkAndPut转换为简单的“PUT”显着减少平均延迟。对于99%的用例,当我们执行checkAndPut时,我们写入的行键甚至不存在。 最佳答案 是的,check和put延迟会比简单的put延迟更高。然而,高多少取决于memstore中的数据量以及block缓存中的数据量。checkAndMutate的工作方式如下:获取行锁等待所有未完成的交易被确认获取所需的电池使用提供的规

performance - Hadoop 性能

我安装了hadoop1.0.0并试用了字数统计示例(单节点集群)。完成需要2分钟48秒。然后我尝试了标准的linux字数统计程序,它在同一组(180kB数据)上运行10毫秒。我做错了什么,还是Hadoop非常非常慢?timehadoopjar/usr/share/hadoop/hadoop*examples*.jarwordcountsomeinputsomeoutput12/01/2923:04:41INFOinput.FileInputFormat:Totalinputpathstoprocess:3012/01/2923:04:41INFOmapred.JobClient:Run