使用python完成Kafka+sparkstreaming+elasticsearch

Python3读取kafka消息写入HBASE kafka消息格式为(None,[json串])利用Python有以下2种方式实现sparkstreaming将kafka消息的往HBASE写入1、使用spark的方法直接将RDD往HBASE写:2、取出RDD数据往HBASE写:#!/usr/bin/env python3 from pyspark import SparkConf, SparkContext from pyspark.stre... 阅读详情

在网上找了很久python的Kafka+sparkstreaming+elasticsearch的代码找不到,基本都是scala或者java的(好像是spark自己本身提供了库给java和scala写入ES?然而并没有可以提供给python的😓),所以自己写了一个,能正常运行,但是感觉这样写不太好,想发出来和大家交流一下。

from elasticsearch import Elasticsearch
from pyspark.streaming import StreamingContext
from pyspark.sql.session import SparkSession
from pyspark.sql import SQLContext
from pyspark.streaming.kafka import KafkaUtils
import os

os.environ['JAVA_HOME'] = "/usr/local/java/bin"
es = Elasticsearch(['Master:9200'])

# 创建传入Es的数据
def create_send_data(lines):

    for rec in lines:
        es_dict = {}
        es_dict['timestamp'] = rec[0:10]
        es_dict['user_id'] = rec[10:14]
        es_dict['lat'] = rec[14:23]
        es_dict['lng'] = rec[23:32]
        es_dict['gps_timestamp'] = rec[32:42]
        es_dict['angle'] = rec[42:45]
        es.index(index="user_point", doc_type="test", body=es_dict)

# 处理从Kafka接收到的数据
def Dstream_opt(ssc):
    topic = "test0210"
    #创建direct连接,指定要连接的topic和broker地址
    ks = KafkaUtils.createDirectStream(ssc,[topic],{"metadata.broker.list":"Master:9092"})

    ks.pprint()

    #以下代码每操作一次,就打印输出一次
    lines = ks.map(lambda x:x[1])
    # lines.pprint()

    return lines


if __name__ == '__main__':
    # 创建SparkContext
    print("========================创建spark=========================")
    spark = SparkSession.builder.master("local[2]").getOrCreate()
    sc = spark.sparkContext
    ssc = StreamingContext(sc, 3)
    sqlContext = SQLContext(sc)
    # 获得接收到的Dstream
    lines = Dstream_opt(ssc)
    lines.pprint()
	
    lines.foreachRDD(lambda rdd: rdd.foreachPartition(create_send_data))

    ssc.start()
    #等待计算结束
    ssc.awaitTermination()

在这里插入图片描述
这套代码提交到spark集群中是可以正常运行的,其实就是将发过来的一串数字,剪切之后再存入ES,登录进Kibana也是可以查到存进去的数据的。
在这里插入图片描述

kafka+sparkstreaming+hive参考案例 参考谁的也忘了,就当个案例看看吧。 package mes.test.com.main import com.alibaba.fastjson.{JSON, JSONObject} import mes.hikcision.com.utils.PropUtil import org.apache.kafka.common.serialization.StringDeserializer import org.apache.spark.rdd.RDD import org.apache.spark.s. 阅读详情

相关推荐

基于Python的Spark Streaming+Kafka编程实践

说明Spark Streaming的原理说明的文章很多,这里不做介绍。本文主要介绍使用Kafka作为数据源的编程模型,编码实践,以及一些优化说明 spark streaming:http://spark.apache.org/docs/1.6.0/streaming-programming-guide.html streaming-kafka-integration:http://sp

不积跬步,无以至千里;不积小流,无以成江海! 2万+

Spark Structured Streaming基于数据动态写入ES Index

Spark structured streaming(注意和spark streaming的区别)写入ES的基本代码如下: // df为需要写入es的Dataset<Row> df.writeStream() .format("org.elasticsearch.spark.sql.checkpoint") // 检查点地址,可不配置 .option("checkpointLocation", CHECKPOINT_PATH) // ES节点 .option(...

大数据开发实践者 2092

SparkStreaming集合增量更新方法

1.背景描述 我们有一个数据集合,需要定期进行大数据处理。 从Kafka会不定期获取新的数据,需要补充到该集合中;每一条数据都有过期时间,过期后需要从集合中删除。 2.思路 1)整个数据集合采用RDD保存在Spark集群的内存中。 2)在服务启动时从MongoDB获取初始数据集合。 3)通过Kafka拉取的数据,生成小的RDD,与大的数据集合进行Union操作 4)Union完成后根...

xianyuxiaoqiang的专栏 997

用spark streaming实时读取hdfs数据并写入elasticsearch中

1、写sqoop脚本将mysql数据定时导入到hdfs中,然后用spark streaming实时读取hdfs的数据,并把数据写入elasticsearch中 2、代码: package com.bigdata import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.rdd.RDD import org.a...

weixin_44695980的博客 1537

SparkStreaming实战-用户行为日志

