- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在运行一个程序,该程序使用 Apache Spark 从 Apache Kafka 集群获取数据并将数据放入 Hadoop 文件中。我的程序如下:
public final class SparkKafkaConsumer {
public static void main(String[] args) {
SparkConf sparkConf = new SparkConf().setAppName("JavaKafkaWordCount");
JavaStreamingContext jssc = new JavaStreamingContext(sparkConf, new Duration(2000));
Map<String, Integer> topicMap = new HashMap<String, Integer>();
String[] topics = "Topic1, Topic2, Topic3".split(",");
for (String topic: topics) {
topicMap.put(topic, 3);
}
JavaPairReceiverInputDStream<String, String> messages =
KafkaUtils.createStream(jssc, "kafka.test.com:2181", "NameConsumer", topicMap);
JavaDStream<String> lines = messages.map(new Function<Tuple2<String, String>, String>() {
public String call(Tuple2<String, String> tuple2) {
return tuple2._2();
}
});
JavaDStream<String> words = lines.flatMap(new FlatMapFunction<String, String>() {
public Iterable<String> call(String x) {
return Lists.newArrayList(",".split(x));
}
});
JavaPairDStream<String, Integer> wordCounts = words.mapToPair(
new PairFunction<String, String, Integer>() {
public Tuple2<String, Integer> call(String s) {
return new Tuple2<String, Integer>(s, 1);
}
}).reduceByKey(new Function2<Integer, Integer, Integer>() {
public Integer call(Integer i1, Integer i2) {
return i1 + i2;
}
});
wordCounts.print();
wordCounts.saveAsHadoopFiles("hdfs://localhost:8020/user/spark/stream/", "txt");
jssc.start();
jssc.awaitTermination();
}
}
我正在使用此命令提交应用程序:C:\spark-1.6.2-bin-hadoop2.6\bin\spark-submit --packages org.apache.spark:spark-streaming- kafka_2.10:1.6.2 --class "SparkKafkaConsumer"--master local[4] target\simple-project-1.0.jar
我收到此错误:java.lang.RuntimeException: class scala.runtime.Nothing$ not org.apache.hadoop.mapred.OutputFormat at org.apache.hadoop.conf.Configuration.setClass(Configuration. java:2148)
是什么导致了这个错误,我该如何解决?
最佳答案
我同意该错误并不令人回味,但通常最好在任何 saveAsHadoopFile
方法中指定要输出的数据格式,以保护您自己免受此类异常的影响.
这是文档中特定方法的原型(prototype):
saveAsHadoopFiles(java.lang.String prefix, java.lang.String suffix, java.lang.Class<?> keyClass, java.lang.Class<?> valueClass, java.lang.Class<F> outputFormatClass)
在您的示例中,这将对应于:
wordCounts.saveAsHadoopFiles("hdfs://localhost:8020/user/spark/stream/", "txt", Text.class, IntWritable.class, TextOutputFormat.class)
根据你的wordCounts
PairDStream的格式,我选择了Text
,因为key是String
类型,IntWritable
因为与键关联的值是 Integer
类型。
如果您只需要基本的纯文本文件,请使用 TextOutputFormat
,但您可以查看 FileOutputFormat
的子类以获得更多输出选项。
同样有人问,Text
类来自 org.apache.hadoop.io
包,TextOutputFormat
来自org.apache.hadoop.mapred
包。
关于java - 运行 Apache Spark Kafka Stream 时获取 Hadoop OutputFormat RunTimeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38503502/
尝试将 primefaces 日历与本地化一起使用。我考虑将 javascript 属性数组添加到相应的语言环境消息属性文件中。 http://code.google.com/p/primefaces
考虑从 rCharts/NVD3 示例页面中提取的图 p6 <- nPlot(uempmed ~ date, data = economics, type = 'lineChart') p6 我试图让
我对 hadoop API 完全困惑。 (猜猜它一直在变化) 如果我没记错的话,JobConf 已被弃用,我们应该使用Job 和Configuration 类而不是从 java 运行 map redu
是否有一种方便的方法将参数从资源包传递到除h:outputFormat之外的组件? 例如,这是合法的: 但我需要它作为一个按钮,就像这样(这不起作用): 当然,我可以使用链
我使用 Freemarker 2.3.23,我想打印 XML 的字符串表示形式。所以,我找到了outputformat指示。但是当我尝试使用它时,出现以下 ParseException: Unknow
我正在尝试从 S.O. 周围的 Java 专家那里获得一些帮助。关于这个问题。我在一个长期项目中遇到了 XMLSerializer 和 OutputFormat 的旧实现...我想知道是否有人可以提供
根据引用。 http://developer.android.com/reference/android/media/MediaRecorder.OutputFormat.html我想知道,什么是 M
我正在对一些 JSF 文件进行国际化,因此我正在外部化字符串(以及使用占位符连接字符串)。我对 JSF 的经验很少(今天和昨天),所以如果我的问题有明显的答案,请原谅! 我一直在为简单的占位符成功使用
我有一个复合组件,这是其中的一个片段。 如果我想使用 格式化 value3 ,我该怎么做? 最佳答案 在幕后使用标准 java.text.MessageForma
(来自 Hadoop 新手) 我想在玩具 Hadoop 概念验证示例中尽可能避免使用文件。我能够从非基于文件的输入中读取数据(感谢 http://codedemigod.com/blog/?p=120
一个参数输出如何成为另一个参数输入(值)?或者换句话说,我如何构建一个复杂的参数。 我试图建立参数。 这是代码:
在我的 JSF2 页面上,我正在使用国际化错误消息。 在我的支持 bean 中,我将消息放入 flash Scope: flash.put("error", exception.getType());
我正在尝试为 ArangoDB 编写自定义OutputFormat。我使用 CassandraOutputFormat.java 作为灵感,交换了相关的驱动程序和调用等。我用 Java 编写了这个,因
即使我已将 xercesImpl-2.8.1.jar 包含在 .M2 文件夹中,我的应用程序也找不到 OutputFormat。 我能够查看类文件。 有人知道为什么会这样吗?我使用的版本不正确吗? 最
我有一个应用程序需要读取一个文件,该文件是 ArrayList 的序列化结果。(ArrayList,此列表中有 50000 条记录,大小:20MB)我不知道如何将数据读入 hadoop 平台。我只是觉
有没有人有编写从 Hbase 获取日期的 Hadoop InputFormat/OutputFormat 的经验? 我想要比 HbaseTableInputFormat 更具体的东西,因为我的想法是将
我是大数据的新手,目前正在学习 Hive。我了解 Hive 中 InputFormat 和 OutputFormat 的概念作为 SerDe 的一部分。我还了解到“存储为”用于以特定格式存储文件,就像
我正在开发一个录制音频和存储音频文件的 Android 应用程序。它似乎在除 Sony Xperia Z3 compact 之外的所有手机上都能正常工作。我发现将 MediaRecorder 的输出格
我正在运行一个程序,该程序使用 Apache Spark 从 Apache Kafka 集群获取数据并将数据放入 Hadoop 文件中。我的程序如下: public final class Spark
给定的问题是传递复杂参数(请参阅下面的代码示例)在 JSF 中不起作用。 我不是寻找使用
我是一名优秀的程序员,十分优秀!