<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[_淡若清风_]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/liu891208</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; liu891208]]></copyright><item><title><![CDATA[SPARK学习笔记]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/108810190</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/108810190</guid><author>liu891208</author><pubDate>Sat, 26 Sep 2020 11:57:27 +0800</pubDate><description><![CDATA[SPARK系统架构

Hadoop虽然已成为大数据技术的事实标准，最主要的缺陷是其MapReduce计算模型延迟过高以及磁盘IO开销大，无法胜任实时、快速计算的需求，因而只适用于离线批处理的应用场景。

SPARK相比于Hadoop的优势,

1)Spark提供了内存计算, 大大减少了IO开销，中间结果直接放到内存中，带来了更高的迭代运算效率；

2)Spark基于DAG的任务调度执行机制，要优于MapReduce的迭代执行机制。



几个重要的概念：

RDD：弹性分布式数据集（Resilient D.]]></description><category></category></item><item><title><![CDATA[KUDU学习笔记]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/108435018</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/108435018</guid><author>liu891208</author><pubDate>Sun, 06 Sep 2020 18:58:34 +0800</pubDate><description><![CDATA[Kudu

现存系统针对结构化数据存储与查询的一些痛点问题，结构化数据的存储，通常包含如下两种方式：

静态数据通常以Parquet/Carbon/Avro形式直接存放在HDFS中，吞吐能力大，适合离线分析，随机读写能力差，难以支持单条记录级别的更新。
	可变数据的存储通常选择面向列族的HBase或者Cassandra，高效随机读写，吞吐能力小，不适合离线分析场景。
Kudu的设计是结合了Hbase的高效随机读写和HDFS高吞吐能力一种折中处理，既能支持OLTP型实时读写能力又能支持OLAP型分析。另外一个]]></description><category></category></item><item><title><![CDATA[Hbase 学习笔记]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/108434125</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/108434125</guid><author>liu891208</author><pubDate>Sun, 06 Sep 2020 17:33:35 +0800</pubDate><description><![CDATA[Hbase

HBASE由Google的Bigtable设计而来的面向列族的存储的非关系数据库，主要偏向适合数据分析。



优点和缺点

列式数据库优点，列式数据库会把相同列的数据都放在一块即列为单位存储。当我们查询某一列的时候只需要调出相应的块即可，这样还可以减少很多I/O。



高压缩比

如果数据元素间的相似性很高的话可以进行大幅度的压缩，相似度越高压缩比越大。即节约了空间又减少了I/O，从而提高性能。



高并发，极易扩展

Hbase的极易扩展主要体现在两个方面，一个是基于上层处理能力...]]></description><category></category></item><item><title><![CDATA[HIVE架构]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/108434061</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/108434061</guid><author>liu891208</author><pubDate>Sun, 06 Sep 2020 17:27:09 +0800</pubDate><description><![CDATA[HIVE架构

Hive组件



用户接口/界面 

Hive是一个数据仓库基础工具软件，可以创建用户和HDFS之间互动。用户界面，Hive支持是Hive的Web UI，Hive命令行，HiveHD洞察（在Windows服务器），用户提交查询的地方。



Meta Store元数据存储 

Hive选择各自的数据库服务器（一般是Mysql），用以储存表，数据库，列模式等元数据，在功能上Metastore分为两个部分：用户的请求服务和存储

存储部署的三种模式:

1.内嵌模式

内嵌模...]]></description><category></category></item><item><title><![CDATA[一个简单的Spring MVC配置]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/51578806</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/51578806</guid><author>liu891208</author><pubDate>Fri, 03 Jun 2016 14:47:09 +0800</pubDate><description><![CDATA[一个简单的Spring MVC项目
1）引入jar包，并/WEB-INF中添加web.xml文件
引入包：把spring-framework-3.2.5.RELEASE/libs中的jar包全部jar包复制到项目的WebContent/WEB-INF/lib目录中即可。
xml
version="1.0"encoding="UTF-8"?>
web-app
id="WebApp_ID"]]></description><category></category></item><item><title><![CDATA[SQL常用命令]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/48860685</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/48860685</guid><author>liu891208</author><pubDate>Fri, 02 Oct 2015 15:45:32 +0800</pubDate><description><![CDATA[SQL常用命令
表的操作
//建表
CREATETABLE 表名(
属性 数据类型 约束条件, 
NAMEVARCHAR2(50) NOT NULL); 
 
//修改表名： 
ALTER TABLE 原来的表名TO 现在的表名; 


//修改列名 
EXEC sp_rename '表名.[原列名]', '新列名', 'column' (Silver Lee实践有效)
]]></description><category></category></item><item><title><![CDATA[数据库的优化]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/48860673</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/48860673</guid><author>liu891208</author><pubDate>Fri, 02 Oct 2015 15:44:24 +0800</pubDate><description><![CDATA[数据库的优化
1）.SQL语句优化
a应尽量避免在 where 子句中使用!=或
b应尽量避免在 where 子句中对字段进行 null值判断，否则将导致引擎放弃使用索引而进行全表扫描，如：
selectid from t where num is null
可以在num上设置默认值0，确保表中num列没有null值，然后这样查询：
selectid from t where num=]]></description><category></category></item><item><title><![CDATA[SQL连接（内连接、外连接、交叉连接）]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/48858589</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/48858589</guid><author>liu891208</author><pubDate>Fri, 02 Oct 2015 10:29:56 +0800</pubDate><description><![CDATA[SQL连接（内连接、外连接、交叉连接）
假设现在有两个表：table1 ， table2
   table1：                                table2：
  id     name                          id     score  
  1       lee                            1     ]]></description><category></category></item><item><title><![CDATA[volatile]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/48826499</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/48826499</guid><author>liu891208</author><pubDate>Wed, 30 Sep 2015 11:03:11 +0800</pubDate><description><![CDATA[volatile
在编译器编译代码时候，一般都会作些减少存取内存的优化，但有可能会读脏数据，比如int *ip =...; //设备地址 
*ip = 1; //第一个指令 
*ip = 2; //第二个指令 
以上程序compiler可能做优化而成： 
int *ip = ...; 
*ip = 2; 
结果第一个指令丢失。
但有的情况下，特别是硬件开发方面，在针对某些变量不希望]]></description><category></category></item><item><title><![CDATA[拷贝构造函数]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/48734579</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/48734579</guid><author>liu891208</author><pubDate>Fri, 25 Sep 2015 16:35:45 +0800</pubDate><description><![CDATA[拷贝构造函数
拷贝构造函数一般为：
类名(const 类名& C)；它必须的一个参数是本类型的一个引用变量
默认的拷贝构造函数是浅拷贝。
拷贝构造函数常出现的地方：
a对象以值传递的方式传入函数参数
//全局函数，传入的是对象
voidg_Fun(CExample C)
{
 cout
}
 
intmain()
{
 CExample test(1); 
 g_Fu]]></description><category></category></item><item><title><![CDATA[交叉验证]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/48734479</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/48734479</guid><author>liu891208</author><pubDate>Fri, 25 Sep 2015 16:30:36 +0800</pubDate><description><![CDATA[交叉验证：
假设函数hi即按照某个模型进行训练得到的模型函数。  
对于可选择的模型构成集合M，其中Mi表示一种类型的模型，比如逻辑回归、神经网络、SVM等某一种。
对于训练集S将其分为两部分，70%的样本作为训练集Strain,30%的作为测试集Scv。
这样我们用每个模型Mi用Strain进行训练得到假设函数hi，再用Scv去对这个hi进行测试得到误差e(hi)。
这样对于每个模型对]]></description><category></category></item><item><title><![CDATA[网络协议HTTP、TCP/IP、Socket]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/48024235</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/48024235</guid><author>liu891208</author><pubDate>Thu, 27 Aug 2015 10:54:54 +0800</pubDate><description><![CDATA[网络协议HTTP、TCP/IP、Socket
网络七层由下往上分别为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 
其中物理层、数据链路层和网络层通常被称作媒体层，是网络工程师所研究的对象； 
传输层、会话层、表示层和应用层则被称作主机层，是用户所面向和关心的内容。 
http协议  对应于应用层   主要解决如何包装数据
tcp协议   对应于传输层    主要解决数据]]></description><category></category></item><item><title><![CDATA[动态分区分配]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/47948487</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/47948487</guid><author>liu891208</author><pubDate>Mon, 24 Aug 2015 11:22:17 +0800</pubDate><description><![CDATA[动态分区分配
动态分区分配是根据进程的实际需要，动态的为之分配内存的空间。总体是按照算法规则找到分配的空闲分区，然后从该分区中再按照作业的大小划出一块内存空间分给作业，该分区余下的空闲分区当做一个新的空闲分区留在空闲链中。
当作业按照算法规则分配好了后，等作业运行完毕释放内存，系统根据回收区的首址，从空闲区链表中找到相应的插入点，此时可能出现以下4种情况之一：
回收区与插入点的前一个空闲分区]]></description><category></category></item><item><title><![CDATA[磁盘调度算法]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/47804327</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/47804327</guid><author>liu891208</author><pubDate>Thu, 20 Aug 2015 10:37:52 +0800</pubDate><description><![CDATA[磁盘调度算法
磁盘调度为满足各个进程对对磁盘进行读/写操作的请求。由于有时候这些进程的发送请求的速度比磁盘响应的还要快，因此我们有必要为每个磁盘设备建立一个等待队列，常用的磁盘调度算法有以下四种：
先来先服务算法（FCFS）
根据进程请求访问磁盘的先后次序进行调度；
最短寻道时间优先算法（SSTF）
根据选择要访问的磁道与当前磁头所在的磁道距离最近磁盘优先访问
扫描算法（SCAN）
]]></description><category></category></item><item><title><![CDATA[常用的排序/查找算法的时间复杂度和空间复杂度]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/47778415</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/47778415</guid><author>liu891208</author><pubDate>Wed, 19 Aug 2015 11:47:15 +0800</pubDate><description><![CDATA[常用的排序算法的时间复杂度和空间复杂度




排序法


最差时间分析


平均时间复杂度


稳定度


空间复杂度




冒泡排序


O(n2)


O(n2)


稳定


O(1)




插入排序


O(n2)


O(n2)


稳定


O(1)




选择排序]]></description><category></category></item><item><title><![CDATA[程序编译详解]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/47777137</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/47777137</guid><author>liu891208</author><pubDate>Wed, 19 Aug 2015 10:45:27 +0800</pubDate><description><![CDATA[程序编译详解
编译程序读取源程序（字符流），对之进行词法和语法的分析，将高级语言指令转换为功能等效的汇编代码，再由汇编程序转换为机器语言，并且按照操作系统对可执行文件格式的要求链接生成可执行程序。总过程如下：
C源程序－>编译预处理（对源文件进行词法分析和语法分析，确认符合语法规则）－>编译（将其翻译成中间代码或汇编代码）－>优化程序（对中间代码等进行优化）－>汇编程序（把汇编代码翻译成目标机]]></description><category></category></item><item><title><![CDATA[A*算法]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/47683755</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/47683755</guid><author>liu891208</author><pubDate>Sat, 15 Aug 2015 17:32:51 +0800</pubDate><description><![CDATA[A*算法
以前做项目时候，经常听到A*算法，感觉很高大上，今天闲来无事，对这个算法了解了下，主要参考
http://zm8.sm-img5.com/?src=http%3A%2F%2Fblog.youkuaiyun.com%2Fshanshanpt%2Farticle%2Fdetails%2F8977512&uid=aff73364c6b5346a25df05847b0ba813&hid=33f0813d]]></description><category></category></item><item><title><![CDATA[句柄类]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/47318643</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/47318643</guid><author>liu891208</author><pubDate>Thu, 06 Aug 2015 16:15:33 +0800</pubDate><description><![CDATA[句柄类

今天闲来无事，看了篇关于句柄类的博客，详细的可以参考 http://rangercyh.blog.51cto.com/1444712/1293679

主要是利用了代理的思想，可以实现两个功能，一个是完全可以将实现文件（.cpp）与头文件完全隔离出来，类的结构或者是函数的实现部分都在实现文件中，我们通过编译器编译后形成静态文件或者是动态文件，只给出在头文件（只提供接口信息）这样防]]></description><category></category></item><item><title><![CDATA[反射机制]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/45391555</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/45391555</guid><author>liu891208</author><pubDate>Thu, 30 Apr 2015 10:26:56 +0800</pubDate><description><![CDATA[反射机制 
今天闲来无事，对反射机制http://www.cnblogs.com/jqyp/archive/2012/03/29/2423112.html阅读一番，整理了下这方面的知识以及自己的一些心得，希望对大家有帮助！
JAVA反射机制是在运行状态中，可以动态的，对于任意一个类，都能够知道这个类的所有属性和方法；对于任意一个对象，都能够调用它的任意一个方法；这种动态获取的信息以及动态调用对]]></description><category></category></item><item><title><![CDATA[try catch finally解惑]]></title><link>https://blog.youkuaiyun.com/liu891208/article/details/45289585</link><guid>https://blog.youkuaiyun.com/liu891208/article/details/45289585</guid><author>liu891208</author><pubDate>Sun, 26 Apr 2015 16:59:37 +0800</pubDate><description><![CDATA[try catch finally解惑
Finally通常会配合try、catch使用，在try。。。catch没有退出的语句（return 或者是抛出异常导致退出try。。。catch）执行完try。。。catch语句后，再来执行finally；另外一种情况是在try。。。catch有退出的语句，在每一处的try或catch将要退出该方法之前，JVM都会保证先去调用finally的代码，这里所]]></description><category></category></item></channel></rss>