PYTHON August 24, 2020

从CDH Agent错误日志学习Python拆包语法

Words count 5.2k Reading time 5 mins.

国庆七天长假回来上班,迟迟没有进入工作状态,可能祖国的强大,让我不自觉的也飘了起来,哈哈,该收拾收拾心情,为祖国之繁荣而努力加班挣money了。今天通过解决公司开发环境的一个问题,让我瞬间进入了战斗状...

Read article

PYTHON August 24, 2020

从CDH Agent错误日志学习Python拆包语法

Words count 5.2k Reading time 5 mins.

国庆七天长假回来上班,迟迟没有进入工作状态,可能祖国的强大,让我不自觉的也飘了起来,哈哈,该收拾收拾心情,为祖国之繁荣而努力加班挣money了。今天通过解决公司开发环境的一个问题,让我瞬间进入了战斗状态,并且顺便学了一下Python拆包的一些语法,还是挺有意思的。

放假回来,同事发现公司开发环境的CDH集群挂了,好长时间没关注了,可能早就挂了吧。挂成什么样了呢?两台节点与Manager失去心跳,所有服务都起不来了,简直废了,处于不可用状态。

当时但看服务状态以为没啥问题,可能是放假期间重启服...

Read article

PYTHON August 24, 2020

Python使用subprocess开启新进程之旅

Words count 7.6k Reading time 7 mins.

版本说明:Python2.7

感觉好久没有写博客了,最近接连两项工作,忙的不亦乐乎,难得空档期,做一下笔记总结。同样是工作中遇到的问题,简单描述一下:有这样一段脚本,它执行时间比较长,而且不断地有标准输出,需要Flask提供REST服务去异步执行这段脚本,并且实时捕获标准输出,通过WebSocket推送给前台。关键点:异步调用,实时获取标准输出,并且可能涉及到实时交互。当时解决这个问题,一开始使用的是Python的输出重定向sys.stdout,然后重写write方法,将输出写到Queue里...

Read article

SPARK August 24, 2020

Spark读取JSON的小扩展

Words count 8.2k Reading time 7 mins.

版本说明:

spark 2.3

前几天在群里摸鱼的时候,碰都一位同学问了一个比较有趣的问题,他提问:Spark如何读取原生JSON?看到这个问题,心里有些疑惑,Spark不是有JSON数据源支持吗,怎么这里还要问如何读取原生JSON,这原生JSON又是什么鬼?经过交流才明白,原来他所说的原生JSON是类似如下这种格式:

{
  "昌平区东小": [
    116.4021289,
    40.05688698
  ],
  "昌平区回龙": [
    116.3412241...
Read article

FLINK August 24, 2020

Flink DataStream API之Operators

Words count 21k Reading time 19 mins.

官网位置:https://ci.apache.org/projects/flink/flink-docs-release-1.9/zh/dev/stream/operators/

Operators transform one or more DataStreams into a new DataStream. Programs can combine multiple transformations into sophisticated dataflow topologies.

算子可以将一个...

Read article

RPC August 24, 2020

RPC框架初体验之入门

Words count 26k Reading time 24 mins.

项目地址:https://github.com/shirukai/learn-demo-rpc.git

RPC全称Remote Procedure Call,顾名思义,远程过程调用的意思。关于RPC的介绍,可以参考一下简书上《如何给老婆解释什么是RPC》这篇文章,很有趣。RPC这个概念,我第一次接触是在《Spark内核设计的艺术》这本书里。后来在看微服务的时候,也提及到了几款RPC框架,比如Thrift、Dubbo、gRPC。所以决定认真的学习一下RPC以及这几种框架。下面将会在本篇文章里入...

Read article

AZKABAN August 24, 2020

Java封装Azkaban相关API

Words count 27k Reading time 24 mins.

版本说明:

azkaban:3.43.0

jdk:1.8

项目地址:https://github.com/shirukai/azkaban-java-api.git

之前在项目开发记录中,写到过两篇文章《利用AOP对Azkaban进行登录控制》和 《Java调用Azkaban相关服务》,记录了在开发过程中使用spring的aop对azkaban进行了登录控制,以及使用Java请求azkaban相关的服务。总的来说,能够完成基本的需求,但是还是存在一些问题,比如:

  • 深度依赖Spring,利用...
Read article

RPC August 24, 2020

RPC框架初体验之Thrift

Words count 25k Reading time 22 mins.

版本说明:thrfit 0.12.0

模块说明:

  • thrift-demo-java-api: 使用thrift生成Java api
  • thrift-demo-java-server: Java 实现Thrift服务端
  • thrift-demo-java-client:Java实现Thrift客户端
  • thrift-demo-py-api:使用thrift生成Python api
  • thrift-demo-py-server:Python实现Thrift服务端
  • thrift-demo-py-client...
Read article

FLINK August 24, 2020

Flink DataStream API之State

Words count 46k Reading time 42 mins.

无论StructuredStreaming还是Flink在流处理的过程中都有一个“有状态计算“的概念,那么到底什么是有状态计算,有状态计算应用到什么场景,在Flink的DataStream API中如何使用状态,以及在Flink中状态是如何管理的,在这篇文章中,我们一点一点来学习。

在讲什么是有状态计算之前,先简单说一下什么是无状态计算,在我理解,无状态计算是指本次计算结果与之前输出无关的计算。比如说,设备开关量的问题,假设我消息队列中存放的消息是每个设备的开关量信息,包含:设备ID,以及设备的...

Read article

SPARK August 24, 2020

StructuredStreaming动态更新参数

Words count 49k Reading time 45 mins.

版本说明:Spark 2.4

在使用StructuredStreaming的时候,我们可能会遇到在不重启Spark应用的情况下动态的更新参数,如:动态更新某个过滤条件、动态更新分区数量、动态更新join的静态数据等。在工作中,遇到了一个应用场景,是实时数据与静态DataFrame去Join,然后做一些处理,但是这个静态DataFrame偶尔会发生变化,要求在不重启Spark应用的前提下去动态更新。目前总结了两种解决方案,一种是基于重写数据源的动态更新,另一种是重启Query的动态更新,下面将...

Read article

SPARK August 24, 2020

StructuredStreaming项目开发记录

Words count 51k Reading time 46 mins.

版本说明:Spark2.4

前言

最近基于Spark Structured Streaming开发一套实时数据判别清洗系统,在开发过程接触了一些StructuredStreaming的新特性以及新用法。本文主要记录一下在开发过程中使用到的技术点,以及遇到的问题总结。

关于当时项目技术选型最终选择StructuredStreaming的原因,主要是因为团队具有Spark开发经验且Structured 比Spark Streaming具有基于事件时间处理机制。这里简单对Spark Streaming...

Read article
Load more
0%