需求说明 今天到现在为止实战课程的访问量 今天到现在为止从搜索引擎引流过来的实战课程访问量 用户行为日志介绍 用户行为日志:用户每次访问网站时所有的行为数据(访问、浏览、搜索、点击…) 用户行为轨迹、流量日志 典型的日志来源于Nginx和Ajax 日志数据内容: 1)访问的系统属性: 操作系统、浏览器等等 2)访问特征:点击的url、从哪个url跳转过来的(referer)、页面上的停留时间等...

李玉坤的博客 2786

【Spark实战系列】sparkstreaming 实时写数据到 elasticsearch

简单的写了一个sparkstreaming入es的demo,直接看代码吧: package spark import kafka.{PropertiesScalaUtils, RedisKeysListUtils} import kafka.streamingRedisHive.{dbIndex, kafkaStreams} import org.apache.kafka.common.se...

JasonLee实时计算 6120

Kafka-SparkStreaming-ElasticSearch踩坑记(一)

1.前言 笔者刚参加到新的工作中,进入了新的公司,从事的是大数据分析方向的岗位,用的是Java语言,由于公司之前一直采用的是Storm框架,并且采用的是高级的Trident框架,但是依据公司业务调整,需要转向Spark进行开发,也正因此我可以说是第一个吃螃蟹的人,每天死磕Spark和Elasticsearch,所以在代码编写过程中,出现了很多BUG,很多新的API,今天的第一记录主要是记录几个ja...

mrdragon的博客 620

HSmartWindowControl vs HWindowControl:Halcon老鸟教你如何根据项目需求选对控件(附性能对比)

本文深度对比Halcon图像处理中的HSmartWindowControl与HWindowControl控件,从性能、内存占用和交互体验等维度提供选型建议。HSmartWindowControl在硬件加速渲染、智能内存管理方面表现优异,特别适合医疗影像和工业检测等高性能需求场景,而HWindowControl则更适合兼容旧系统和资源受限环境。

weixin_30765505的博客 468

python+sparkStreaming+kafka之大数据实时流

首先需要的是环境,我安装的是spark2…1,kafka0-10,hadoop2.7,scala2.11,因为spark是Scala语言写的,所以这个必须的安装,大数据传输存储需要用到Hadoop,HDFS,所以Hadoop需要安装,streaming接受流数据源有两种大的方式,一种是文件和套接字,直接读取文件和通过套接字传输,另一种是高级API形式,可以通过额外的实用程序类获得诸如Kafka,F...

pyswt的博客 2256

局部,全局(外部),static等变量详解

