自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张吉的博客

If I rest, I rust.

原创 使用 Kubernetes 部署 Flink 应用

Kubernetes 是目前非常流行的容器编排系统,在其之上可以运行 Web 服务、大数据处理等各类应用。这些应用被打包在一个个非常轻量的容器中,我们通过声明的方式来告知 Kubernetes 要如何部署和扩容这些程序,并对外提供服务。Flink 同样是非常流行的分布式处理框架,它也可以运行在 K...

2019-08-25 15:46:58

阅读数 43

评论数 0

原创 深入理解 Hive ACID 事务表

Apache Hive 0.13 版本引入了事务特性,能够在 Hive 表上实现 ACID 语义,包括 INSERT/UPDATE/DELETE/MERGE 语句、增量数据抽取等。Hive 3.0 又对该特性进行了优化,包括改进了底层的文件组织方式,减少了对表结构的限制,以及支持条件下推和向量化查...

2019-06-11 21:30:58

阅读数 479

评论数 0

原创 使用 Apache Flink 开发实时 ETL

Apache Flink 是大数据领域又一新兴框架。它与 Spark 的不同之处在于,它是使用流式处理来模拟批量处理的,因此能够提供亚秒级的、符合 Exactly-once 语义的实时处理能力。Flink 的使用场景之一是构建实时的数据通道,在不同的存储之间搬运和转换数据。本文将介绍如何使用 Fl...

2018-12-30 12:55:11

阅读数 2728

评论数 1

原创 Spark DataSource API V2

Spark 1.3 引入了第一版的数据源 API,我们可以使用它将常见的数据格式整合到 Spark SQL 中。但是,随着 Spark 的不断发展,这一 API 也体现出了其局限性,故而 Spark 团队不得不加入越来越多的专有代码来编写数据源,以获得更好的性能。Spark 2.3 中,新一版的数...

2018-12-09 11:25:37

阅读数 587

评论数 1

原创 Flume 源码解析:HDFS Sink

Apache Flume 数据流程的最后一部分是 Sink,它会将上游抽取并转换好的数据输送到外部存储中去,如本地文件、HDFS、ElasticSearch 等。本文将通过分析源码来展现 HDFS Sink 的工作流程。 Sink 组件的生命周期 在上一篇文章中, 我们了解到 Flume 组件都会...

2018-10-04 14:01:59

阅读数 737

评论数 0

原创 Java 空指针异常的若干解决方案

Java 中任何对象都有可能为空,当我们调用空对象的方法时就会抛出 NullPointerException 空指针异常,这是一种非常常见的错误类型。我们可以使用若干种方法来避免产生这类异常,使得我们的代码更为健壮。本文将列举这些解决方案,包括传统的空值检测、编程规范、以及使用现代 Java 语言...

2018-09-22 21:04:03

阅读数 11772

评论数 0

原创 是否需要使用 ESLint jsx-no-bind 规则?

在使用 ESLint React 插件时,有一条名为 jsx-no-bind 的检测规则,它会禁止我们在 JSX 属性中使用 .bind 方法和箭头函数。比如下列代码,ESLint 会提示 onClick 属性中的箭头函数不合法: class ListArrow extends React....

2018-09-14 11:53:55

阅读数 1169

评论数 1

原创 TensorFlow 模型如何对外提供服务

TensorFlow 是目前最为流行的机器学习框架之一,通过它我们可以便捷地构建机器学习模型。使用 TensorFlow 模型对外提供服务有若干种方式,本文将介绍如何使用 SavedModel 机制来编写模型预测接口。 鸢尾花深层神经网络分类器 首先让我们使用 TensorFlow 的深层...

2018-05-14 13:52:52

阅读数 9015

评论数 1

原创 使用 Python 和 Thrift 连接 HBase

Apache HBase 是 Hadoop 生态环境中的键值存储系统(Key-value Store)。它构建在 HDFS 之上,可以对大型数据进行高速的读写操作。HBase 的开发语言是 Java,因此提供了原生的 Java 语言客户端。不过,借助于 Thrift 和其丰富的语言扩展,我们可以十...

2018-04-23 08:58:07

阅读数 1832

评论数 0

原创 Vuex 严格模式下的表单处理

