<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xiaohu21的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xiaohu21</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xiaohu21]]></copyright><item><title><![CDATA[《如何阅读一本书》读书笔记]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/114527010</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/114527010</guid><author>xiaohu21</author><pubDate>Mon, 08 Mar 2021 12:09:18 +0800</pubDate><description><![CDATA[《如何阅读一本书》读书笔记
背景

学习和适应能力是如今社会生存和发展最重要的能力之一，学习如何学习，学习如何阅读来汲取和提炼信息，提升自己
当今社会各种信息承载方式和渠道，录音，广播，电视，视频，博客等，但书籍作为很传统的一种信息承载方式，还是有其不可替代的作用。所以学习如何阅读是一件很重要的事情。
《如何阅读一本书》就是一本关于如何阅读的书籍，很经典

笔记
1. 章节划分

本书可以划分为2个部分，一个是读书方式的划分以及如何做到；另一个就是读书的目标以及如何达到
书籍本身划分是四个部分，单独将分析阅]]></description><category></category></item><item><title><![CDATA[大数据开发之Django简单接口开发]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/114257606</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/114257606</guid><author>xiaohu21</author><pubDate>Mon, 01 Mar 2021 11:28:17 +0800</pubDate><description><![CDATA[大数据开发之Django简单接口开发
背景

做大数据开发，目前主要语言还是java和scala，但python由于在算法方向的广泛应用，一些公司为了降低内部开发和维护成本，会直接统一开发语言为python，而且主流的hadoop，spark，包括flink都有比较完善的python支持了。
大数据团队一般职责最简化来说就是ETL，很多时候分工，直接把数据处理好治好，等待下游环节消费即可。但有时候也需要提供api接口，方便下游环节甚至外部访问。
java语言下，很多时候直接spring就可以搞定这类需求，p]]></description><category></category></item><item><title><![CDATA[读书笔记之《随机漫步的傻瓜》]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/113914417</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/113914417</guid><author>xiaohu21</author><pubDate>Sun, 21 Feb 2021 10:43:52 +0800</pubDate><description><![CDATA[读书笔记之《随机漫步的傻瓜》
背景

目前看的书籍，分为几大类：


职业技能类型，也就是计算机专业书籍
文学修养类型，如毛泽东文选，古文观止等
理财类书籍，包括经济学，巴菲特，查理芒格，银行螺丝钉等编写的书籍，这是除了职业技能书籍之外，直接带来收入的知识学习。《随机漫步的傻瓜》这本书也是讲解关于理财的书籍，不过是从另外一个角度对理财收益的结果做评估。稍后开始讲解

总结
1. 全书划分，三篇

这本书从最概要来讲，就是不要忽视随机事件，以及各个事件结果后面随机性带来的影响。
从正面事件结果来看随机性，一定]]></description><category></category></item><item><title><![CDATA[flink mongodb sink自定义开发(支持flink sql)]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/113487253</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/113487253</guid><author>xiaohu21</author><pubDate>Sun, 31 Jan 2021 23:36:33 +0800</pubDate><description><![CDATA[flink mongodb sink自定义开发
1. 背景

目前官方关于自定义sink source资料较少，示例代码少，幸好github有一个clickhouse的自定义sink可以借鉴
https://github.com/gmmstrive/flink-connector-clickhouse

2. 步骤
1. 环境


jdk8
idea 2020
scala 2.11


2. pom
以下是自定义connector开发时可以参考的pom文件
&lt;packaging&gt;jar&lt;/]]></description><category></category></item><item><title><![CDATA[flink redis connector（支持flink sql）]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/113486585</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/113486585</guid><author>xiaohu21</author><pubDate>Sun, 31 Jan 2021 23:03:55 +0800</pubDate><description><![CDATA[flink redis connector（支持flink sql）
1. 背景

工作原因，需要基于flink sql做redis sink，但bahir 分支的flink connector支持只是基于datastream，而需要支持flink sql，还需要进一步完善
flink sql及flink table api按照flink官方社区，会是未来重点方向，包括python支持。因为所有的技术都会往使用友好方向发展，对外接口和使用友好，内部则会因为这个原因变得复杂起来。（但需要确定方向是否有误才行）]]></description><category></category></item><item><title><![CDATA[Hadoop 2.6.5 集群搭建(基于Mac os 11.1)]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/112724047</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/112724047</guid><author>xiaohu21</author><pubDate>Sat, 16 Jan 2021 20:37:42 +0800</pubDate><description><![CDATA[Hadoop 2.6.5 集群搭建(基于Mac os 11.1)
背景

之前博客都是研究时环境,hadoop,spark等版本都比较新
本文基于对生产环境还原,使用较低的2.6.5版本(实际生产中一般不会使用较新的开源版本,而是使用经过验证的稳定的版本如hadoop, spark的 2.x 系列的版本)

步骤

mac os  11.1
jdk 1.8(mac os上安装),
linux(centos 7) 上安装open jdk的1.8版本

yum install -y  java-1.8.0-op]]></description><category></category></item><item><title><![CDATA[Flink 1.12.0学习与分享(pyflink)]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/112131966</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/112131966</guid><author>xiaohu21</author><pubDate>Mon, 04 Jan 2021 09:52:50 +0800</pubDate><description><![CDATA[Flink 1.12.0学习与分享
1. 大数据实时计算引擎历史

第一代, 以Storm为代表, 高吞吐,低延迟,但精确一次消费以及开发维护便捷性,生态完善度等相对欠缺一些.
第二代,以Spark 为代表, 高吞吐, 牺牲了一些延迟(微批次理念), 结合第三方框架, 可以很好实现精确一次消费. 开发维护便捷性, 生态完善度都非常好.
第三代, 以Flink为代表, 设计时就以实时计算为出发点, 高吞吐,低延迟,精确一次消费语义支持, 开发维护便捷性, 生态完善度都非常好


生态完善度:
各类编程语言支持]]></description><category></category></item><item><title><![CDATA[＜＜程序是怎么跑起来的＞＞学习笔记总结二]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/111824502</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/111824502</guid><author>xiaohu21</author><pubDate>Sun, 27 Dec 2020 20:58:25 +0800</pubDate><description><![CDATA[&lt;&lt;程序是怎么跑起来的&gt;&gt;学习笔记总结二
2.7 程序运行环境

最早的程序是需要直接操作硬件的,也就是说编写的程序除了需要的逻辑代码之外,还要把控制硬件代码也写进去,后面随着人们初步把这些公共代码抽离,就形成了操作系统
程序运行环境,包含硬件和操作系统. 操作系统就是操作硬件的程序,也是一个平台,让其他程序可以运行在操作系统之上,而不再需要直接操作硬件.现代操作系统为了安全,很多已经禁止直接的硬件操作行为
现代计算机组成:


CPU,内存,外部IO设备如鼠标,键盘,屏幕,打印机,]]></description><category></category></item><item><title><![CDATA[＜＜程序是怎么跑起来的＞＞学习笔记总结一]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/111773902</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/111773902</guid><author>xiaohu21</author><pubDate>Sun, 27 Dec 2020 19:12:09 +0800</pubDate><description><![CDATA[&lt;&lt;程序是怎么跑起来的&gt;&gt;学习笔记总结
1. 背景

作为IT行业从业者,跨行而来,也有6 7年了,虽然一直都有加强基础学习,但学而时习之.不断巩固复习是有很大帮助的,而且经典书常看常新,每次学习,都有不同的感悟.
计算机基础,其实有几门关键的课程:


操作系统
计算机组成原理
计算机网络
数据库原理
编译原理
数据结构与算法


C语言
汇编语言
java


设计模式
软件工程


数字图像处理
音视频技术
分布式计算
人工智能

2. 总结

本书&lt;&lt;程序是怎么跑]]></description><category></category></item><item><title><![CDATA[Flink SQL案例实践(1.11.0)]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/111768761</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/111768761</guid><author>xiaohu21</author><pubDate>Sat, 26 Dec 2020 21:06:11 +0800</pubDate><description><![CDATA[Flink SQL案例实践(1.11.0)
1. 背景

2020年随着阿里flink 批流一体大会开展,更多人和公司知道了flink的强大以及业务场景下的实际表现.关注和使用flink的公司以及个人会越来越多
在大数据领域,一个引擎可以同时支持处理结构化数据,图计算,机器学习,流计算目前主流还是spark和flink.
由于引擎设计理念,flink一开始就是为流计算设计,而spark则一开始就是以批处理设计的,不过是微批次的理念.这也导致了在一些方面,流数据处理领域flink会更加强大和灵活.
本文案例是]]></description><category></category></item><item><title><![CDATA[redis 研究笔记汇总]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/110769236</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/110769236</guid><author>xiaohu21</author><pubDate>Sun, 06 Dec 2020 22:26:30 +0800</pubDate><description><![CDATA[redis 研究笔记汇总
背景

nosql 是为了解决高并发，高可扩展，高可用，高写入产生的数据库解决方案
NoSql就是Not Only sql。Nosql是非关系型数据库，它是关系型数据库的良好补充，而不能替代关系型数据库
Nosql数据库分类


键值(Key-Value)存储数据库
相关产品： Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
典型应用： 内容缓存，主要用于处理大量数据的高访问负载。
数据模型： 一系列键值对
优势： 快速查询
劣势：]]></description><category></category></item><item><title><![CDATA[spark streaming 结合kafka 精确消费一次将结果保存到hbase]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/110757083</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/110757083</guid><author>xiaohu21</author><pubDate>Sun, 06 Dec 2020 20:23:44 +0800</pubDate><description><![CDATA[spark streaming 结合kafka 精确消费一次将结果保存到hbase
1. 环境

scala 2.12.12
jdk 1.8
idea 2020.1
maven 3.6.3
spark 3.0.1
kafka 0.10
hadoop 3.2.1
hbase 2.2.5 （另外一个明细数据幂等处理，保存到habse）
redis 5.0
pom

&lt;!-- 定义了一些常量 --&gt;
    &lt;properties&gt;
        &lt;maven.compiler.s]]></description><category></category></item><item><title><![CDATA[spark streaming 结合kafka 精确消费一次将结果保存到redis]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/110753864</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/110753864</guid><author>xiaohu21</author><pubDate>Sun, 06 Dec 2020 20:11:45 +0800</pubDate><description><![CDATA[spark streaming 结合kafka 精确消费一次到redis
1. 环境

scala 2.12.12
jdk 1.8
idea 2020.1
maven 3.6.3
spark 3.0.1
kafka 0.10
hadoop 3.2.1
hbase 2.2.5 （另外一个明细数据幂等处理，保存到habse）
redis 5.0
pom

&lt;!-- 定义了一些常量 --&gt;
    &lt;properties&gt;
        &lt;maven.compiler.source]]></description><category></category></item><item><title><![CDATA[spark streaming 入门案例演示]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/110733100</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/110733100</guid><author>xiaohu21</author><pubDate>Sun, 06 Dec 2020 12:26:15 +0800</pubDate><description><![CDATA[spark streaming 入门案例演示
1. 环境

scala 2.12.12
jdk 1.8
idea 2020.1
maven 3.6.3
spark 3.0.1
kafka 0.10
pom

&lt;!-- 定义常量 --&gt;
    &lt;properties&gt;
        &lt;maven.compiler.source&gt;1.8&lt;/maven.compiler.source&gt;
        &lt;maven.compiler.target&gt;1]]></description><category></category></item><item><title><![CDATA[Kafka 入门学习简介]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/110732751</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/110732751</guid><author>xiaohu21</author><pubDate>Sun, 06 Dec 2020 12:21:40 +0800</pubDate><description><![CDATA[Kafka 入门学习简介
1. kafka是什么

Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications
官网http://kafka.apache]]></description><category></category></item><item><title><![CDATA[Spark Streaming 结合kafka流式数据处理代码案例（含精确消费一次结果保存到mysql）]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/110731470</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/110731470</guid><author>xiaohu21</author><pubDate>Sun, 06 Dec 2020 11:40:47 +0800</pubDate><description><![CDATA[Spark Streaming 结合kafka流式数据处理代码案例
1. 背景

在当前大数据处理中，根据数据处理类型可以分为离线数据处理和实时数据处理。不过目前主流的实时数据处理spark streaming和flink，其实前者只能算是准实时处理技术
在国内，spark streaming做实时数据处理，一般都是结合kafka来进行数据消息缓存框架，包括spark官方案例也着重讲了这一点
spark 官方文档 http://spark.apache.org/docs/latest/streaming-k]]></description><category></category></item><item><title><![CDATA[大数据面试题题目2020年底总结Java（二）]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/109532453</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/109532453</guid><author>xiaohu21</author><pubDate>Fri, 06 Nov 2020 21:33:03 +0800</pubDate><description><![CDATA[大数据面试题题目2020年底总结Java（二）
1. 多线程
1.1volatile

内存模型可见性


用volatile修饰的变量，就会具有可见性。
volatile修饰的变量不允许线程内部缓存和重排序，即直接修改内存。所以对其他线程是可见的。
但是这里需要注意一个问题，volatile只能让被他修饰内容具有可见性，但不能保证它具有原子性


volatile不保证原子性
如何解决
指令重排


指CPU采用了允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理
内存屏障（指令重排序时不能把后]]></description><category></category></item><item><title><![CDATA[大数据面试题题目2020年底总结（一）]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/109520950</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/109520950</guid><author>xiaohu21</author><pubDate>Thu, 05 Nov 2020 21:55:03 +0800</pubDate><description><![CDATA[大数据面试题集锦（一）
1. java

JVM内存结构


栈
堆
方法区
程序计数器


JVM内存回收机制


哪些需要回收


判断算法

引用计数法
每个对象创建的时候，会分配一个引用计数器，当这个对象被引用的时候计数器就加1，当不被引用或者引用失效的时候计数器就会减1。任何时候，对象的引用计数器值为0就说明这个对象不被使用了，就认为是“垃圾”，可以被GC处理掉。
【优点】算法实现简单。
【缺点】不能解决对象之间循环引用的问题。有垃圾对象不能被正确识别，这对垃圾回收来说是很致命的，所以GC并没有使]]></description><category></category></item><item><title><![CDATA[Kylin 3.1.0架构]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/109481453</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/109481453</guid><author>xiaohu21</author><pubDate>Wed, 04 Nov 2020 11:28:37 +0800</pubDate><description><![CDATA[Kylin 3.1.0架构
背景

在OLAP分析中经常会有如下概念


事实，维度（这其实说的是事实表和维度表）



度量，指标（这说的其实都是指表的列，维度就是从哪些角度对数据做分析，需要分析查看的维度就是度量）



cube,顾名思义，就是一个立方体，不过由于实际OLAP中，不可能只有四个维度，所以实际上是指代多维立方体。本质就是一个多维数据集，包含维度和度量。
详情可以看我关于OLAP的一篇博客


下钻：从更细粒度的维度值角度探索数据（如时间维度，按天粒度查询销售额）
上卷：从更粗粒度的维度值]]></description><category></category></item><item><title><![CDATA[大数据数仓之报表开发]]></title><link>https://blog.youkuaiyun.com/xiaohu21/article/details/109480743</link><guid>https://blog.youkuaiyun.com/xiaohu21/article/details/109480743</guid><author>xiaohu21</author><pubDate>Tue, 03 Nov 2020 22:54:30 +0800</pubDate><description><![CDATA[大数据数仓之报表开发
1. 背景

在大数据开发中，主要的数据分析目的可以分为2类。一类是基于历史数据（就算是实时数仓，接收到数据的时候，其实也已经是历史数据了）做数据规律或者结果提取；一类是基于历史数据，训练模型，做未来数据预测或者分类等。
如果是前者，基于已有数据做数据规律和数据结果提取，这时候就可以称之为报表开发。
参考神策系统，报表开发可以划分固定维度报表开发，一定维度自由组合报表开发，自由维度报表开发。
固定维度报表开发，一般是一些固定指标，但会加一些固定维度，典型的如年，月，日等

一定维度内自]]></description><category></category></item></channel></rss>