5 Ricky_Huo

尚未进行身份认证

我要认证

曾经是个全栈,立志于不做全栈

等级
TA的排名 3w+

如何用Spark实现一个通用大数据引擎

Github 上的开源项目 Waterdrop,此项目Star + Fork的有将近1200人,是一个基于Spark和Flink构建的生产环境的海量数据计算产品。Waterdrop的特性包括简单易用,灵活配置,无需开发;同时支持流式和离线处理;模块化和插件化,易于扩展;支持利用SQL做数据处理和聚合;支持选择Spark或Flink作为底层引擎层。作为 Spark 或者 Flink 的开发者,你是否也曾经想过要打造这样一款通用的计算引擎,是是否曾经有这样的疑问,Waterdrop为什么能实现这

2020-06-03 22:44:47

从Flink上谈当今实时流处理

0. 序 在当前数据量激增传统的时代,不同的业务场景都有大量的业务数据产生,对于这些不断产生的数据应该如何进行有效地处理,成为当下大多数公司所面临的问题。但随着数据的不断增长,新技术的不断发展,人们逐渐意识到对实时数据处理的重要性,企业需要能够同时支持高吞吐、低延迟、高性能的流处理技术来处理日益增长的数据。相对于传统的数据处理模式,流式数据处理则有着更高的处理效率和成本控制。Apach...

2020-04-27 15:53:13

Golang Benchmark Test

内部程序是CPU密集型计算,因此编写了 Benchmark 测试算子的性能,并且希望在此基础上,将 Benchmark 在各服务器上执行,验证服务器性能情况。Benchmark 编译go test -c -test.bench=".*" ./filter/执行后将在本地生成 filter.testBenchmark 运行首先在目标服务器上将编译好的二进制文件拉取到本地。./...

2020-04-24 10:15:15

Elasticsearch深度分页问题以及Scroll查询的一些总结

背景介绍我们在 Elasticsearch API的基础上实现了一个日志查询系统,支持最基本的时间范围选择以及关键词搜索高亮,并且日志展示的表格支持异步分页。有天用户反馈,查询的时候页面报错Result window is too large, from + size must be less than or equal to: [10000] but was [24600]. See th...

2020-01-09 15:11:18

Waterdrop推动Spark Structured Streaming走向生产环境

前言StructuredStreaming是Spark 2.0以后新开放的一个模块,相比SparkStreaming,它有一些比较突出的优点:它能做到更低的延迟;可以做实时的聚合,例如实时计算每天每个商品的销售总额;可以做流与流之间的关联,例如计算广告的点击率,需要将广告的曝光记录和点击记录关联。以上几点如果使用SparkStreaming来实现可能会比较麻烦或者说是很难实现,但是使...

2019-04-16 08:59:25

ElasticSearch pinyin分词支持多音字

ElasticSearch pinyin分词支持多音字背景我们有一个搜索业务底层采用ElasticSearch作为搜索引擎,在索引的过程中,使用了ik中文分词、拼音分词、同义词等多种分词器。ES和各种插件的组合已经能满足我们线上90%的需求,但是仍有部分需求无法覆盖,我们在拼音分词的时候过程中就遇到了无法解决的问题。比如在 三一重工 中,一重 这个词在拼音词库 polyphone.txt 中...

2019-03-28 19:29:06

优秀的数据工程师,怎么用Spark在TiDB上做OLAP分析

优秀的数据工程师,怎么用Spark在TiDB上做OLAP分析TiDB 是一款定位于在线事务处理/在线分析处理的融合型数据库产品,实现了一键水平伸缩,强一致性的多副本数据安全,分布式事务,实时 OLAP 等重要特性。TiSpark 是 PingCAP 为解决用户复杂 OLAP 需求而推出的产品。它借助 Spark 平台,同时融合 TiKV 分布式集群的优势。直接使用 TiSpark 完成 O...

2019-02-18 22:25:25

怎么在MacOS上使用sbt发布代码到Maven中央仓库

怎么在MacOS上使用sbt发布代码到Maven中央仓库在项目中集成sonatype这一部分不是本篇文章的重点,在项目集成sonatype可参照https://github.com/xerial/sbt-sonatype配置上传代码1. 安装gpg并生成密钥brew install gpggpg --gen-key# 输入用户名,邮箱和密码gpg --list-keypub ...

2019-01-29 15:09:49

