草庐IT

不超过

全部标签

java - Hadoop 中的 Mapreduce 在使用超过 200MB 的文件时会超出 GC 开销限制

我正在Hadoop多节点集群(2.4.1)上运行Mapreduce代码。当我尝试使用大小为200MB和200MB的2个输入文件运行时,出现错误GCoverheadlimitexceeded。当我使用非常小的文件时,它运行完美并得到正确的输出。我的目标是比较第一个文件中的每个流量记录和第二个文件中的每个流量记录并计算距离,然后取10个最大值并根据这10个最大值输出到reducer。值(value)观。两个文件中的示例流记录-194.144.0.27|192.168.1.5|0.0.0.0|0|0|2|104|1410985350|1410985350|51915|51413|6|6几张快

shell - hdfs 删除超过 7 天的目录

我有这样的存档目录结构/archivedData/Mappings/Web/NOW/,其中NOW是当前日期:现在=$(日期+"%Y%m%d%H%M")。我必须从hdfs中删除超过7天的NOW目录。 最佳答案 这可以通过awk和date命令来实现,下面是shell脚本#!/bin/bashhadoopfs-ls/archivedData/Mappings/Web/NOW/|whilereadpath;dodir_date=`echo$path|awk'{print$6}'`|cut-d'/'-f5purge_criteria=`dat

hadoop - 如何强制 hadoop 运行超过 1 个 Reduce 作业

我有一个5节点的Hadoop集群,其中2个节点专用于数据节点并且还运行tasktracker。我像这样运行我的hadoop作业sudo-uhdfshadoopjar/tmp/MyHadoopJob2.jarcom.abhi.MyHadoopJob2-Dmapred.reduce.tasks=2/sample/cite75_99.txt/output3作业成功运行,我可以看到正确的输出...但是现在当我转到门户网站时http://jt1.abhi.com:50030我能看见因此只有1个reduce作业正在运行。我之所以特别关注运行多个reduce作业,是因为我想确认即使在不同机器上运行不

hadoop - Hive UDTF 不接受超过 2 列的输出

我编写的配置单元UDTF可以正常工作,只要指定的输出列数为2。但是此刻,我将其更改为三个并重新部署,它显示以下错误消息。失败:SemanticException[错误10083]:AS子句中提供的别名数与UDTF输出的列数不匹配,预期2个别名但得到3个有什么理由吗?这是我在初始化方法中使用的代码块。ListfieldNames=newArrayList(3);ListfieldOIs=newArrayList(3);fieldNames.add("word");fieldNames.add("cnt");fieldNames.add("ext");fieldOIs.add(Primit

python - 如何将大表(超过 1 亿行)导出到文本文件?

我有一个数据库,其中包含一个包含超过一亿行的大表。我想导出此数据(经过一些转换,例如将此表与其他一些表连接起来,清理一些字段等)并将其存储在一个大文本文件中,以便稍后使用Hadoop进行处理。到目前为止,我尝试了两件事:使用Python,我使用thissubquerytrick按block浏览表格(通常一次浏览10'000条记录),对每一行执行转换并直接写入文本文件。该技巧有所帮助,但随着导出的进行,LIMIT变得越来越慢。我无法用它导出完整的表格。使用mysql命令行工具,我尝试将查询结果以CSV格式直接输出到文本文件。由于大小原因,它耗尽了内存并崩溃了。我目前正在调查Sqoop作为

hadoop - 从 S3 读取超过 500GB 的数据并将 400GB 输出保存到 S3 是个好主意吗?

我的MR作业从AWSS3读取500GB数据,同时将中间数据保存在S3中,并将reducer的输出(大约400GB)写入S3,这是一个好的设计吗?还有其他更便宜、更稳定的解决方案吗?谢谢! 最佳答案 我们的ETL作业在AWS中运行。我们使用Oozie进行工作流管理。当您在EMR(ElasticMapReduce)中运行时,您可以选择写入s3或本地HDFS。将数据存储在s3或HDFS中的决定取决于多种因素,例如:数据的性质:临时(使用HDFS)或永久(使用s3)成本:存储在s3中会花费您一些美分/美元带宽:当您将数据上传到s3时,您会消

hadoop - Hive:对于通过 HiveServer2 具有超过 5000 行的表,select * from table 失败

我在Hive中有一个表sdh,它有100000行。当我执行命令时select*fromsdh在CLI上,显示所有行但是当我在直线上通过HiveServer2运行它时,相同的命令只是挂起所有其他具有1000奇数行的表都可以通过CLI或直线运行。还有其他人遇到过类似的问题吗?我从日志中得到错误org.apache.thrift.TApplicationException:InternalerrorprocessingFetchResultsatorg.apache.thrift.TApplicationException.read(TApplicationException.java:10

hadoop - Hive 查询 - 无法找到评分超过 30 的电影,平均评分是多少

我已经使用查询在配置单元中创建了一个表CREATETABLEu_data(useridINT,movieidINT,ratingINT,unixtimeSTRING)ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\t'STOREDASTEXTFILE;然后将一些数据加载到其中,现在我想检索评分超过30的电影的平均评分。我尝试使用查询创建View:createviewratingcountasselectmovieid,count(rating)asnum_of_ratingsfromu_datagroupbymovieid;然后使用连接查询:Selectmo

hadoop - yarn 作业不会超过 "state: ACCEPTED"

提前感谢您的帮助。我正在使用提供的Hadoop示例运行yarn作业。作业永远不会完成并停留在“ACCEPTED”状态。查看正在打印的内容,似乎作业正在等待完成——并且客户端不断地探测作业状态。示例作业(来自Hadoop2.6.0):spark-submit--masteryarn-client--driver-memory4g--executor-memory2g--executor-cores4--classorg.apache.spark.examples.SparkPi/home/john/spark/spark-1.6.1-bin-hadoop2.6/lib/spark-exa

sql - 对行进行分组,使每组的列总和不超过 10

我有一个看起来像这样的表:col1------2234567值按升序排序。我想将每一行分配给标签为0,1,...,n的组,以便每个组的总数不超过10。所以在上面的示例中它看起来像这样:col1|label------------20203041516273我试过用这个:floor(sum(col1)OVER(partitionbyORDERBYcol1ROWSBETWEENUNBOUNDEDPRECEDINGANDCURRENTROW)/10))但这不能正常工作,因为它正在执行操作作为:floor(2/10)=0floor([2+2]/10)=0floor([2+2+3]/10)=0f