小编Jun*_*Lim的帖子

如何通过包含外部hadoop集群的Spark中的H/A名称节点的URI访问hdfs?

现在我有一些Spark应用程序将输出存储到HDFS.

由于我们的hadoop集群由namenode H/A组成,而spark集群在hadoop集群之外(我知道它不好)我需要为应用程序指定HDFS URI,以便它可以访问HDFS.

但它无法识别名称服务,因此我只能给出namenode的URI之一,如果失败,请修改配置文件并重试.

访问Zookeeper以显示活动似乎非常烦人,所以我想避免.

你能建议任何替代方案吗?

hadoop hdfs apache-spark

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

JDK 8的类型推理如何与泛型一起使用?

我的代码无法使用JDK 7编译,但成功使用JDK 8进行编译.

要抽象实际代码:

interface A {
...
}

class B implements A {
...
}

public void AAA(List<A> list) {...}

AAA(Collections.singletonList(new B()));
Run Code Online (Sandbox Code Playgroud)

Collections.singletonList定义为

public static <T> List<T> singletonList(T o) {
    return new SingletonList<>(o);
}
Run Code Online (Sandbox Code Playgroud)

因此,据我所知,基于泛型,T将被推断为B,因此Collections.singletonList(new B())将是List,由于Java泛型是不变的,因此无法将其分配给List.

但是使用JDK 8,T被推断为A并且编译成功.

我想知道T是如何推断到A的,因为T型有两个变量:A和B.

有优先顺序吗?或者编译器是否找到共同的祖先类?

附上官方文件更感谢!

提前致谢!

PS1.JDK 7的版本是Oracle 1.7.0_79,JDK 8的版本是Oracle 1.8.0_66.

PS2.这是实际代码的链接:

https://github.com/apache/storm/blob/85a31e2fdec1ffef83e1ff438cd765a821fb06e4/examples/storm-opentsdb-examples/src/main/java/org/apache/storm/opentsdb/SampleOpenTsdbBoltTopology.java#L48

https://github.com/apache/storm/blob/85a31e2fdec1ffef83e1ff438cd765a821fb06e4/external/storm-opentsdb/src/main/java/org/apache/storm/opentsdb/bolt/OpenTsdbBolt.java#L77

https://github.com/apache/storm/blob/85a31e2fdec1ffef83e1ff438cd765a821fb06e4/external/storm-opentsdb/src/main/java/org/apache/storm/opentsdb/bolt/TupleOpenTsdbDatapointMapper.java#L37

java generics type-inference java-8

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

标签 统计

apache-spark ×1

generics ×1

hadoop ×1

hdfs ×1

java ×1

java-8 ×1

type-inference ×1