Gitlab CI集成工具的应用

Gitlab CI集成工具的应用什么是Gitlab CI工具Continuous Integration is a software development practice in which you build and test software every time a developer pushes code to the application, and it happens s...

2019-01-10 15:38:30

如何使用Spark快速将数据写入Elasticsearch

如何使用Spark快速将数据写入Elasticsearch说到数据写入Elasticsearch,最先想到的肯定是Logstash。Logstash因为其简单上手、可扩展、可伸缩等优点被广大用户接受。但是尺有所短,寸有所长,Logstash肯定也有它无法适用的应用场景,比如:海量数据ETL海量数据聚合多源数据处理为了满足这些场景,很多同学都会选择Spark,借助Spark算子进行数据...

2018-12-11 23:57:23

如何快速地将Hive中的数据导入ClickHouse

如何快速地将Hive中的数据导入ClickHouseClickHouse是面向OLAP的分布式列式DBMS。我们部门目前已经把所有数据分析相关的日志数据存储至ClickHouse这个优秀的数据仓库之中,当前日数据量达到了300亿。在之前的文章如何快速地把HDFS中的数据导入ClickHouse中我们提到过使用Waterdrop——https://github.com/InterestingL...

2018-11-28 23:17:21

Dataset 使用填坑记录

Dataset 使用填坑记录Dataset被誉为懒人数据库(databases for lazy people),是Python操作MySQL的库。因为其简单的操作,避开了繁琐的依赖安装和链接建立,能够很快的和数据库进行交互。但是在使用过程中,遇到了不少的坑,这篇文章旨在记录使用过程中遇到的坑,避免下次再犯浪费时间。连接不释放使用Dataset连接MySQL,连接不会主动释放,这样会导致表结...

2018-11-12 19:20:31

如何快速地把HDFS中的数据导入ClickHouse

如何快速地把HDFS中的数据导入ClickHouseClickHouse是面向OLAP的分布式列式DBMS。我们部门目前已经把所有数据分析相关的日志数据存储至ClickHouse这个优秀的数据仓库之中,当前日数据量达到了300亿。之前介绍的有关数据处理入库的经验都是基于实时数据流,数据存储在Kafka中,我们使用Java或者Golang将数据从Kafka中读取、解析、清洗之后写入ClickH...

2018-11-07 17:12:07

[Leetcode-228]Python-Summary-Ranges-滑动窗口

Overview给定一个无重复元素的有序整数数组,返回数组区间范围的汇总。。示例 1:输入: [0,1,2,4,5,7]输出: ["0->2","4->5","7"]解释: 0,1,2 可组成一个连续的区间; 4,5 可组成一个连续的区间。示例 2:输入: [0,2,3,4,6,8,9]输出: ["0","2->4","6&

2018-08-14 21:51:39

Elasticsearch Rolling up historical data Overview

Elasticsearch Rolling up historical dataOverview And while we continue to believe that most data tends to have value over a long period of time, the relative value of the data can decrease as ...

2018-08-08 11:14:29

[Leetcode-66]Python-Plus One-三行代码

Overview给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: ...

2018-08-04 21:45:39

Python List VS Set

Python List VS SetOverviewSets are significantly faster (almost O(1)) when it comes to determining if an object is present in the set (as in x in s), but are slower than lists when it comes to i...

2018-08-03 21:35:39

Elasticsearch 6.3 X-PACK SQL Overview

Elasticsearch 6.3 X-PACK SQL Overview Elasticsearch SQL aims to provide a powerful yet lightweight SQL interface to Elasticsearch写在前面 However the backing engine itself is Elasticsearch fo...

2018-08-02 17:33:46

Flume 1.8.0读取Kafka写HDFS

Flume 1.8.0读取Kafka写HDFS环境准备java version “1.8.0_45”Hadoop 2.6.0-cdh5.5.1安装Flumewget http://mirrors.tuna.tsinghua.edu.cn/apache/flume/1.8.0/apache-flume-1.8.0-bin.tar.gztar -xvf apache...

2018-07-25 16:14:24

Python中List遍历的若干种方法

List 遍历的4种方法:方法1:for i in list: print i方法2:for i in range(len(list)): print i, list[i]方法3:for i in xrange(len(list)): print i, list[i]方法4:for i, j in enumerate(list...

2018-07-20 14:18:59

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。