小编Ven*_*k K的帖子

在Hadoop中使用NullWritable的优点

什么是使用的优点,NullWritablenull使用过的键/值null文本(即new Text(null)).我从"Hadoop:The Definitive Guide"一书中看到以下内容.

NullWritable是一种特殊类型Writable,因为它具有零长度序列化.没有字节写入或读取流.它用作占位符; 例如,在MapReduce中,NullWritable当您不需要使用该位置时,可以将键或值声明为- 它有效地存储常量空值.SequenceFile当您想要存储值列表而不是键值对时,NullWritable也可以用作键.它是一个不可变的单例:可以通过调用来检索实例 NullWritable.get()

我不清楚如何使用输出写出输出NullWritable?在开始输出文件中是否有一个常量值表示该文件的键或值是null,因此MapReduce框架可以忽略读取null键/值(以哪个为准null)?另外,null文本是如何序列化的?

谢谢,

Venkat

java hadoop mapreduce

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

用Java读取HDFS和本地文件

我想读取文件路径,无论它们是HDFS还是本地路径.目前,我传递带有前缀file://的本地路径和带有前缀hdfs://的HDFS路径,并编写如下代码

Configuration configuration = new Configuration();
FileSystem fileSystem = null;
if (filePath.startsWith("hdfs://")) {
  fileSystem = FileSystem.get(configuration);
} else if (filePath.startsWith("file://")) {
  fileSystem = FileSystem.getLocal(configuration).getRawFileSystem();
}
Run Code Online (Sandbox Code Playgroud)

从这里我使用FileSystem的API来读取文件.

如果还有其他比这更好的方法,你能告诉我吗?

java hadoop mapreduce hdfs

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

在执行BufferedReader.close()时Hadoop FileSystem关闭了异常

在Reduce设置方法中,我试图关闭一个BufferedReader对象并获得一个FileSystem封闭的异常.它不会一直发生.这是我用来创建的代码片段BufferedReader.

    String fileName = <some HDFS file path>
    Configuration conf = new Configuration();
    FileSystem fs = FileSystem.get(conf);
    Path hdfsPath = new Path(filename);
    FSDataInputStream in = fs.open(hdfsPath);
    InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
Run Code Online (Sandbox Code Playgroud)

我从bufferedReader读取内容,一旦完成所有读取,我就关闭它.

这是读取它的代码段

String line;
while ((line = reader.readLine()) != null) {
    // Do something
}
Run Code Online (Sandbox Code Playgroud)

这段关闭读者的代码.

    if (bufferedReader != null) {
        bufferedReader.close();
    }
Run Code Online (Sandbox Code Playgroud)

这是我执行时发生的异常的堆栈跟踪bufferedReader.close().