首先,必须明白一个程序是包含若干个源文件,每个源文件又是包含若干个函数,每个源文件、函数中又定义了若干个变量。但是每个变量都有自己的作用范围,也就是自己的作用域。只有在作用域内才可以访问变量。 变量的有效范围称为变量的作用域( scope)。归纳起来,变量有4种不同的作用域:文件作用域( file scope)、函数作用域( function scope)、块作用域(block sc...

归根结底不优秀的博客 1322

嵌入式开发语言-C语言编程

C语言编程概述环境在Windows上构建C语言的环境安装在Mac上构建C语言的环境安装 概述 “C语言”被称为适合嵌入式系统开发的编程语言之一。 C语言在一般的编程中也是熟悉的开发语言,但实际上,如果试着使用C语言制作微型计算机的控制程序等,就必须使用与“普通的C程序”不同的使用方法。 作为一般的C语言的学习方法,使用“printf”“scanf”等标准函数的程序开发是固定的,但这些都是以UNIX和Windows等环境上的应用程序开发为前提的。 对此,没有显示器和键盘的嵌入式系统的微型计算机控制程序,该如何

编程老王 7976

python 读取kafka 写hive_sparkStreaming读取kafka写入hive表

packagehiveimportjava.io.Fileimportorg.apache.kafka.clients.consumer.ConsumerRecordimportorg.apache.kafka.common.serialization.StringDeserializerimportorg.apache.log4j.{Level, Logger}importorg.apache....

weixin_39769228的博客 256

NT35310 - LCD显示屏

NT35310 是一个低功耗、26 万色、单芯片的 TFT-LCD 控制器/驱动器,分辨率 480*320,它有一个 345600 字节的显示 RAM 和一整套控制功能。NT35310 支持数字接口(MDDI),MIPI 接口,RGB 接口,8 / 9 / 16 / 18 位8080 接口。可以实现指定的窗口区域可以有选择地更新,以便可以显示运动图像。同时也可以独立显示静止的图像区域。...

m0_62444125的博客 3321

实时大数据平台搭建Flume+Kafka+HDFS+SparkStreaming

整体架构图 一、python模拟生成日志 import random import time iplist=[101,198,65,177,98,21,34,61,19,11,112,114] urllist=['baidu.com','google.com','sougou.com','360.com','yahoo.com','yisou.com'] mobile=['xiaomi'...

lbship的博客 2003

避坑指南:PyTorch ConvLSTM参数配置的那些坑(hidden_dim/kernel_size/num_layers详解)

本文深度解析PyTorch ConvLSTM中hidden_dim、kernel_size和num_layers三大核心参数的配置技巧,提供实战指南和性能优化建议。通过实验数据揭示参数组合的内在规律,帮助开发者避免常见配置陷阱,提升时空序列建模效果。特别针对视频预测、气象预报等应用场景,给出黄金参数组合方案和调试技巧。

vv45678的博客 702

MATPOWER的安装详细教程

MATPOWER的安装包实际为一个程序包,安装教程很简单,详见本文。

半个月亮Zz的博客 3万+

Spark Streaming对接Kafka

上述两种方式中,Direct Approach方式更加可靠,不需要Spark Streaming自己去保证维护数据的可靠性,而是由善于处理这类工作的Kafka来做。在前面的案例中,我们监听了来自网络端口的数据,实现了WordCount,但是在实际开发中并不是这样。需求:利用Spark Streaming不断处理来自Kafka生产者生产的数据,并统计出现的单词数量。3,开启Spark Streaming消费数据,将产生的日志结果存储到日志中。2,编辑Spark Streaming代码,统计单词出现的数量。

weixin_43894652的博客 1981

Python爬虫实战:逆向工程与异步爬虫技术,高效抓取国家知识产权局专利数据

相比于传统的Selenium,Playwright由微软开发,支持多浏览器(Chromium, Firefox, WebKit),API更现代,执行速度更快,并且能轻松录制用户操作生成代码。通常,列表中的摘要信息是缩略的,我们需要进入每个专利的详情页获取完整信息(如主权要求、法律状态等)。我们的第一步是手动操作一遍搜索流程,并用Playwright的“录制”功能或开发者工具,找出真正返回专利数据的那一个或多个网络请求。以友好的、对人类行为模拟的方式爬取数据是基本的网络礼仪,也能有效避免你的IP被封锁。

2201_76125261的博客 2419

SparkStreaming完整demo(kafka版)-累积个数(updateStateByKey)

以SparkStreaming + Kafka 实现 假定用户有某个周末网民网购停留时间的日志文本,基于某些业务要求,要求开发 Spark应用程序实现如下功能: 1、实时统计连续网购时间超过半个小时的女性网民信息。 2、周末两天的日志文件第一列为姓名,第二列为性别,第三列为本次停留时间,单 位为分钟,分隔符为“,”。 数据: log1.txt:周六网民停留日志 LiuYang,female,20 YuanJing,male,10 GuoYijun,male,5 CaiXuyu,female,50 L

beishanyingluo的博客 484

机器人的“大脑”进化论:从专用控制器到高性能SoC的异构计算时代

摘要:随着AI与机器人技术融合,高性能芯片成为机器人智能化的关键。本文分析了机器人对芯片的核心需求,包括多模态数据处理、实时控制和智能决策能力。系统级芯片(SoC)因集成CPU、GPU/NPU等模块而成为主流选择。市场呈现分层格局:中低端设备(如扫地机器人)采用"MCU+轻量SoC"方案,满足基础功能;高端机器人则依赖"高性能SoC+独立GPU"处理复杂任务。除主控芯片外,完整的机器人系统还需传感器接口、驱动、通信等配套芯片。未来,芯片技术的进步将持续推动机器人智能化

致力于lidar应用开发 82

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

SparkStreaming之读取Kafka数据

GBDT是一种集成学习算法,却和传统的Adaboost有很大的不同。回顾下Adaboost,它是利用前一轮迭代弱学习器的误差率来更新训练集的权重,这样一轮轮的迭代下去。GBDT也是迭代,使用了前向分布算法,但是弱学习器限定了只能使用CART回归树模型,同时迭代思路和Adaboost也有所不同(备注:Adaboost我会再新开日记)。 CART决策树既可以用于分类也可以用于回归,决策树分为分类树和...

CWS_chen 6390

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

python爬虫等获取实时数据+Flume+Kafka+Spark Streaming+mysql+Echarts实现数据动态实时采集、分析、展示...

使用爬虫等获取实时数据+Flume+Kafka+Spark Streaming+mysql+Echarts实现数据动态实时采集、分析、展示 【获取完整源码关注公众号:靠谱杨阅读人生 回复kafka获取下载链接】 主要工作流程如下所示: 模拟随机数据,把数据实时传输到Linux虚拟机文件中。 使用Flume实时监控该文件,如果发现文件内容变动则进行处理,将数据抓取并传递到Kafka消息队列中。 之...

在职后端开发工程师的学习笔记 311

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

sparkStreaming 消费kafka0_10版本 demo

官网介绍 http://spark.apache.org/docs/2.3.0/streaming-kafka-0-10-integration.html#creating-a-direct-stream 案例pom.xml依赖 <dependency> <groupId>org.apache.spark</groupId&gt...

Mrerlou的博客 230

spark streaming python_spark streaming + kafka +python

hadoop集群2.7.1 zookeerper集群 kafka集群:kafka_2.11-0.10.0.0 spark集群:spark-2.0.1-bin-hadoop2.7.tgz 环境搭建可参考我前面几篇文章。不再赘述 三台机器:master,slave1,slave2二、启动集群环境1.启动hadoop集群start-all.sh2.启动spark集群start-master.shstar...

weixin_39613089的博客 270
上一篇: ubuntu16.04 Hive安装配置
下一篇: Confluent 安装 Kafka REST Proxy服务使用
铲子挖数据
博客等级 码龄8年 24粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值