一、spark-streaming-kafka-0-8_2.11-2.0.2.jar

1、pom.xml


  1. <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.11 -->
  2. <dependency>
  3. <groupId>org.apache.spark</groupId>
  4. <artifactId>spark-core_2.11</artifactId>
  5. <version>2.0.2</version>
  6. <scope>runtime</scope>
  7. </dependency>
  8. <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming_2.11 -->
  9. <dependency>
  10. <groupId>org.apache.spark</groupId>
  11. <artifactId>spark-streaming_2.11</artifactId>
  12. <version>2.0.2</version>
  13. <scope>runtime</scope>
  14. </dependency>
  15. <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming-kafka-0-8_2.11 -->
  16. <dependency>
  17. <groupId>org.apache.spark</groupId>
  18. <artifactId>spark-streaming-kafka-0-8_2.11</artifactId>
  19. <version>2.0.2</version>
  20. <scope>runtime</scope>
  21. </dependency>

2、Kafka Consumer类


  1. package com.spark.main;
  2. import java.util.Arrays;
  3. import java.util.HashMap;
  4. import java.util.HashSet;
  5. import java.util.Map;
  6. import java.util.Set;
  7. import org.apache.spark.SparkConf;
  8. import org.apache.spark.api.java.JavaRDD;
  9. import org.apache.spark.api.java.function.Function;
  10. import org.apache.spark.api.java.function.VoidFunction;
  11. import org.apache.spark.streaming.Durations;
  12. import org.apache.spark.streaming.api.java.JavaDStream;
  13. import org.apache.spark.streaming.api.java.JavaPairInputDStream;
  14. import org.apache.spark.streaming.api.java.JavaStreamingContext;
  15. import org.apache.spark.streaming.kafka.KafkaUtils;
  16. import kafka.serializer.StringDecoder;
  17. import scala.Tuple2;
  18. public class KafkaConsumer{
  19. public static void main(String[] args) throws InterruptedException{
  20. /**
  21. * SparkConf sparkConf = new SparkConf().setAppName("KafkaConsumer").setMaster("local[2]");
  22. * setMaster("local[2]"),至少要指定两个线程,一条用于用于接收消息,一条线程用于处理消息
  23. * Durations.seconds(2)每两秒读取一次kafka
  24. */
  25. SparkConf sparkConf = new SparkConf().setAppName("KafkaConsumer").setMaster("local[2]");
  26. JavaStreamingContext jssc = new JavaStreamingContext(sparkConf, Durations.milliseconds(500));
  27. jssc.checkpoint("hdfs://192.168.168.200:9000/checkpoint/KafkaConsumer");
  28. /**
  29. * 配置连接kafka的相关参数
  30. */
  31. Set<String> topicsSet = new HashSet<String>(Arrays.asList("TestTopic"));
  32. Map<String, String> kafkaParams = new HashMap<String, String>();
  33. kafkaParams.put("metadata.broker.list", "192.168.168.200:9092");
  34. kafkaParams.put("auto.offset.reset", "smallest");//smallest:从最初开始;largest :从最新开始
  35. kafkaParams.put("fetch.message.max.bytes", "524288");
  36. JavaPairInputDStream<String, String> messages = KafkaUtils.createDirectStream(jssc, String.class, String.class,
  37. StringDecoder.class, StringDecoder.class, kafkaParams, topicsSet);
  38. /**
  39. * _2()获取第二个对象的值
  40. */
  41. JavaDStream<String> lines = messages.map(new Function<Tuple2<String, String>, String>() {
  42. public String call(Tuple2<String, String> tuple2) {
  43. return tuple2._2();
  44. }
  45. });
  46. lines.foreachRDD(new VoidFunction<JavaRDD<String>>() {
  47. public void call(JavaRDD<String> rdd) throws Exception {
  48. rdd.foreach(new VoidFunction<String>() {
  49. public void call(String s) throws Exception {
  50. System.out.println(s);
  51. }
  52. });
  53. }
  54. });
  55. // Start the computation
  56. jssc.start();
  57. jssc.awaitTermination();
  58. }
  59. }

二、spark-streaming-kafka-0-10_2.11-2.0.2.jar