我,[2013-11-18T04:56:51.601135#25683]信息 - :attempt_201310111840_142285_r_000009_0:at org.apache.hadoop.hdfs.DFSClient.checkOpen(DFSClient.java:565)

我,[2013-11-18T04:56:51.601168#25683]信息 - :attempt_201310111840_142285_r_000009_0:at org.apache.hadoop.hdfs.DFSInputStream.close(DFSInputStream.java:522)

I,[2013-11-18T04:56:51.601199#25683] INFO - :attempt_201310111840_142285_r_000009_0:at …

java hadoop mapreduce hdfs

14
推荐指数
2
解决办法
2万
查看次数

Apache Commons 包中的 IntegerUtils 和 DoubleUtils

我广泛使用 Apache Commons 包,尤其是 StringUtils、BooleanUtils、ObjectUtils、MapUtils 类,发现它们非常有用。我想知道是否有诸如 IntegerUtils、DoubleUtils 之类的类为其各自的包装类提供了类似的功能(我在 Apache Commons 包中找不到此类类)。

谢谢,

文卡特

java apache-commons-lang

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

有界优先级队列继承与组合

我想写一个Bounded Priority Queue类.这本质上是一个优先级队列,但是对队列中可以存在的元素数量有一定的限制.因此,如果我插入一个新元素并且队列已满,那么我会看到该元素是否大于队列的顶部.如果是,那么我丢弃新元素.如果不是,那么我删除顶部元素并插入这个新元素(并自动重新组织队列).我目前已经实现了从PriorityQueue派生的BoundedPriorityQueue,它具有"maxCount"成员,我已经覆盖了add方法并添加了我上面描述的功能.我想知道我是否应该考虑使用组合方式而不是继承方式.我目前的做法似乎很简单.

如果我要去编写组合,那么我必须从AbstractQueue类派生,实现这些方法,然后用它组成优先级队列.

谢谢,

Venk

java oop

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

Java基元和原始包装器

我试图了解Java原语和包装器是如何工作的.让我们考虑以下示例.

Integer sum = 0;
for(int i = 0; i < 10000; ++i) {
    sum += i;
}
Run Code Online (Sandbox Code Playgroud)

由于Integer是不可变的并且是非原始的,因此该语句sum += i将被编译为如下

sum =  new Integer(sum.intValue() + i).
Run Code Online (Sandbox Code Playgroud)

这将创建大约10000个Integer对象(每次调用new Integer)以及sum.intValue()将Integer拆箱到int 的成本.

我对吗?

java garbage-collection heap-memory

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

OS X的SFTP,SCP和FTP客户端

我正在为OS X 10.7寻找免费的SFTP,SCP和FTP客户端.使用这个,我想有一个连接到Linux盒子的GUI客户端来查看和复制文件(我使用WinScp从我的Windows机器连接到linux盒子).你能告诉我一些适用于我的场景的东西.目前,我正在使用ssh和scp.

谢谢,

Venkat

linux macos winscp

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

Hadoop从绝对路径和基本路径获取相对路径

给定绝对基本路径,我想从绝对路径获取相对路径。是否有任何 Hadoop Java API 可以做到这一点?

例如,如果我的绝对 HDFS 路径是abs_path = hdfs://name-node/level1/level2/level3并且我的绝对基本路径是abs_base_path = hdfs://name-node/level1,我想从 中提取相对路径abs_path,即rel_path = level2/level3. 我熟悉使用路径构造函数来组合两个路径。

例如,如果我有rel_pathand abs_base_path,我可以使用 Path 类中重载的构造函数之一http://hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/Path来构建,abs_path但我找不到 API 来执行相反的操作。

java hadoop mapreduce

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

Java强制转换方法

我不确定这个问题是否属于这里.我编写了以下方法将对象强制转换为特定类型.

private static <T> T cast(Object obj) {
    return (T) (obj);
}
Run Code Online (Sandbox Code Playgroud)

我想知道为什么我在Guava或Apache Commons中找不到这样的方法?我错过了什么吗?

谢谢,

Venk

java apache-commons guava

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

Apache Commons 的最新 maven 依赖

我将此问题通过电子邮件发送至 dev@commons.apache.org,但尚未得到答复。

我正在尝试将 maven 依赖项添加到最新的 commons-collections 包中,我从站点看到的是 4.0 ( http://commons.apache.org/proper/commons-collections/javadocs/api-release/index.html)。

我从 maven central 看到它的版本是 20040616。这看起来像是日期而不是版本号。但是,jar 的内容似乎与http://commons.apache.org/proper/commons-collections/javadocs/api-release/index.html 上的 API 相匹配。我想确认这是否是我应该添加的实际 4.0 依赖项。

http://search.maven.org/#artifactdetails%7Ccommons-collections%7Ccommons-collections%7C20040616%7Cjar

公共收藏 公共收藏 20040616

谢谢,

文克

java apache-commons maven

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

Ruby中的继承方案

我在Ruby中有以下代码:

class Base
  def Function1
    puts 'Base Function1'
  end

  def Function2
    Function1
  end
end

class Derived < Base
  def Function1
    puts 'Derived Function1'
  end
end

obj = Derived.new
obj.Function2
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,我收到以下错误:

/Users/vkuppuswamy/.rvm/rubies/ruby-2.0.0-p0/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/vkuppuswamy/RubymineProjects/TestRubyProj/TestRuby.rb
/Users/vkuppuswamy/RubymineProjects/TestRubyProj/TestRuby.rb:7:in `Function2': uninitialized constant Base::Function1 (NameError)
    from /Users/vkuppuswamy/RubymineProjects/TestRubyProj/TestRuby.rb:18:in `<top (required)>'
    from -e:1:in `load'
    from -e:1:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我可以看到,Function2在课堂上Base,已经尝试调用一些常量Function1.我不明白为什么会这样.我以为Function1将调用派生类方法.当我Function2将基类更改为:

  def Function2
    self.Function1
  end
Run Code Online (Sandbox Code Playgroud)

在那里我调用Function1使用self,它的工作原理,我在输出得到:

Derived Function1
Run Code Online (Sandbox Code Playgroud)

你能帮我理解为什么会这样吗?我以为这self是隐含在Ruby中的.

ruby oop

0
推荐指数
1
解决办法
63
查看次数