自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Linux免密码登录

背景最近在搭建推荐系统的整个的架构,包括spark集群搭建,hdfs搭建等。但是有一个比较可怕的事情是当在spark集群的master机器上启动spark集群时,要输入其它俩台slave机器的密码,这简直是不能忍啊。所以,就有了这篇文章,在一个Linux机器上配置免密码登录其它服务器。Linux免密码登录目录 准备 目标 配置 生成公钥和密钥...

2018-12-19 19:33:54 169

原创 HDFS分布式文件系统单机版搭建

前言 本文是搭建推荐系统的第二课:HDFS单机版搭建。因为如果搭建集群模式下的hdfs和yarn则占用资源较多,会影响到自己电脑的性能。单机版HDFS搭建目录 准备工作 下载安装hdfs 配置hafs 启动NameNode 启动secondary namenode 效果展示 准备工作 首先要搭建好sprk集群...

2018-11-29 12:55:30 673 1

原创 清醒思考的艺术

前言最近读完了几本关于逻辑思维的书,<<万万没想到>>,<<清醒思考的艺术>>等,颇有感悟。行动基于思维与认知,若缺乏认知,行动的落实自然会显得异常困难。故唯有清醒思考,方能明智行动。概述罗尔夫·多贝里的<<清醒思考的艺术>>一书中介绍了很多中思维偏误。本文主要是介绍几个在生活中常见的思维偏误:幸存偏误,从众...

2018-11-03 15:02:17 1063

原创 LInux的free命令

背景 我想Linux的free命令对于很多的Linux老司机来说,应该是非常熟悉的了。我作为一个小白,下面来详细分析一下Linux 的free 命令。free详解目录 用处 free的详细解析 free的一些语法 用处在这里简单的说一下free的用处。 free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内...

2018-09-29 00:25:42 1500

原创 倒排索引,如斯优雅