1、pom.xml


  1. <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core_2.11 -->
  2. <dependency>
  3. <groupId>org.apache.spark</groupId>
  4. <artifactId>spark-core_2.11</artifactId>
  5. <version>2.0.2</version>
  6. <scope>runtime</scope>
  7. </dependency>
  8. <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming_2.11 -->
  9. <dependency>
  10. <groupId>org.apache.spark</groupId>
  11. <artifactId>spark-streaming_2.11</artifactId>
  12. <version>2.0.2</version>
  13. <scope>runtime</scope>
  14. </dependency>
  15. <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming-kafka-0-10_2.11 -->
  16. <dependency>
  17. <groupId>org.apache.spark</groupId>
  18. <artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
  19. <version>2.0.2</version>
  20. <scope>runtime</scope>
  21. </dependency>

2、Kafka Consumer类


  1. package com.spark.main;
  2. import java.util.Arrays;
  3. import java.util.HashMap;
  4. import java.util.HashSet;
  5. import java.util.Map;
  6. import java.util.Set;
  7. import org.apache.kafka.clients.consumer.ConsumerRecord;
  8. import org.apache.kafka.common.serialization.StringDeserializer;
  9. import org.apache.spark.SparkConf;
  10. import org.apache.spark.api.java.JavaRDD;
  11. import org.apache.spark.api.java.function.Function;
  12. import org.apache.spark.api.java.function.VoidFunction;
  13. import org.apache.spark.streaming.Durations;
  14. import org.apache.spark.streaming.api.java.JavaDStream;
  15. import org.apache.spark.streaming.api.java.JavaInputDStream;
  16. import org.apache.spark.streaming.api.java.JavaPairInputDStream;
  17. import org.apache.spark.streaming.api.java.JavaStreamingContext;
  18. import org.apache.spark.streaming.kafka010.ConsumerStrategies;
  19. import org.apache.spark.streaming.kafka010.KafkaUtils;
  20. import org.apache.spark.streaming.kafka010.LocationStrategies;
  21. import kafka.serializer.StringDecoder;
  22. import scala.Tuple2;
  23. public class Kafka10Consumer{
  24. public static void main(String[] args) throws InterruptedException{
  25. /**
  26. * SparkConf sparkConf = new SparkConf().setAppName("KafkaConsumer").setMaster("local[2]");
  27. * setMaster("local[2]"),至少要指定两个线程,一条用于用于接收消息,一条线程用于处理消息
  28. * Durations.seconds(2)每两秒读取一次kafka
  29. */
  30. SparkConf sparkConf = new SparkConf().setAppName("Kafka10Consumer").setMaster("local[2]");
  31. JavaStreamingContext jssc = new JavaStreamingContext(sparkConf, Durations.milliseconds(500));
  32. jssc.checkpoint("hdfs://192.168.168.200:9000/checkpoint/Kafka10Consumer");
  33. /**
  34. * 配置连接kafka的相关参数
  35. */
  36. Set<String> topicsSet = new HashSet<String>(Arrays.asList("TestTopic"));
  37. Map<String, Object> kafkaParams = new HashMap<String, Object>();
  38. kafkaParams.put("bootstrap.servers", "192.168.168.200:9092");
  39. kafkaParams.put("key.deserializer", StringDeserializer.class);
  40. kafkaParams.put("value.deserializer", StringDeserializer.class);
  41. kafkaParams.put("group.id", "Kafka10Consumer");
  42. kafkaParams.put("auto.offset.reset", "earliest");//earliest : 从最早开始;latest :从最新开始
  43. kafkaParams.put("enable.auto.commit", false);
  44. //通过KafkaUtils.createDirectStream(...)获得kafka数据,kafka相关参数由kafkaParams指定
  45. JavaInputDStream<ConsumerRecord<Object,Object>> messages = KafkaUtils.createDirectStream(
  46. jssc,
  47. LocationStrategies.PreferConsistent(),
  48. ConsumerStrategies.Subscribe(topicsSet, kafkaParams)
  49. );
  50. /**
  51. * _2()获取第二个对象的值
  52. */
  53. JavaDStream<String> lines = messages.map(new Function<ConsumerRecord<Object,Object>, String>() {
  54. @Override
  55. public String call(ConsumerRecord<Object, Object> consumerRecord) throws Exception {
  56. // TODO Auto-generated method stub
  57. return consumerRecord.value().toString();
  58. }
  59. });
  60. lines.foreachRDD(new VoidFunction<JavaRDD<String>>() {
  61. public void call(JavaRDD<String> rdd) throws Exception {
  62. rdd.foreach(new VoidFunction<String>() {
  63. public void call(String s) throws Exception {
  64. System.out.println(s);
  65. }
  66. });
  67. }
  68. });
  69. // Start the computation
  70. jssc.start();
  71. jssc.awaitTermination();
  72. }
  73. }

