草庐IT

mapReduce

全部标签

python - 使用子进程启动 hadoop 作业但无法从标准输出获取日志

为了简化我的问题,这里有一个python脚本:fromsubprocessimportPopen,PIPEproc=Popen(['./mr-task.sh'],shell=True,stdout=PIPE,stderr=PIPE)whileTrue:out=proc.stdout.readline()print(out)这里是mr-task.sh,它启动了一个mapreduce作业:hadoopjarxxx.jarsome-conf-we-don't-need-to-care当我运行./mr-task时,我可以在屏幕上看到打印的日志,例如:14/12/2514:56:44INFOut

python - 使用 MapReduce 是否可以保证具有相同键的所有值都将进入相同的 reducer?

我有一个正在处理的MapReduce项目(具体来说,我正在使用Python和库MrJob并计划使用Amazon的EMR运行)。这是总结我遇到的问题的示例:我有数千GB的json文件,里面装满了客户数据。我需要去运行每个客户json行/输入/对象的每日、每周和每月报告。所以对于我目前做的map步骤:map_step(_,customer_json_object)c_uuid=customer_json_object.uuidifcustomer_json_object.timeisindaily_time_range:yield"%s-%s"%(DAILY_CONSTANT,c_uuid

java - 映射/减少 :How to output Hashmap after completion?

我想实现DPC算法(通过快速搜索和发现密度峰进行聚类)。这是一项艰巨的工作,所以我决定从计算Rho开始。这是map:publicvoidmap(LongWritablekey,Textvalue,Contextcontext)throwsIOException,InterruptedException{Stringline=value.toString();String[]lineSplit=line.split("");if(Double.parseDouble(lineSplit[2])这里是Reducer:publicvoidreduce(IntWritablekey,IntWr

hadoop - 如何在终端调试 MapReduce 任务?

有没有一种使用终端模拟MapReduce作业的简单方法?我想知道是否有一种简单的方法可以在编写代码时调试它。 最佳答案 我习惯于使用Python进行Hadoop流式处理,但我相信该解决方案也可以复制到其他语言。所以,这就是我的解决方案:catinput_folder/*|pythonmap.py|排序|pythonreduce.py同样值得一提的是,您可以通过简单地运行来查看reducer接收到的值作为输入:catinput_folder/*|pythonmap.py|排序 关于hado

java - 找不到类的 Hadoop jar 执行失败

我正在运行我的hadoop作业,但它因未找到类而失败。总共4个java文件。logProcessor.javalogMapper.javalogReducer.javalogParser.java一切都在unix上的com文件夹中,我有“packagecom;”在所有类(class)的第一行这意味着如果你执行下面的命令头-5*java你会看见包com;在所有4个文件中。logProcessor是Driver类。所有文件都在unix上的“com”文件夹中。ls-ltrcom/logProcessor.javalogMapper.javalogReducer.javalogParser.j

hadoop - 在运行 S3DistCp 时设置 HDFS 复制因子

我正在使用S3DistCp将内容从S3复制到AmazonEMRHDFS。对于一些工作,我的空间不足,希望通过降低复制因子来解决这个问题。但我看不到在工作层面实现这一目标的方法。有人可以帮助解决这个问题吗? 最佳答案 您通常不希望在逐个作业的基础上修改集群的复制因子。复制用于数据冗余(在发生故障的情况下)和提高性能(通过使数据更接近计算操作)。最好将集群保留为预定义的值。默认情况下,AmazonEMR将1-3个核心节点的默认复制因子设置为1,将4-9个核心节点的值设置为2,将10+个核心节点的值设置为3。理论上您可以更改dfs.rep

hadoop - Apache Spark 如何实现比 Hadoop MapReduce 快 100 倍的速度以及在什么场景下?

ApacheSpark[http://spark.apache.org/]声称在内存方面比ApacheHadoop快100倍。它是如何实现这种惊人的加速的?这种加速仅适用于迭代机器学习算法还是适用于ETL(提取-转换-加载)任务,如JOIN和GROUPBY?Spark的RDD(弹性分布式数据集)和DataFrames都可以提供这种加速吗?Spark社区有针对上述部分场景的benchmark测试结果吗? 最佳答案 Spark在内存中进行数据处理。不会像MapReduce那样有中间文件,所以没有I/O或者可以忽略不计。它并没有在所有情况

hadoop - 即使使用 Hadoop 自定义分区程序,不同的 key 也会进入 1 个文件

我的一期快用完了。我正在尝试从Reducer获取不同key的不同文件。分区器publicclasscustomPartitionerextendsPartitionerimplementsConfigurable{privateConfigurationconfiguration;@OverridepublicConfigurationgetConf(){returnconfiguration;}publicintgetPartition(Textkey,NullWritablevalue,intnumPartitions){returnMath.abs(key.hashCode())

hadoop - 如何从映射器向驱动程序报告一个值?

在我的hadoop应用程序中,我需要将一个值(映射器完成处理的时间)报告回驱动程序。我该怎么做? 最佳答案 您也许可以通过查看Hadoop为任何mapreduce作业生成的不同报告来获取此类信息。但是,一般来说,您可以使用计数器将信息传回给驱动程序。在您的映射器中,您可以执行以下操作:context.getCounter("records","last_seen").setValue(System.currentTimeMillis());然后从驱动程序中读取它:job.getCounters().getGroup("records

hadoop - 如何从 EXPLAIN 中为不同的配置单元阶段设置资源?

有没有办法根据EXPLAIN查询的阶段提供资源。 最佳答案 据我所知,您唯一可以设置的是:R的数量/精确计数setmapred.reduce.tasks=**(只要是makessense)R数量/最大计数sethive.exec.reducers.max=**+计算实际数量的提示sethive.exec.reducers.bytes.per.reducer=*****每个M容器的资源(使用MR时)/setmapreduce.map.memory.mb=**+setmapreduce.map.java.opts=-XMX**每个R容器