草庐IT

data_reduced

全部标签

java - 如何从 Map-Reduce 中的多个目录读取多个文件

我想在Map-Reduce程序中从多个目录读取多个文件。我试图在main方法中给出文件名:FileInputFormat.setInputPaths(conf,newPath("hdfs://localhost:54310/user/test/"));FileInputFormat.setInputPaths(conf,newPath("hdfs://localhost:54310/Test/test1/"));但它只读取一个文件。读取多个文件应该怎么办?请提出解决方案。谢谢。 最佳答案 FileInputFormat#setInp

Hadoop - "Code moves near data for computation"

我只想澄清这句话“代码移动到数据附近进行计算”,这是否意味着开发人员编写的所有javaMR都部署到集群中的所有服务器?如果1为真,如果有人更改了MR程序,它如何分发到所有服务器?谢谢 最佳答案 Hadoop将MR作业的jar放入HDFS-它的分布式文件系统。需要它的任务跟踪器将从那里获取它。所以它分发到一些节点,然后由实际需要它们的节点按需加载。通常这需要意味着节点将要处理本地数据。Hadoop集群在作业方面是“无状态的”。每次工作都被视为新事物,并且不使用前一个工作的“副作用”。确实,当要在大型集群上处理少量文件(或准确地说是拆分

hadoop - 为什么排序总是使用单个 reducer ?

我正在尝试执行以下查询,加载数据需要很长时间,因为第二个作业只使用了一个reducer。插入表ddb_tableSELECT*FROMdata_dumpsortbyrankdescLIMIT1000000;为上述查询创建了两个作业。第一份工作运行得非常快,因为它使用了80个映射器和大约22个缩减器。第二个作业映射器速度很快,但由于只有一个reducer,它非常慢。我尝试使用setmapred.reduce.tasks=35来增加reducer数量,但有趣的是,它只应用于第一个作业,而不是第二个作业。为什么要使用单个reducer?是因为sortby子句吗?如何设置最大reducer?有

hadoop - mapreduce 的哪个部分/类是停止 reduce 任务的逻辑实现

在HadoopMapReduce中,在所有映射器完成之前,没有缩减器启动。有人可以解释一下这个逻辑是在哪个部分/类/代码行实现的吗?我说的是HadoopMapReduce版本1(不是Yarn)。我已经搜索了mapreduce框架,但是类太多了,我不太了解方法调用及其顺序。换句话说,我需要(首先用于测试目的)让reducers开始减少,即使仍然有工作的映射器。我知道这样我得到的工作结果是错误的,但我知道这是更改框架部分的一些工作的开始。那么我应该从哪里开始查看并进行更改? 最佳答案 这是在洗牌阶段完成的。对于Hadoop1.x,请查看

hadoop - 有什么方法可以防止在所有 map task 完成之前 reduce task 开始

我想在Hadoop集群上同时运行多个作业,但我想阻止某些作业在该作业的所有映射任务完成之前开始缩减阶段(使缩减槽繁忙或保留)。是否有任何配置可以像上面那样设置主题限制?谢谢。 最佳答案 减少慢启动默认情况下,调度程序会等待作业中5%的maptask完成为同一工作安排reducetask。对于大型作业,这可能会导致问题集群利用率,因为它们在等待map任务时占用reduce槽完全的。将mapred.reduce.slowstart.completed.maps设置为更高的值,例如0.80(80%),有助于提高吞吐量。引用:Hadoop权

hadoop - map() 和 reduce() 应该返回相同类型的键/值对吗?

在编写MapReduce作业(如果相关,特别是Hadoop)时,必须定义一个map()和一个reduce()函数,两者都会产生一系列键/值对。键和值的数据类型由应用程序自由定义。在字数统计的典型示例中,这两个函数都产生类型为(string,int)的对,键是一个字,值是出现次数。在这里-以及我见过的所有其他示例-输出的键和值类型在两个函数之间是一致的。map()和reduce()生成的键/值对的类型必须/应该在任何MapReduce应用程序中相同吗?如果是:为什么? 最佳答案 没有。显然,map的输出对类型和reduce的输入对类型

hadoop - map-reduce 是否可以有多个输出文件?

在我的输入文件中,我有一列作为国家/地区。现在,我的任务是将特定国家/地区的记录放入以该国家/地区命名的单独文件中。这可能在Map-reduce中做吗?!请分享您对此的看法。 最佳答案 是的,在hadoop中你可以使用MultipleOutputFormat要做到这一点,使用它的generateFileNameForKeyValue方法。使用您的国家/地区名称作为键并使用记录作为值,这应该完全按照您的需要工作。 关于hadoop-map-reduce是否可以有多个输出文件?,我们在Sta

hadoop - 问题 : Scala code in Spark shell to retrieve data from Hbase

我们正在尝试在Sparkshell中执行一个简单的Scala代码以从Hbase检索数据。Hadoop环境启用了Kerberos,我们已确保执行kinit。调用SparkShell的步骤:MASTER=yarn-clientDRIVER_CLASSPATH="/opt/cloudera/parcels/CDH/lib/hbase/lib/*"DRIVER_LIBRARY_PATH="/opt/cloudera/parcels/CDH/lib/hadoop/lib/native"spark-shell--driver-class-path"$DRIVER_CLASSPATH"--drive

java - Hadoop:Reducer 被调用两次

我在EMR上使用Hadoop。我写了一个简单的程序,它运行一个map-reduce进程。我得到的输出不是我预期的,通过调试打印,我发现reducer实际上被调用了两次:一次是将mapper的输出作为输入,第二次是将第一个reducer的输出作为输入。最后,reducer第二次运行的输出就是我得到的输出。我在AMI3.1.1上使用Hadoop2.4.0,reduce方法签名是:@Overridepublicvoidreduce(Textkey,Iterablevalues,Contextcontext)throwsIOException,InterruptedException有人知道为

hadoop - 连接 Elastic Map Reduce ruby​​ 客户端时出错

我正在按照AWS上提到的步骤使用SSH使用交互式Hivesession。我使用了以下资源https://github.com/ucbtwitter/getting-started/wiki/Using-Elastic-Map-Reduce-via-Command-Linehttp://docs.amazonwebservices.com/ElasticMapReduce/latest/GettingStartedGuide/SignUp.html我最初收到此错误“错误:缺少key访问ID”,然后我修复了我的JSON文件。JSON文件的格式与上述链接中提到的格式相同。当我运行这个命令时.