使用Spark Streaming实战对网站动态行为的多维度分析

本博文主要包括以下内容:
1、技术分析
2、实现实战

package com.dt.spark.SparkApps.cores;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;
import java.util.Random;

import kafka.javaapi.producer.Producer;
import kafka.producer.KeyedMessage;
import kafka.producer.ProducerConfig;

/**
 *
 * 论坛数据自动生成代码,该生成数据回座位Producer的方式发送给Kafka,然后通过SparkStreaming程序会从
 * Kafka中在线Pull到论坛或者网站的用户在线行为信息,进而进行多维度的在线分析
 * data: 日期,格式为yyyy-MM-dd
 * timestamp:时间戳
 * userID:用户ID
 * pageID:页面ID
 * ChanelID:板块的ID
 * action:点击和注册
 *
 */
public class SparkStreamingDataManuallyProducerForKafka extends Thread
{
   

    //具体的论坛频道
    static String[] channelNames = new  String[]{
        "Spark","Scala","Kafka","Flink","Hadoop","Storm",
        "Hive","Impala","HBase","ML"
    };
    //用户的两种行为模式
    static String[] actionNames = new String[]{
  "View", "Register"};

    private String topic; //发送给Kafka的数据的类别
    private Producer<Integer, String> producerForKafka;//他这个是索引加内容

    private static String dateToday;
    private static Random random;

    public SparkStreamingDataManuallyProducerForKafka(String topic){
//      格式 化器
        dateToday = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
        this.topic = topic;
        random = new Random();
//        设置参数
        Properties conf = new Properties();
        conf.put("metadata.broker.list","Master:9092,Worker1:9092,Worker2:9092");
//        Kafka在生成的时候有个key,key的序列化器,这是默认的方式
        conf.put("serializer.class", "kafka.serializer.StringEncoder");
//        基于这些内容,创建构造器Produce
        producerForKafka = new Producer<Integer, String>(new ProducerConfig(conf)) ;
    }

    //对于线程而言得有run方法,我们得复写这个run方法
    @Override
    public 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值