背景 最近看了老大的一篇文章<<使用倒排索引建立本地缓存>>,哎,学到东西了,所以想在这里记录一下。倒排索引目录 概念 从百度搜索说起 定向广告投放中倒排索引的应用 概念 首先看一下在百度百科中给出的定义:  倒排索引英语:(Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,...

2018-09-28 09:51:19 496

原创 Standalone模式的Spark集群搭建

   中秋节快乐! 本文是搭建推荐系统的第一课:spark集群搭建。对于spark集群,我对它也是知之甚少。但是它和推荐系统的大规模数据计算密切相关,在本次的推荐系统痛的搭建中也使用到了spark集群。所以,搭建spark集群是我的第一步工作。因为后面的诸如HDFS,YARN,HIVE等都是基于spark集群的。由于Linux服务器数量的问题,本次搭建的sparck集群为Spark自带的集群模式...

2018-09-25 21:15:57 2959

原创 OAuth2.0认证原理

背景 哲学上经常有一句话被提到:存在的就是合理的。那么OAuth2.0为什么诞生了呢?我想以我司的一些实际情况来说明。在我司,有很多的内部系统诸如remine系统,工单系统,发布平台系统,会议室预订系统等等。那么如果每一个系统都需要一个账号密码,那么就我想到的至少存在俩个的弊端:其一,每一个系统都需要存储一套用户的账号密码;其二,其实这种操作对于用户来说是繁琐的,是不人性化的。所以,聪明的前...

2018-09-25 21:01:31 594 1

原创 推荐系统架构

前言本文主要介绍推荐系统的基本架构。推荐系统架构目录宏观的推荐系统架 细化的推荐系统架构 外围架构图 日志存储系统 推荐系统 宏观的推荐系统架 我们从宏观上可以感受到的推荐系统架构如下:通过数据分析得到用户画像,然后通过推荐系统给用户推荐数据。从此图中,我们也可以窥知一个完整的推荐系统至少应该有如下的子系统:用户画像子系统,内容子系统,存储子系统,推...

2018-09-14 15:17:57 2372

原创 推荐系统冷启动

背景 推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣,因此大量的用户行为数据就成为推荐系统的重要组成部分和先决条件。对于很多像百度、当当这样的网站来说,这或许不是个问题,因为它们目前已经积累了大量的用户数据。但是对于很多做纯粹推荐系统的网站(比如Jinni和Pandora),或者很多在开始阶段就希望有个性化推荐应用的网站来说,如何在没有大量用户数据的情况下设计个性化推荐系统并且...

2018-09-14 12:52:32 166

原创 推荐系统搜集分析数据

前言 本文主要介绍推荐系统如何搜集,分析数据,通过必要的推荐算法,使推荐结果符合用户的个人口味。一.利用用户行为数据目录 什么叫做用户行为数据 为什么利用用户行为数据 用户行为的分类 用户行为的存储 基于用户的协同过滤算法 基于物品的协同过滤算法 什么叫做用户行为数据 用户行为数据在推荐系统中的定义是:在网站或...

2018-09-14 12:51:44 2081

原创 初识推荐系统

前言本文主要介绍推荐系统的一些基本概念。推荐系统概述目录 什么是推荐系统 推荐系统的分类 为什么需要推荐系统 推荐系统的实验方法 推荐系统的主要方式 什么是好的推荐系统 推荐系统的应用 什么是推荐系统 推荐系统在百度百科中的定义是:推荐系统就是根据用户的历史行为、社交关系、兴趣点、所处上下文环境等信息...

2018-09-14 12:50:31 585

原创 沟通

前言 每一次嘴笨的背后,都有平时疏于思考的懒惰。声明  本文很大程度借鉴了老大的文章。背景 到公司实习后不久,老大一直给我强调沟通的问题。他直言,沟通也是程序员的核心竞争力之一。不擅长沟通的程序员是不合格的程序员,必然避免不了被淘汰的厄运。他觉得沟通会是我职业发展道路上的一道很大的障碍。每周老大都会找时间和我聊沟通的问题。他一直给我强调和灌输的一种沟通理念是,"沟通渠道要畅通...

2018-09-13 00:36:50 143

原创 探究Spring AOP 同类调用失效问题

扯一下沟通本来这篇文章是想写关于职场上的沟通的,尽管我也是一个初入职场的小白。但是发现时间不太够,只好作罢,后面再补上吧。关于沟通,我总结起来就是"沟通渠道要畅通,沟通要主动,沟通要高效",关键就是理解对方的底层逻辑。当然,这些说辞一方面是跟我老大学的,一方面是看<<沟通的艺术>>得来的。嗯,我特指的是职场上的沟通,生活中,我是属于那种比较腼腆和内向的,说得难听一点就...

2018-09-08 19:49:41 1200 2

原创 Disruptor高性能并发框架

扯一下读书自从实习以后,我对读书是越来越情有独钟了,特别是一些有关时间管理,逻辑思维训练,心理学之类的书。读书是我工作和生活之外的一种补充,是一种调节剂。至于社会上充斥的一些"读书无用论"的观点,我觉得一笑而过就算了。借用三毛姐的一句话,就是:"读书多了,容颜自然改变,许多时候,自己可能以为许多看过的书籍都成为了过眼云烟,不复记忆,其实它们是潜在的。在气质里,在谈吐上,在胸襟的无涯,当然也可...

2018-09-02 18:51:04 6250 2

原创 solrcloud集群搭建

扯一下老大去了其它部门以后,现在都是由我负责应用商店,浏览器,全局搜索,主题美化的业务,所以,平时写公众号的时间比较少。但是,我会坚持下去。其实,我本人在生活中的与人沟通的能力很弱,然而,我一直认为写作是一种高质量的社交,既帮助了别人,也提高了自己的逻辑思维能力,何乐而不为?背景最近在研究搜索推荐相关的知识,了解到solr就是为搜索而生的。万事开头难,想要深入理解solr,第一步...

2018-09-01 17:05:38 283

转载 JDK1.8----lambda表达式的使用

一:背景lambda表达式是在JDK1.8中引入的。JDK需要升级到1.8才能够使用。关于lambda的一些用法,很多前辈已经说了,这里不再赘述。二:使用你真的了解lambda吗?一文让你明白lambda用法与源码分析...

2018-08-10 10:45:05 391

原创 ThreadLocalRandom与Random

一:背景作为一位开发,知识的迭代是非常快的。比如说,我今天看到了一个ThreadLocalRandom,于是瞬间想到了Random,那么它们之间有什么关系呢?二:实例1.如果我们没有看到ThreadLocalRandom,那么我们要生成一个随机数,那么我们可能写出以下的代码:Random random=new Randow();int i = random.nextInt(pl...

2018-08-02 20:28:31 497 1

转载 线上应用故障排查:高内存占用

一:背景作为一位菜鸟开发,在生产环境中,必定会踩上不少的坑,那么应该如何去排查线上环境的坑呢?特别是出现高内存占用的时候,比如一些常见的异常:1、java.lang.OutOfMemoryError: PermGen space2、java.lang.OutOfMemoryError: Java heap space站在巨人的肩膀上,我们才能看得更远。我们看一下巨人们是如何定位到...

2018-08-02 19:58:03 700

原创 log4j配置详解

一:背景无论是使用jetty服务器,还是使用tomcat服务器,我们的程序都是要输出日志的。那么如何方便的管理日志呢?目前使用得比较多的就是log4j。下面来详细解读一下log4j的配置。 二:log4j详细解读<source lang="java"><?xml version="1.0" encoding="UTF-8" ?><!DOCTY...

2018-07-27 15:42:59 113

原创 nginx配置访问index主页

一 背景  我们在做一个网站或者是一个网页的时候,一个通常的做法是当输入网站或者网页的域名xxxxx.com的时候就可以访问网站的主页。那么一个比较好的方法就是在nginx中进行配置。那么接下来我们就来讨论一下这个问题。二 解决方法在nginx中应当如何进行配置呢?server {listen 80;server_name xxxxx.com;access_log /...

2018-07-27 15:17:14 14832

转载 RocketMQ环境搭建(双master双slave模式)

说明:本文转自:RocketMQ环境搭建(双master双slave模式)搭建过程:1.环境准备: 准备四台主机(我这里用CentOSx64)主机 角色 broker 192.168.192.130 Master1 BrokerServerA 192.168.192.131 Master2 BrokerServerB 192.16...

2018-07-21 22:24:06 999

原创 Rocketmq架构原理

一:背景      Rocketmq 作为一种分布式的消息队列,在实际的开发中其实应用是非常广的。关于Rocketmq的一些应用场景和具体的api的使用,在前面的文章中已经提到了。那么Rocketmq的原理,我们当然也是需要一探究竟的。二:原理  在Rocketmq的之前版本中是需要和zookeeper结合使用的。在后来的Rocketmq版本中,引用了Rocketmq namesrv ...

2018-07-21 22:02:39 541

转载 RocketMq(六)-------RocketMq之事务消费

 一:背景对于消息队列,必定绕不开的几个问题是:消息的可靠性,消息的重复,消息的顺序,消息的事务性。前面已经讲了消息的顺序性问题,接下来要了解的就是消息的事务性问题了。好,接下来就来了解一下消息的事务。二:实例producer(生产者):public class Producer { public static void main(String[] args) th...

2018-07-21 21:38:42 700

转载 RocketMQ(五)——消费模式

声明:本文转自:RocketMQ(五)——消费模式目录:一集群消费二广播消费内容补充一、集群消费之前的博客中,启动的都是单个Consumer,如果启动多个呢?  RocketMQ-集群消费 其实,对于RocketMQ而言,通过ConsumeGroup的机制,实现了天然的消息负载均衡!通俗点来说,RocketMQ中的消息通过ConsumeGroup实现了将消...

2018-07-21 17:30:55 732

转载 RocketMQ(四)——消息重试

声明:本文转自:RocketMQ(四)——消息重试一: Producer端重试二: Consumer端重试1. Exception2. Timeout三:总结 对于MQ,可能存在各种异常情况,导致消息无法最终被Consumer消费掉,因此就有了消息失败重试机制。很显示,消息重试分为2种:Producer端重试和Consumer端重试。一、 Producer端重试生...

2018-07-21 17:27:11 620

转载 RocketMQ(三)——HelloWorld

声明:本文转自:RocketMQ(三)——HelloWorld目录:1.代码示例2.代码阐释3.运行效果4.内容补充讲个9·3阅兵时程序员间流传的笑话:同学们,现在向我们走来的是程序员方阵!他们穿着拖鞋,披着毛巾,左手拿着键盘,右手举着鼠标,腋下夹着USB转换器。他们因睡眠不足而显得精神不振,喊着微弱的口号走过主席台,主席问候:程序员们辛苦了!程序员方队异口同声地答道:...

2018-07-21 17:12:58 297

转载 RocketMQ(二)——集群部署

集群部署方式 单个Master 多Master模式 多Master多Slave模式异步复制 多Master多Slave模式同步双写 物理部署结构 双主集群部署 服务器环境 配置IP映射 上传解压 创建存储路径 修改配置文件替换成以下内容 修改日志配置文件 修改启动脚本参数 启动 部署管控台 数据清理 PS 在Metaq1.x/...

2018-07-21 16:54:22 110

转载 RocketMQ(一)——简介

  声明:  本文转自:RocketMQ(一)——简介What is RocketMQ Where is RocketMQ from MetaqMetamorphosis 1x Metaq 2x RocketMQ 3x How is RocketMQ 上一篇博客主要是介绍了MQ,从这篇开始,步入正题,也就是RocketMQ。阿里巴巴有2大核心的分布式技术,一个是Oc...

2018-07-21 16:44:23 122

转载 RocketMQ背景

声明:本文转自:RocketMQ(前传)——消息队列提到RocketMQ,不知道亲爱的程序猿们会想到什么?哈哈,我想到的是Rocket和MQ!何为Rocket?  没错,就是火箭,是不是感觉快得嗖嗖的。在无数剁手党的大力配合下,经过双11的证明,RocketMQ确实保证了系统嗖嗖的。(你懂得!)一、何为MQ?MQ全称为Message Queue, 消息队列(MQ)是一...

2018-07-21 16:41:57 315

原创 会话(session)保持机制

概述现在我们有两台api机器。这就需要在它们前面搭一个nginx来做负载均衡。所谓的负载均衡就是说保证俩台机器的访问请求量大体是相同的。用专业一点的词语来说,就是pv(page view)要大致的相同,相差不多。如果俩台机器的pv相差较大,那么可能的原因也有很多。下面聊一下会话(session)保持机制对会话的影响。什么是会话保持    会话保持是指在负载均衡器上的一种机制,可以识别客户端与服务器...

2018-07-13 10:56:11 14808

转载 Cookie和Session机制

简介作为一名后端开发人员,深入了解cookie和session是必不可少的。本来想写一篇关于session和cookie的文章的。但无奈的是前辈写得实在是太精彩了,因此在此只能仰慕一下。文章链接理解cookie和session机制...

2018-07-12 21:11:27 57

原创 guaua集合介绍

为什么使用guaua集合可以说 Java Collections Framework 满足了我们大多数情况下使用集合的要求,但是当遇到一些特殊的情况我们的代码会比较冗长,比较容易出错。而且Java Collections 中提供的不可变集合实际上并不是真正的不可变集合,当原集合set,list等发生变化的时候,不可变集合实际上也会跟着变化。但是如果使用了guaua中提供的不可变集合,就不会出现这种...

2018-07-12 20:03:35 324

转载 不可变集合

什么是Immutable不可变集合,顾名思义就是说集合是不可被修改的。集合的数据项在创建的时候提供,并且在整个生命周期中都不可改变。为什么要用immutable对象?线程安全的:immutable对象在多线程下安全不需要支持可变性, 可以尽量节省空间和时间的开销. 所有的不可变集合实现都比可变集合更加有效的利用内存可以被使用为一个常量,并且期望在未来也是保持不变的jdk中的不可变集合API在JDK...

2018-07-12 19:33:46 492

原创 @Transactional失效原因分析

概述上次分享了在使用自定义注解形式的@redis做缓存时,失效的原因。今天探讨一下Spring的事务管理@Transactional在同样的情况下是否会失效。实例经过个人验证,在一个类中的方法调用时,被调用的方法如果有事务管理,那么事务管理会失效。情况1以下代码执行时,数据插入数据库不成功,因为insert1()开启了事务,会回滚://开启事务代码@Transactional(propagati...

2018-07-12 13:11:51 3636

原创 自定义注解@Redis失效原因分析

概述在使用自定义注解形式的@redis做缓存时,@redis失效,分析原因。实例应用商店中根据imeiSnCode来查询安装列表源代码@Service("installedRecordService")public class InstalledRecordServiceImpl implements InstalledRecordService{ @Resource ...

2018-07-12 11:32:51 765 1

原创 Nginx 指定多个域名跨域请求配置

nginx指定多个域名跨域请求配置什么是跨域假设我们页面或者应用已在 http://www.test1.com 上了,而我们打算从 http://www.test2.com 请求提取数据。一般情况下,如果我们直接使用 AJAX 来请求将会失败,浏览器也会返回“源不匹配”的错误,"跨域"也就以此由来。跨域的出现主要原因还是安全的限制(同源策略,也就是JavaScript或者Cookie只能够访问同域...

2018-07-12 11:21:21 17118 5

原创 Redis持久化

Redis数据持久化到硬盘失败在项目中用到了redis缓存,数据量8.5G,服务器内存16G,但是在redis持久化数据到硬盘上时失败了注意标记为红色处,此处的意思是说:Redis被配置为保存数据库快照,但它目前不能持久化到硬盘。用来修改集合数据的命令不能用。请查看Redis日志的详细错误信息。原因分析日志信息中说,数据持久化到硬盘上失败了。那么我们首先来了解一下什么时Redis中的持久化。持久化...

2018-07-11 18:10:51 78

原创 jetty远程调试经验

概述开发环境里运行的好好的代码,部署到测试环境,生产环境就是状况百出,这种遭遇大家一定都有过......如果能debug一下肯定是很有帮助滴,那么今天就分享一下jetty的远程调试打开jetty的远程调试支持jetty主目录下有个start.ini,打开这个文件添加如下配置-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n如果...

2018-07-11 17:55:09 738

原创 jquery+springMvc+Freemaker实现Excel文件的解析

准备工作:解析excel,我们需要借助别人写好的工具,那么需要导入相应的jar包。所以需要添加以下的maven依赖。 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version&...

2018-07-10 17:29:27 101

原创 Zookeeper的常用命令

连接的指令:1 ./zkClish -timeout 5000 -server 192.168.1.105:2181  ---连接 查询的指令:1.h ---出现命令列表2.ls+path 列出某个目录下的节点  zookeeper是自带的3.stat+path:查询节点信息,该信息会包括以下的内容:cZid:在zookeeper中,每一次操作都可以认为是一次事务,都会为它分配一个唯一的id,表示...

2018-07-08 01:43:56 263

提示
确定要删除当前文章?
取消 删除