spark-streaming-kafka-0-8 和 0-10的使用区别的更多相关文章

  1. Spark Streaming + Kafka整合(Kafka broker版本0.8.2.1+)

    这篇博客是基于Spark Streaming整合Kafka-0.8.2.1官方文档. 本文主要讲解了Spark Streaming如何从Kafka接收数据.Spark Streaming从Kafka接 ...

  2. Spark踩坑记——Spark Streaming+Kafka

    [TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...

  3. Spark Streaming+Kafka

    Spark Streaming+Kafka 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端, ...

  4. spark streaming kafka example

    // scalastyle:off println package org.apache.spark.examples.streaming import kafka.serializer.String ...

  5. spark streaming - kafka updateStateByKey 统计用户消费金额

    场景 餐厅老板想要统计每个用户来他的店里总共消费了多少金额,我们可以使用updateStateByKey来实现 从kafka接收用户消费json数据,统计每分钟用户的消费情况,并且统计所有时间所有用户 ...

  6. Spark踩坑记:Spark Streaming+kafka应用及调优

    前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark streaming从k ...

  7. Spark streaming + Kafka 流式数据处理,结果存储至MongoDB、Solr、Neo4j(自用)

    KafkaStreaming.scala文件 import kafka.serializer.StringDecoder import org.apache.spark.SparkConf impor ...

  8. IDEA Spark Streaming Kafka数据源-Consumer

    import org.apache.spark.SparkConf import org.apache.spark.streaming.kafka.KafkaUtils import org.apac ...

  9. 4、spark streaming+kafka

    一.Receiver模式 1. receiver模式原理图 在SparkStreaming程序运行起来后,Executor中会有receiver tasks接收kafka推送过来的数据.数据会被持久化 ...

  10. spark.streaming.kafka.maxRatePerPartition的理解

    spark.streaming.kafka.maxRatePerPartition设定对目标topic每个partition每秒钟拉取的数据条数. 假设此项设为1,批次间隔为10s,目标topic只有 ...

随机推荐

  1. Could not open JDBC Connection for transaction

    Could not open JDBC Connection for transaction; nested exception is java.sql.SQLTransientConnectionE ...

  2. random_select

    package sorttest;   //expected and worst running time is O(n),asuming that the elements are distinct ...

  3. APP注册&登陆 逻辑细节

    前言:有多少用户愿意注册登陆,决定了一款产品的最大活跃度. 用户登陆注册系统分为两大类: 自建用户系统:邮箱/手机号/用户名/二维码/人脸识别/指纹 第三方授权用户系统:微信/微博/支付包/豆瓣/Fa ...

  4. SQL注入之Sqli-labs系列第二关

    废话不在多说  let's go!   继续挑战第二关(Error Based- Intiger) 同样的前奏,就不截图了 ,and 1=1和and 1=2进行测试,出现报错 还原sql语句 查看源代 ...

  5. Android SO动态调试之IDA

    1.上传并启动android_server(IDA的dbgsrv目录) 2.设置端口转发:adb forward tcp:23946 tcp:23946 3.调试模式启动应用:adb shell am ...

  6. html+css实现小米商城首页静态页面

    学了一个星期的html和css,用新学的东西写点东西,仿照小米商城的首页按照它的页面布局盗用它的图片写了个小米商城的静态页面. 源代码:链接:https://pan.baidu.com/s/1qf63 ...

  7. 【leetcode】35-Search Insert Position

    problem Search Insert Position 一种容易想到的是暴力破解法,一种是常用的二分法. 暴力破解法1(不推荐) class Solution { public: int sea ...

  8. C语音,关于可变参数的宏定义

    typedef char * va_list; // TC中定义为void* //为了满足需要内存对齐的系统 #define _INTSIZEOF(n) ((sizeof(n)+sizeof(int) ...

  9. Unity 3D读取Excel表格、导入信息、导出Json

    Unity 3D读取/导入Excel表格 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar ...

  10. SEO:网站改版

    网站改版分为2种:前端页面改版(不使用301 ),链接结构发生变化(必须使用301) 1.确定一定以及肯定使用301永久重定向,不要使用302跳转 2.非常十分以及极其要求使用百度站长平台的“网站改版 ...