小编Mah*_*nan的帖子

hadoop多个已经被创建的异常

当我在小数据上运行代码时,我没有得到以下错误.但是当我在更大的数据集上运行相同的代码时,我在使用多个输出时遇到以下错误.请帮忙!

org.apache.hadoop.ipc.RemoteException: 
org.apache.hadoop.hdfs.protocol.AlreadyBeingCreatedException: failed to create file
/home/users/mlakshm/alop176/data-r-00001 for
DFSClient_attempt_201208010142_0043_r_000001_1 on client 10.0.1.100, because this file
is already being created by DFSClient_attempt_201208010142_0043_r_000001_0 on     10.0.1.130 at 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.recoverLeaseInternal(FSNamesystem.java:1406)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInternal(FSNamesystem.java:1246)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFile(FSNamesystem.java:1188)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.create(NameNode.java:628)
    at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:563)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1388)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1384)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:416)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1382)

    at org.apache.hadoop.ipc.Client.call(Client.java:1070)
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225)
    at $Proxy2.create(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:82)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:59)
    at $Proxy2.create(Unknown Source)
    at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.<init>(DFSClient.java:3248)
    at …
Run Code Online (Sandbox Code Playgroud)

hadoop mapreduce

6
推荐指数
1
解决办法
3623
查看次数

有没有可能将mapper的部分发送到reducer,而只是将另一部分写入HDFS,在hadoop中?

我想将mapper输出的一部分写入文件夹,比如HDFS中的文件夹A. 输出的另一部分,我希望它由reducer处理.这可能吗?我知道多输出.这可能使用多个输出吗?

谢谢!

hadoop mapreduce

6
推荐指数
1
解决办法
2257
查看次数

由于任务尝试无法报告状态600秒,因此减少失败.杀!解?

作业的减少阶段失败了:

失败的Reduce任务超出了允许的限制.

每个任务失败的原因是:

任务尝试_201301251556_1637_r_000005_0无法报告状态600秒.杀!

问题详情:

Map阶段接收每个记录的格式:time,rid,data.

数据格式为:data元素及其计数.

例如:a,1b,4c,7对应于记录的数据.

映射器为每个数据元素输出每个记录的数据.例如:

key:(time,a,),val:(rid,data)key:(time,b,),val:(rid,data)key:(time,c,),val:(rid,data)

每个reduce从所有记录中接收与相同密钥对应的所有数据.例如:key:(time,a),val:(rid1,data)和key:(time,a),val:(rid2,data)到达同一个reduce实例.

它在这里进行一些处理并输出类似的rids.

对于小型数据集(如10MB),我的程序运行没有问题.但是,由于上述原因,当数据增加到1G时失败.我不知道为什么会这样.请帮忙!

减少代码:

下面有两个类:

  • VCLReduce0Split
  • CoreSplit

一个. VCLReduce0SPlit

public class VCLReduce0Split extends MapReduceBase implements Reducer<Text, Text, Text, Text>{
    //  @SuppressWarnings("unchecked")
        public void reduce (Text key, Iterator<Text> values, OutputCollector<Text, Text> output, Reporter reporter) throws IOException {

            String key_str = key.toString();
            StringTokenizer stk = new StringTokenizer(key_str);
            String t = stk.nextToken();

            HashMap<String, String> hmap = new HashMap<String, String>();

            while(values.hasNext())
            {
                StringBuffer sbuf1 = new StringBuffer(); 
                String val = values.next().toString();
                StringTokenizer st = …
Run Code Online (Sandbox Code Playgroud)

java eclipse hadoop mapreduce elastic-map-reduce

6
推荐指数
1
解决办法
1万
查看次数

了解用于重叠计算的mapreduce算法

我想帮助理解算法.我首先粘贴了算法解释,然后是我的疑惑.

算法:(用于计算记录对之间的重叠)

给定用户定义的参数K,文件DR(*Format:record_id,data*)被分成K个近似等大小的块,使得文档Di的数据落入第i/K th块中.

我们覆盖了Hadoop的分区功能,该功能将映射器发出的密钥映射到reducer实例.每个键(i,j)都映射到j/Kth组中的reducer.

特殊键i,*及其相关值,即文档的数据最多被复制K次,以便可以在每个缩减器处传送文档的全部内容.因此,组中的每个缩减器仅需要在存储器中恢复并加载一个DR文件块,其大小可以通过改变K而任意设置为小.因此可以计算重叠.这是以复制通过MapReduce框架提供的文档为代价的.

释疑:

我做了一些假设:

声明:每个键(i,j)都映射到j/Kth组中的reducer.假设:存在K个减少节点,并且该密钥被映射到j/Kth reduce节点.

怀疑:是否有一些减少节点组合在一起?比如0,1,2节点被分组为0组?

声明:文档的数据最多可复制K次,因此可以在每个reducer上传送文档的全部内容.

所以这意味着K等于没有.减速机节点?如果没有,我们正在浪费计算节点,而不是正确使用它们?

主要疑问:K是否等于减速器节点的数量?

希望得到回应!

谢谢!

java hadoop mapreduce elastic-map-reduce hadoop-partitioning

6
推荐指数
1
解决办法
784
查看次数

读取文件vs将文件从磁盘加载到主内存中进行处理

如何将文件加载到主内存?

我用的是我读的文件

BufferReader buf = new BufferedReader(FileReader());
Run Code Online (Sandbox Code Playgroud)

我认为这是从磁盘逐行读取文件.这有什么好处?

将文件直接加载到内存中有什么好处?我们如何用Java做到这一点?

我找到了一些例子ScannerRandomAccessFile方法.他们将文件加载到内存中吗?我应该使用它们吗?我应该使用哪两个?

提前致谢!!!

java file

5
推荐指数
1
解决办法
1万
查看次数

了解Hadoop文件系统计数器

我想了解hadoop中的文件系统计数器.

下面是我跑的工作的计数器.

在我运行的每个作业中,我发现读取的Map文件字节几乎等于读取的HDFS字节.我观察到地图写入的文件字节是映射器读取的文件字节和hdfs字节的总和.请帮忙!本地文件和hdfs是否读取了相同的数据,并且两者都是由Map Phase写入本地文件系统的?

                Map                        
Run Code Online (Sandbox Code Playgroud)

FILE_BYTES_READ 5,062,341,139

HDFS_BYTES_READ 4,405,881,342

FILE_BYTES_WRITTEN 9,309,466,964

HDFS_BYTES_WRITTEN 0

谢谢!

java hadoop mapreduce hdfs elastic-map-reduce

4
推荐指数
1
解决办法
6731
查看次数

分布式缓存和性能Hadoop

我想让我对hadoop分布式缓存有所了解.我知道当我们将文件添加到分布式缓存时,文件会被加载到集群中每个节点的磁盘上.

那么如何将文件数据传输到集群中的所有节点.是通过网络吗?如果是这样,它会不会对网络造成压力?

我有以下想法,他们是否正确?

如果文件很大,不会有网络拥塞?

如果节点数量很大,即使文件大小适中,文件的复制和传输到所有节点,都不会导致网络拥塞和内存限制?

请帮助我理解这些概念.

谢谢!!!

java hadoop mapreduce distributed-caching

2
推荐指数
1
解决办法
1727
查看次数