<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Ricky点滴]]></title><description><![CDATA[故不积跬步无以至千里，不积小流无以成江河。]]></description><link>https://blog.youkuaiyun.com/huochen1994</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; huochen1994]]></copyright><item><title><![CDATA[如何用Spark实现一个通用大数据引擎]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/106534730</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/106534730</guid><author>huochen1994</author><pubDate>Wed, 03 Jun 2020 22:44:47 +0800</pubDate><description><![CDATA[Github 上的开源项目 Waterdrop，此项目Star + Fork的有将近1200人，是一个基于Spark和Flink构建的生产环境的海量数据计算产品。Waterdrop的特性包括

简单易用，灵活配置，无需开发；
同时支持流式和离线处理;
模块化和插件化，易于扩展；
支持利用SQL做数据处理和聚合；
支持选择Spark或Flink作为底层引擎层。

作为 Spark 或者 Flink 的开发者，你是否也曾经想过要打造这样一款通用的计算引擎，是是否曾经有这样的疑问，Waterdrop为什么能实现这]]></description><category></category></item><item><title><![CDATA[从Flink上谈当今实时流处理]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/105792387</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/105792387</guid><author>huochen1994</author><pubDate>Mon, 27 Apr 2020 15:53:13 +0800</pubDate><description><![CDATA[0. 序 

在当前数据量激增传统的时代，不同的业务场景都有大量的业务数据产生，对于这些不断产生的数据应该如何进行有效地处理，成为当下大多数公司所面临的问题。

但随着数据的不断增长，新技术的不断发展，人们逐渐意识到对实时数据处理的重要性，企业需要能够同时支持高吞吐、低延迟、高性能的流处理技术来处理日益增长的数据。

相对于传统的数据处理模式，流式数据处理则有着更高的处理效率和成本控制。Apach...]]></description><category></category></item><item><title><![CDATA[Golang Benchmark Test]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/105724851</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/105724851</guid><author>huochen1994</author><pubDate>Fri, 24 Apr 2020 10:15:15 +0800</pubDate><description><![CDATA[内部程序是CPU密集型计算，因此编写了 Benchmark 测试算子的性能，并且希望在此基础上，将 Benchmark 在各服务器上执行，验证服务器性能情况。

Benchmark 编译

go test -c -test.bench=".*"  ./filter/

执行后将在本地生成 filter.test
Benchmark 运行
首先在目标服务器上将编译好的二进制文件拉取到本地。

./...]]></description><category></category></item><item><title><![CDATA[Elasticsearch深度分页问题以及Scroll查询的一些总结]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/103908807</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/103908807</guid><author>huochen1994</author><pubDate>Thu, 09 Jan 2020 15:11:18 +0800</pubDate><description><![CDATA[背景介绍
我们在 Elasticsearch API的基础上实现了一个日志查询系统，支持最基本的时间范围选择以及关键词搜索高亮，并且日志展示的表格支持异步分页。
有天用户反馈，查询的时候页面报错
Result window is too large, from + size must be less than or equal to: [10000] but was [24600]. See th...]]></description><category></category></item><item><title><![CDATA[Waterdrop推动Spark Structured Streaming走向生产环境]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/89325912</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/89325912</guid><author>huochen1994</author><pubDate>Tue, 16 Apr 2019 08:59:25 +0800</pubDate><description><![CDATA[前言
StructuredStreaming是Spark 2.0以后新开放的一个模块，相比SparkStreaming，它有一些比较突出的优点：

它能做到更低的延迟;
可以做实时的聚合，例如实时计算每天每个商品的销售总额；
可以做流与流之间的关联，例如计算广告的点击率，需要将广告的曝光记录和点击记录关联。

以上几点如果使用SparkStreaming来实现可能会比较麻烦或者说是很难实现，但是使...]]></description><category></category></item><item><title><![CDATA[ElasticSearch pinyin分词支持多音字]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/88876230</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/88876230</guid><author>huochen1994</author><pubDate>Thu, 28 Mar 2019 19:29:06 +0800</pubDate><description><![CDATA[ElasticSearch pinyin分词支持多音字
背景
我们有一个搜索业务底层采用ElasticSearch作为搜索引擎，在索引的过程中，使用了ik中文分词、拼音分词、同义词等多种分词器。ES和各种插件的组合已经能满足我们线上90%的需求，但是仍有部分需求无法覆盖，我们在拼音分词的时候过程中就遇到了无法解决的问题。
比如在 三一重工 中，一重 这个词在拼音词库 polyphone.txt 中...]]></description><category></category></item><item><title><![CDATA[优秀的数据工程师，怎么用Spark在TiDB上做OLAP分析]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/87651327</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/87651327</guid><author>huochen1994</author><pubDate>Mon, 18 Feb 2019 22:25:25 +0800</pubDate><description><![CDATA[优秀的数据工程师，怎么用Spark在TiDB上做OLAP分析

TiDB 是一款定位于在线事务处理/在线分析处理的融合型数据库产品，实现了一键水平伸缩，强一致性的多副本数据安全，分布式事务，实时 OLAP 等重要特性。
TiSpark 是 PingCAP 为解决用户复杂 OLAP 需求而推出的产品。它借助 Spark 平台，同时融合 TiKV 分布式集群的优势。
直接使用 TiSpark 完成 O...]]></description><category></category></item><item><title><![CDATA[怎么在MacOS上使用sbt发布代码到Maven中央仓库]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/86690178</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/86690178</guid><author>huochen1994</author><pubDate>Tue, 29 Jan 2019 15:09:49 +0800</pubDate><description><![CDATA[怎么在MacOS上使用sbt发布代码到Maven中央仓库
在项目中集成sonatype
这一部分不是本篇文章的重点，在项目集成sonatype可参照https://github.com/xerial/sbt-sonatype配置
上传代码
1. 安装gpg并生成密钥

brew install gpg
gpg --gen-key
# 输入用户名，邮箱和密码
gpg --list-key

pub ...]]></description><category></category></item><item><title><![CDATA[Gitlab CI集成工具的应用]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/86235935</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/86235935</guid><author>huochen1994</author><pubDate>Thu, 10 Jan 2019 15:38:30 +0800</pubDate><description><![CDATA[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...]]></description><category></category></item><item><title><![CDATA[如何使用Spark快速将数据写入Elasticsearch]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/84963777</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/84963777</guid><author>huochen1994</author><pubDate>Tue, 11 Dec 2018 23:57:23 +0800</pubDate><description><![CDATA[如何使用Spark快速将数据写入Elasticsearch
说到数据写入Elasticsearch，最先想到的肯定是Logstash。Logstash因为其简单上手、可扩展、可伸缩等优点被广大用户接受。但是尺有所短，寸有所长，Logstash肯定也有它无法适用的应用场景，比如：

海量数据ETL
海量数据聚合
多源数据处理

为了满足这些场景，很多同学都会选择Spark，借助Spark算子进行数据...]]></description><category></category></item><item><title><![CDATA[如何快速地将Hive中的数据导入ClickHouse]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/84594508</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/84594508</guid><author>huochen1994</author><pubDate>Wed, 28 Nov 2018 23:17:21 +0800</pubDate><description><![CDATA[如何快速地将Hive中的数据导入ClickHouse

ClickHouse是面向OLAP的分布式列式DBMS。我们部门目前已经把所有数据分析相关的日志数据存储至ClickHouse这个优秀的数据仓库之中，当前日数据量达到了300亿。
在之前的文章如何快速地把HDFS中的数据导入ClickHouse中我们提到过使用Waterdrop——https://github.com/InterestingL...]]></description><category></category></item><item><title><![CDATA[Dataset 使用填坑记录]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/83997051</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/83997051</guid><author>huochen1994</author><pubDate>Mon, 12 Nov 2018 19:20:31 +0800</pubDate><description><![CDATA[Dataset 使用填坑记录
Dataset被誉为懒人数据库（databases for lazy people），是Python操作MySQL的库。因为其简单的操作，避开了繁琐的依赖安装和链接建立，能够很快的和数据库进行交互。但是在使用过程中，遇到了不少的坑，这篇文章旨在记录使用过程中遇到的坑，避免下次再犯浪费时间。
连接不释放
使用Dataset连接MySQL，连接不会主动释放，这样会导致表结...]]></description><category></category></item><item><title><![CDATA[如何快速地把HDFS中的数据导入ClickHouse]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/83827587</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/83827587</guid><author>huochen1994</author><pubDate>Wed, 07 Nov 2018 17:12:07 +0800</pubDate><description><![CDATA[如何快速地把HDFS中的数据导入ClickHouse

ClickHouse是面向OLAP的分布式列式DBMS。我们部门目前已经把所有数据分析相关的日志数据存储至ClickHouse这个优秀的数据仓库之中，当前日数据量达到了300亿。
之前介绍的有关数据处理入库的经验都是基于实时数据流，数据存储在Kafka中，我们使用Java或者Golang将数据从Kafka中读取、解析、清洗之后写入ClickH...]]></description><category></category></item><item><title><![CDATA[[Leetcode-228]Python-Summary-Ranges-滑动窗口]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/81675328</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/81675328</guid><author>huochen1994</author><pubDate>Tue, 14 Aug 2018 21:51:39 +0800</pubDate><description><![CDATA[Overview

给定一个无重复元素的有序整数数组，返回数组区间范围的汇总。。

示例 1:



输入: [0,1,2,4,5,7]
输出: [&quot;0-&amp;gt;2&quot;,&quot;4-&amp;gt;5&quot;,&quot;7&quot;]
解释: 0,1,2 可组成一个连续的区间; 4,5 可组成一个连续的区间。

示例 2:



输入: [0,2,3,4,6,8,9]
输出: [&quot;0&quot;,&quot;2-&amp;gt;4&quot;,&quot;6&]]></description><category></category></item><item><title><![CDATA[Elasticsearch Rolling up historical data Overview]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/81504877</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/81504877</guid><author>huochen1994</author><pubDate>Wed, 08 Aug 2018 11:14:29 +0800</pubDate><description><![CDATA[Elasticsearch Rolling up historical data



Overview


  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 ...]]></description><category></category></item><item><title><![CDATA[[Leetcode-66]Python-Plus One-三行代码]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/81415801</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/81415801</guid><author>huochen1994</author><pubDate>Sat, 04 Aug 2018 21:45:39 +0800</pubDate><description><![CDATA[Overview

给定一个非负整数组成的非空数组，在该数的基础上加一，返回一个新的数组。

最高位数字存放在数组的首位， 数组中每个元素只存储一个数字。

你可以假设除了整数 0 之外，这个整数不会以零开头。

示例 1:



输入: [1,2,3]
输出: [1,2,4]
解释: 输入数组表示数字 123。

示例 2:



输入: [4,3,2,1]
输出: [4,3,2,2]
解释: ...]]></description><category></category></item><item><title><![CDATA[Python List VS Set]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/81394846</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/81394846</guid><author>huochen1994</author><pubDate>Fri, 03 Aug 2018 21:35:39 +0800</pubDate><description><![CDATA[Python List VS Set



Overview

Sets 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...]]></description><category></category></item><item><title><![CDATA[Elasticsearch 6.3 X-PACK SQL Overview]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/81364507</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/81364507</guid><author>huochen1994</author><pubDate>Thu, 02 Aug 2018 17:33:46 +0800</pubDate><description><![CDATA[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...]]></description><category></category></item><item><title><![CDATA[Flume 1.8.0读取Kafka写HDFS]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/81204971</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/81204971</guid><author>huochen1994</author><pubDate>Wed, 25 Jul 2018 16:14:24 +0800</pubDate><description><![CDATA[Flume 1.8.0读取Kafka写HDFS



环境准备


java version “1.8.0_45”
Hadoop 2.6.0-cdh5.5.1




安装Flume



wget http://mirrors.tuna.tsinghua.edu.cn/apache/flume/1.8.0/apache-flume-1.8.0-bin.tar.gz
tar -xvf apache...]]></description><category></category></item><item><title><![CDATA[Python中List遍历的若干种方法]]></title><link>https://blog.youkuaiyun.com/huochen1994/article/details/81131435</link><guid>https://blog.youkuaiyun.com/huochen1994/article/details/81131435</guid><author>huochen1994</author><pubDate>Fri, 20 Jul 2018 14:18:59 +0800</pubDate><description><![CDATA[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...]]></description><category></category></item></channel></rss>