Spark-ClickHouse-ES实时项目第一天下-数据发送Kafka并部署在Linux中

仓库位置

日志生成:https://github.com/SmallScorpion/gmall-mock.git
日志服务器:https://github.com/SmallScorpion/gmall-spark-ch-es-realtime.git

添加依赖

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.68</version>
        </dependency>

Spark-ClickHouse-ES实时项目第一天下-数据发送Kafka并部署在Linux中_第1张图片

编写代码

JSONObject jsonObject = com.alibaba.fastjson.JSON.parseObject(logString);
        if( jsonObject.getString( "start" ) != null && jsonObject.getString( "start" ).length() > 0 ){
     
            // 启动日志
            kafkaTemplate.send( "GMALL_SPARK_CK_ES_START", 4, UUID.randomUUID().toString(), logString);
        } else {
     
            // 事件日志
            kafkaTemplate.send( "GMALL_SPARK_CK_ES_EVENT", 4, UUID.randomUUID().toString(), logString);
        }

Spark-ClickHouse-ES实时项目第一天下-数据发送Kafka并部署在Linux中_第2张图片

配置Kafka

#============== kafka ===================
# 指定kafka 代理地址,可以多个
spring.kafka.bootstrap-servers=hadoop102:9092
        
# 指定消息key和消息体的编解码方式
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer

Spark-ClickHouse-ES实时项目第一天下-数据发送Kafka并部署在Linux中_第3张图片

启动zk和kafka

开启消费

/opt/module/kafka_2.11-0.11.0.2/bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --from-beginning --topic GMALL_SPARK_CK_ES_START

Spark-ClickHouse-ES实时项目第一天下-数据发送Kafka并部署在Linux中_第4张图片

启动生产者

java -jar ...jar

Spark-ClickHouse-ES实时项目第一天下-数据发送Kafka并部署在Linux中_第5张图片

报错

若是报错
Invaid partition given with record: x is not in the range [0:x)
更改kafka配置文件中得默认分区数

更改logback.xml

换成Linux目录
Spark-ClickHouse-ES实时项目第一天下-数据发送Kafka并部署在Linux中_第6张图片

上传Linux

Spark-ClickHouse-ES实时项目第一天下-数据发送Kafka并部署在Linux中_第7张图片

更改application.properties

vim /home/atguigu/spark-ck-es-mock-log/application.properties

Spark-ClickHouse-ES实时项目第一天下-数据发送Kafka并部署在Linux中_第8张图片

展示

Spark-ClickHouse-ES实时项目第一天下-数据发送Kafka并部署在Linux中_第9张图片

启动

先启动kafka等待接受数据
再日志服务器 等到数据处理
最后启动生产者生产数据
Spark-ClickHouse-ES实时项目第一天下-数据发送Kafka并部署在Linux中_第10张图片

错误

端口占用情况:sudo lsof -i:8080

Spark-ClickHouse-ES实时项目第一天下-数据发送Kafka并部署在Linux中_第11张图片

解决办法:

  1. 在logger日志服务器中得application.properties中设置server.port=8082
  2. 执行程序时指定 java -jar …jar --server.port:8082

查看日志

Spark-ClickHouse-ES实时项目第一天下-数据发送Kafka并部署在Linux中_第12张图片

你可能感兴趣的:(Spark,ClickHouse,ElasticSearch)