<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mmalan的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mmalan</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mmalan]]></copyright><item><title><![CDATA[离线日志分析平台实战     需求分析]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/83786877</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/83786877</guid><author>mmalan</author><pubDate>Tue, 06 Nov 2018 16:16:29 +0800</pubDate><description><![CDATA[

 

java sdk 需求分析

由于在本次项目中java sdk的作用主要就是发送支付成功/退款成功的信息给nginx服务器，所有我们这里提供的是一个简单版本的java sdk。

Java sdk执行工作流
工作流如下所示：（退款类似）



分析
程序后台事件分析
本项目中在程序后台只会出发chargeSuccess事件，本事件的主要作用是发送订单成功的信息给nginx服务器。发送格式...]]></description><category></category></item><item><title><![CDATA[推荐系统架构]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/83745297</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/83745297</guid><author>mmalan</author><pubDate>Mon, 05 Nov 2018 19:04:57 +0800</pubDate><description><![CDATA[

 

 

数据加载



 

 



 



 

 

Flume 数据源-&amp;gt;数据存储系统



source-&amp;gt;channel-&amp;gt;sink   三个组件构成一个agent

channel 是缓存区  source数据源  sink 数据库存储系统



 



 



 



 



 



Sqoop 介绍



 

 



 



 

 
...]]></description><category></category></item><item><title><![CDATA[hive 项目实战(2)]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/83621311</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/83621311</guid><author>mmalan</author><pubDate>Thu, 01 Nov 2018 18:54:33 +0800</pubDate><description><![CDATA[建表

创建表
这里总共需要创建4张表，明明只有两个数据文件，为什么要创建4张表呢？因为这里创建的表要使用orc的压缩方式，而不使用默认的textfile的方式，orc的压缩方式要想向表中导入数据需要使用子查询的方式导入，即把从另一张表中查询到的数据插入orc压缩格式的表汇中，所以这里需要四张表，两张textfile类型的表user和video，两张orc类型的表user_orc和video_or...]]></description><category></category></item><item><title><![CDATA[hive 项目实战 (1) 谷粒影音需求分析]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/83619618</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/83619618</guid><author>mmalan</author><pubDate>Thu, 01 Nov 2018 15:15:17 +0800</pubDate><description><![CDATA[ 数据源 video.txt  

数据样例：

fQShwYqGqsw    lonelygirl15    736    People &amp;amp; Blogs    133    151763    3.01    666    765    fQShwYqGqsw    LfAaY1p_2Is    5LELNIVyMqo    vW6ZpqXjCE4    vPUAf43vc-Q    Z...]]></description><category></category></item><item><title><![CDATA[电信项目 第一天]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/83513626</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/83513626</guid><author>mmalan</author><pubDate>Mon, 29 Oct 2018 22:06:43 +0800</pubDate><description><![CDATA[模拟生成数据略

 

配置flume kafka 接受数据 让hbase消费

zookeeper 地址

192.168.36.139:2181,192.168.36.139:2182,192.168.36.139:2183

 

kafka创建主题

kafka-topics.sh --zookeeper 192.168.36.139:2181,192.168.36.139:2182,19...]]></description><category></category></item><item><title><![CDATA[librec nfm实现笔记]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/83505585</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/83505585</guid><author>mmalan</author><pubDate>Mon, 29 Oct 2018 16:54:15 +0800</pubDate><description><![CDATA[ 

FM

如下图 一般一个场景一共n个特征  xi是其中一个特征  对应到一阶wi为一个数 对应到二阶就是一个特征向量vi 与另一个特征向量vj的内积。向量长度一般称为embedding_size  fm在于刻画任意两个联合特征的影响。



 

 

 

 

NFM 核心部分



Bi-Interaction Layer 就是任意两个k维特征向量做element-wise 乘积然后相...]]></description><category></category></item><item><title><![CDATA[八天学会hadoop (6)  hbase]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/83449833</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/83449833</guid><author>mmalan</author><pubDate>Sat, 27 Oct 2018 21:34:15 +0800</pubDate><description><![CDATA[hbase 基于Hdfs 文件系统  hbase 支持随机高速访问

hbase 没有事务特性 hbase不能处理联合关系处理 比如mysql 里面的join 

hbase优点在于存放非常大的表 百万行 百万列 支持随机高速访问

 

Hbase 表结构

表名-&amp;gt;行键-&amp;gt;列族(column family)-&amp;gt;列名(qualifier)-&amp;gt;版本号



 

具体请查看...]]></description><category></category></item><item><title><![CDATA[八天学会hadoop (5) hadoop 高可用  hive 入门]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/83445885</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/83445885</guid><author>mmalan</author><pubDate>Sat, 27 Oct 2018 21:02:52 +0800</pubDate><description><![CDATA[Hadoop 高可用



 

想要高可用 必须有两个namenode 一个active 一个standby  namenode中的edits文件由第三方qjournal(依赖zookeeper)保存。

 

 

 

hive 流程

 



 首先是create语句 会创建一些元信息存到元数据库 比如表名 创建时间

 下次执行查询语句 先经过hive的compiler模块生成java...]]></description><category></category></item><item><title><![CDATA[八天学会hadoop (4) 了解zookeeper]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/83444465</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/83444465</guid><author>mmalan</author><pubDate>Sat, 27 Oct 2018 11:10:21 +0800</pubDate><description><![CDATA[zookeeper 感性认识 存储一些少量数据 数据分布式一致

Zookeeper 节点类型



Zookeeper 角色

客户端读数据可以连接 observer 提高读取速度 但是observer不参与投票过程



 

 

 

 

Dubbo 与zookeeper的关系

 

 



 

 

 

Dubbo建议使用Zookeeper作为服务的注册中心。

1.   Zo...]]></description><category></category></item><item><title><![CDATA[八天学会hadoop (3) 流量排序统计实战]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/83417282</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/83417282</guid><author>mmalan</author><pubDate>Fri, 26 Oct 2018 17:48:56 +0800</pubDate><description><![CDATA[流量统计实战

 

先复习一波hadoop shuffle的过程



1.map task 过程中会把数据写入到内存中，在spill写入之前，会先进行二次排序，首先根据数据所属的partition进行排序，然后每个partition中的数据再按key来排序。

2. 接着会进行combine过程(如果设置了combiner了的话) combine本身也是一个reducer 会对写入到磁盘的数据...]]></description><category></category></item><item><title><![CDATA[八天学会hadoop(2) yarn流程]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/83382846</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/83382846</guid><author>mmalan</author><pubDate>Fri, 26 Oct 2018 15:43:07 +0800</pubDate><description><![CDATA[hdfs 源码分析

FileSystem.get --&amp;gt; 通过反射实例化了一个DistributedFileSystem --&amp;gt; new DFSCilent()把他作为自己的成员变量 在DFSClient构造方法里面，调用了createNamenode，使用了RPC机制，得到了一个NameNode的代理对象，就可以和NameNode进行通信了
FileSystem --&amp;gt; Di...]]></description><category></category></item><item><title><![CDATA[八天学会hadoop (1) 数据同步 rpc]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/83377569</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/83377569</guid><author>mmalan</author><pubDate>Thu, 25 Oct 2018 15:42:27 +0800</pubDate><description><![CDATA[1 hadoop 下载hdfs文件到本地

拿到hdfs的输入流(把hdfs的文件搬运到内存)   拿到本地文件输出流(java)把内存搬运到本地文件

 

2 hadoop 数据同步的过程

元数据信息指的是文件的大小 名称 修改时间 地址 创建时间等等

edits 文件与fsimage文件合并在 secondary namenode里面



 

 

3 rpc 底层原理



 

...]]></description><category></category></item><item><title><![CDATA[字节码指令简介]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/79983474</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/79983474</guid><author>mmalan</author><pubDate>Wed, 18 Apr 2018 22:41:08 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[class字节码理解 二]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/79982687</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/79982687</guid><author>mmalan</author><pubDate>Tue, 17 Apr 2018 23:28:07 +0800</pubDate><description><![CDATA[拖了好久啊，终于写着第二篇啦，第一篇主要是分析了class文件的常量池结构。class文件并不是一堆字节码的简单排列，他们都有自己的结构，jvm主要就是对这些结构进行解释执行的，对于执行次数频繁的代码，jvm会生成机器码以加快执行效率。好了，废话不多说，接下来继续分解。以下class文件依次描述了类，接口；字段；方法；注：除特殊说明外，下面所写的0010，0001什么的都是16进制。1.类，父类，...]]></description><category></category></item><item><title><![CDATA[class字节码理解 1]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/79982667</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/79982667</guid><author>mmalan</author><pubDate>Tue, 17 Apr 2018 23:26:38 +0800</pubDate><description><![CDATA[class文件是编译器编译之后供虚拟机解释执行的二进制字节码文件，不只是java， 比如Groovy，JRuby，FANTOM，Jython，和Scala。这是在jvm上运行的5大脚本语言。下面就带你分析一个class的字节码文件，class文件只有无符号数和表两种基本的数据类型，u1，u2，u4，u8代表1个字节，2个字节，4个字节，8个字节的无符号数。表是由无符号数和表组合而成的结构，说表觉得...]]></description><category></category></item><item><title><![CDATA[垃圾回收器]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/79969192</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/79969192</guid><author>mmalan</author><pubDate>Tue, 17 Apr 2018 08:15:44 +0800</pubDate><description><![CDATA[GC算法 垃圾收集器概述垃圾收集 Garbage Collection 通常被称为“GC”，它诞生于1960年 MIT 的 Lisp 语言，经过半个多世纪，目前已经十分成熟了。jvm 中，程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭，栈帧随着方法的进入和退出做入栈和出栈操作，实现了自动的内存清理，因此，我们的内存垃圾回收主要集中于 java 堆和方法区中，在程序运行期间，这部分内存的分...]]></description><category></category></item><item><title><![CDATA[垃圾收集器比较]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/79967450</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/79967450</guid><author>mmalan</author><pubDate>Mon, 16 Apr 2018 22:57:26 +0800</pubDate><description><![CDATA[转载地址 https://blog.youkuaiyun.com/u010798968/article/details/72864860Serial:串行收集器，JVM client模式下的默认收集器，使用复制算法，在进行垃圾回收时会暂停其他所有的工作线程（stop the world，简称STW）直至回收结束，因此会影响用户的正常使用体验，但是因为少了多线程切换的开销，相较于其他收集器能够更加专注于垃圾回收...]]></description><category></category></item><item><title><![CDATA[jdk1.6 对锁做的优化]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/79943172</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/79943172</guid><author>mmalan</author><pubDate>Sat, 14 Apr 2018 19:04:22 +0800</pubDate><description><![CDATA[JDK1.6对锁做了很多优化，轻量级锁和偏向锁是其中两种优化手段，我把主要的几种优化都简单介绍下吧：自旋锁背景：互斥同步对性能最大的影响是阻塞，挂起和恢复线程都需要转入内核态中完成；并且通常情况下，共享数据的锁定状态只持续很短的一段时间，为了这很短的一段时间进行上下文切换并不值得。原理：当一条线程需要请求一把已经被占用的锁时，并不会进入阻塞状态，而是继续持有CPU执行权等待一段时间，该过程称为『自...]]></description><category></category></item><item><title><![CDATA[ssl握手过程]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/79867537</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/79867537</guid><author>mmalan</author><pubDate>Mon, 09 Apr 2018 15:47:11 +0800</pubDate><description><![CDATA[a是客户端  b是服务端1.服务端配置好证书，用证书的私钥加密服务端的公钥，发到客户端2.  客户端用证书的公钥解密 拿到服务端的公钥 客户端随机生成对此加密的密钥  然后再用公钥加密对称密钥传给服务端3 服务端收到 用服务端私钥解密 拿到对话的对称密钥4 然后发送消息以后都用对称密钥进行加密。...]]></description><category></category></item><item><title><![CDATA[tcp 如何保证可靠传输 tcp udp 报头格式的区别]]></title><link>https://blog.youkuaiyun.com/mmalan/article/details/79826930</link><guid>https://blog.youkuaiyun.com/mmalan/article/details/79826930</guid><author>mmalan</author><pubDate>Thu, 05 Apr 2018 16:17:57 +0800</pubDate><description><![CDATA[一  建立连接tcp udp 报头格式里面 tcp有着 SYN ACK FIN的标记位 ，这些标记位用于建立 释放连接使用。SYN=1 表示发送方想要建立一个连接   ACK=1 的时候确认序号才有效。FIN=1 表示发送方想要停止发送数据，想要断开连接，但是可以接受数据。二 超时重传2.1 超时重传为每一个报文段设置超时时间，超过超时时间还没有收到确认，发送方就会重传这个报文段。2.2 连续三次...]]></description><category></category></item></channel></rss>