在使用 Vue 进行表单处理时,我们通常会使用 v-model 来建立双向绑定。但是,如果将表单数据交由 Vuex 管理,这时的双向绑定就会引发问题,因为在 严格模式 下,Vuex 是不允许在 Mutation 之外的地方修改状态数据的。以下用一个简单的项目举例说明,完整代码可在 GitHub...

2018-04-18 09:21:52

阅读数 1198

评论数 0

原创 RESTful API 中的错误处理

构建 Web 服务时,我们会使用 RESTful API 来实现组件间的通信,特别是在现今前后端分离的技术背景下。REST 是一种基于 HTTP 协议的通信方式,它简单、基于文本、且在各种语言、浏览器及客户端软件中能得到很好的支持。然而,REST 目前并没有一个普遍接受的标准,因此开发者需要自...

2018-04-08 09:00:13

阅读数 5362

评论数 0

原创 Flume 源码解析:组件生命周期

Apache Flume 是数据仓库体系中用于做实时 ETL 的工具。它提供了丰富的数据源和写入组件,这些组件在运行时都由 Flume 的生命周期管理机制进行监控和维护。本文将对这部分功能的源码进行解析。

2017-10-24 09:41:34

阅读数 770

评论数 0

原创 Pandas 与数据整理

在 Tidy Data 论文中,Wickham 博士提出了这样一种“整洁”的数据结构:每个变量是一列,每次观测结果是一行,不同的观测类型存放在单独的表中。他认为这样的数据结构可以帮助分析师更简单高效地进行处理、建模、和可视化。他在论文中列举了五种不符合整洁数据的情况,并演示了如何通过 R 语言对它...

2017-10-10 10:08:47

阅读数 919

评论数 0

原创 Perl 入门实战:JVM 监控脚本(上)

由于最近在搭建Zabbix监控服务,需要制作各类监控的模板,如iostat、Nginx、MySQL等,因此会写一些脚本来完成数据采集的工作。又因为近期对Perl语言比较感兴趣,因此决定花些时间学一学,写一个脚本来练练手,于是就有了这样一份笔记。

2017-09-23 07:23:49

阅读数 466

评论数 0

原创 Apache Beam 快速入门(Python 版)

Apache Beam 是一种大数据处理标准,由谷歌于 2016 年创建。它提供了一套统一的 DSL 用以处理离线和实时数据,并能在目前主流的大数据处理平台上使用,包括 Spark、Flink、以及谷歌自身的商业套件 Dataflow。Beam 的数据模型基于过去的几项研究成果:FlumeJava...

2017-09-13 20:25:36

阅读数 1055

评论数 0

原创 fork() 与僵尸进程

使用fork()函数派生出多个子进程来并行执行程序的不同代码块,是一种常用的编程泛型。特别是在网络编程中,父进程初始化后派生出指定数量的子进程,共同监听网络端口并处理请求,从而达到扩容的目的。但是,在使用fork()函数时若处理不当,很容易产生僵尸进程。

2017-09-12 06:24:05

阅读数 826

评论数 0

翻译 2017 Top 15 Python 数据科学类库;时间序列异常点检测;如何加入开源项目

近年来,Python 在数据科学领域得到了越来越多的关注,本文整理归类了使用率最高的数据科学类库,供大家参考。

2017-09-06 10:07:28

阅读数 3668

评论数 0

原创 Hive 窗口与分析型函数

新版的 SQL 标准引入了窗口查询功能,使用 WINDOW 语句我们可以计算分组排名、滑动平均值等。本文将介绍 Hive 中窗口及分析型函数的使用方法。

2017-09-05 12:39:18

阅读数 2960

评论数 0

原创 Perl 入门实战:JVM 监控脚本(下)

套接字使用套接字(Socket)进行网络通信的基本流程是: 服务端:监听端口、等待连接、接收请求、发送应答; 客户端:连接服务端、发送请求、接收应答。

2017-09-02 06:16:24

阅读数 748

评论数 0

原创 Clojure 实战 (5):Storm 实时计算框架

Storm简介上一章介绍的Hadoop工具能够对海量数据进行批量处理,采用分布式的并行计算架构,只需使用其提供的MapReduce API编写脚本即可。但随着人们对数据实时性的要求越来越高,如实时日志分析、实时推荐系统等,Hadoop就无能为力了。这时,Storm诞生了。它的设计初衷就是提供一套分...

2017-09-01 08:32:03

阅读数 867

评论数 0

提示
确定要删除当前文章?
取消 删除