- 博客(46)
- 资源 (2)
- 收藏
- 关注
原创 JSON序列化
将对象序列化成JSONString进行网络传输是比较普遍的场景;以fastjson为例,分析一个对象序列化时踩过的坑:有一个对象User,包含两个属性:age和name{ "age":"100", "name":{ "firstName":"Tom", "lastName":"Hanks" }}对于如下两种代码的编写方式,会导致不同的序列化结果// 写法一Map<String, Object> userEntry = new
2020-08-29 13:26:39 4303
原创 MySQL实现排名、分组筛选、TopN问题
通过对LeetCode第176,177,178,184,185题的归纳总结,梳理基于MySQL实现排名、分组精确筛选和分组范围筛选的实现方法
2019-07-02 09:55:57 1952 1
原创 Consumer Liveness检测机制
基于max.poll.interval.ms的Consumer liveness检测机制;初探Kafka消息重复消费问题
2019-04-01 23:32:00 672
原创 Kafka实践之Consumer
本文设计的所有代码详见Github上手Kafka Consumer是比较容易的,这里以原生的Java API为例,通常的实现逻辑如下所示: public void consumer() { String brokers = &quot;localhost:9092&quot;; String group = &quot;group_test&quot;; String topic...
2019-01-01 22:11:01 2318
原创 Kafka实践之常用命令
Topic新建Topicbin/kafka-topics.sh --zookeeper &amp;amp;lt;zookeeper connect&amp;amp;gt; --create --topic &amp;amp;lt;string&amp;amp;gt; --replication-factor &amp;amp;lt;integer&amp;amp;gt; --partitions &a
2019-01-01 17:24:28 667
原创 Kafka理论之Consumer Group & Coordinator
归纳总结Group Cooridinator的基本作用,Partition的分配策略和分配机制;了解Rebalance的触发机制和主动监控;
2018-12-26 22:09:25 3126
原创 基于网易云音乐的分布式爬虫实现
通过scrapy-redis + HDFS 实现网易云音乐的用户、评论数据的爬取和持久化。源代码详见Github
2018-10-28 16:52:27 1140
原创 Pandas.read_json()踩坑总结 & 源码初探
基于实际工作中遇到的一种极端场景来分析Pandas.read_json()方法的源码实现;顺便站在个人学习和使用的角度出发,吐槽一下该方法底层设计的不合理之处。
2018-09-16 17:17:52 19822 1
原创 基于Python初探Linux下的僵尸进程和孤儿进程(三)
基于kafka+python实现消息多进程消费的应用场景探究新建子进程时僵尸进程自动消除的原因,并由此初探multiprocessing.Process.start()源码。
2018-06-08 15:13:08 634
原创 基于Python初探Linux下的僵尸进程和孤儿进程(二)
了解Python-Process的join()方法的含义、以及在解决僵尸进程的原理和不足;同时结合实际应用场景提出有效可行的消除僵尸进程的方案。
2018-06-08 15:01:04 1008
原创 查看Python依赖包及其版本号信息
查看依赖包及对应的版本号信息:pip list pip freeze pip: error: No command by the name pip listException: File "/usr/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg/pip/__init__.py", line 156, in from_dist assert len(specs) == 1 and specs[0][0] == '=='
2018-05-22 21:24:57 35554 1
原创 基于pandas的数据分析之数据类型转化踩坑总结
环境依赖: MySQL 5.7.17 Python 2.7 MySQL-python 1.2.5 pandas 0.18.1数据类型转化从以下两个方面讨论并分析:由于数据缺失导致DataFrame中int转float型由于数值类型字符串导致从csv加载到DataFrame时String转numeric一、由于数据缺失导致DataFram...
2018-05-20 16:06:47 11699 6
原创 Python-Mysql依赖初探
环境依赖: MySQL 5.7.17 Python 2.7 Mysql-python 1.2.5MySQLdb是基于MySQL C API(原生MySQL API)为核心的一个面向Python的接口,封装了许多MySQL C API的方法,简化Python使用MySQL。在原生的MySQL API中,万物皆String。(当然,可以通过自定义conv来实现数据类型...
2018-05-20 15:15:59 648
原创 基于Spring Boot实现Mybatis的多数据源切换和动态数据源加载
Spring Boot Mybaits mybatis基本配置、多数据源切换、动态加载数据源
2017-12-25 17:25:26 20112 21
原创 基于Python操作ElasticSearch
环境依赖: Python:2.7 ES依赖包:pyelasticsearch ElasticSearch:5.5.1 / 6.0.1 操作系统:Windows 10 / CentOS 7 本文主要就ES基本的CRUD操作做以归纳整理,ES官方对Python的依赖支持有很多,eg:pyelasticsearch、ESClient、elasticutils、pyes、rawes、Su
2017-12-23 20:31:24 35502 2
原创 用Python优雅的做数据分析
本文主要就笔者在实际工作中遇到的一些在统计分析领域的编程风格和代码技巧做一汇总;由于是想到哪就写到哪,所以文档前后并没有什么太强的逻辑性和关联性,就当做是一次随笔吧。(将会持续更新,把自己遇到的好的写法在此处做已记录和分析,大家若是有好点,尽可留言告知,相互学习,共同进步 ^v^) 笔者在数据分析主要是用到了Python(2.7)以及两个主要的依赖:Numpy 和 Pandas,有关这两...
2017-12-22 20:01:02 7350
原创 Python:Invalid environment marker:python_version<2.7问题解决方案
依赖信息:操作系统:CentOS 7Python:2.7.12当用pip 或者easy_install 命令安装相关依赖的时候,报如下错误:Invalid environment marker:python_version可是当前系统的python版本命名是2.7的,所以很是诡异。最后排查才发现,是因为系统中setuptools的版本过低,导致无法识别到本机安装的pyt
2017-12-22 19:14:01 5412 1
原创 基于centOS 7上的FTP服务器搭建详解
基于Spring boot的FTP工具类Demo详见Github安装(在root用户下)首先查询本机是否装有FTP服务器;命令如下: rpm -qa | grep vsftpd 如果没有,则执行:yum -y install vsftpd 进行安装 若存在且想卸载,执行:rpm -e vsftpd-***(vsftpd-*** 查询出来...
2017-08-31 23:52:16 3184
原创 Python MySQL 1054 "Unknown column '\xe7\x88\xb1\xe6\x83\x85' in 'where clause'"错误分析
环境版本:Python 2.7MySQL 5.6.27测试逻辑为:采用带有参数的SQL语句的书写格式,实现修改指定电影类型的状态标识位;数据表的字段设计如下图所示(数据表的编码格式为utf-8):在执行如下命令:则会报1054错误提示,如下图所示: 分析:根据错误提示不难看出,是因为没有在数据表中找到字段‘\xe7\x88\xb1\xe6\x83\x...
2017-06-26 16:05:30 2706
原创 在Windows上配置MongoDB
1,配置mongo的环境变量2,创建数据库文件夹和日志文件夹 如:D:\Tools\Office\MongoDB\data\db和D:\Tools\Office\MongoDB\data\log\log.log(Mongodb的安装路径为D:\Tools\Office\MongoDB)3,启动mongo服务(两种方式) 方式一:在DOS命令行输入如下命令
2017-06-26 11:18:35 370
原创 Tomcat访问外部资源
在做毕设(一个简单的电影推荐系统)的时候,有一个应用场景如下所述:电影的海报通过爬虫抓取到本地磁盘,在Web端进行电影海报展示的时候,由于Web应用和爬虫应用是两个独立的工程,所以在Web端展示时无法获取外部资源。具体解决办法:第一步:修改Tomcat安装路径中的conf文件夹下的server.xml文件在server.xml文件最后的<Host></Host>...
2017-06-18 20:32:51 2407
原创 GC详解及Minor GC和Full GC触发条件总结
GC,即就是Java垃圾回收机制。目前主流的JVM(HotSpot)采用的是分代收集算法。与C++不同的是,Java采用的是类似于树形结构的可达性分析法来判断对象是否还存在引用。即:从gcroot开始,把所有可以搜索得到的对象标记为存活对象。GC机制要准确理解Java的垃圾回收机制,就要从:“什么时候”,“对什么东西”,“做了什么”三个方面来具体分析。第一:“什么时候”即就是GC触发的...
2016-09-17 22:09:26 87776 28
原创 TCP/IP基础
OSI,TCP/IP,五层协议的体系结构,以及各层协议OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。TCP/IP分层(4层):网络接口层、 网际层、运输层、 应用层。五层协议 (5层):物理层、数据链路层、网络层、运输层、 应用层。每一层的协议如下:物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器,网关)数
2016-09-16 09:24:43 1364
原创 操作系统基础
计算机系统组成(1) 运算器(2) 控制器(3) 存储器(4) 输入/输出(I/O)设备计算机系统与操作系统的区别计算机系统是由软件和硬件组成的;其中软件系统包括系统软件和应用软件。操作系统则属于系统软件。 操作系统的主要功能(1) 处理机管理a) 进程控制b) 进程同步c) 进程通信d) 进程调度(2) 存储管理a)
2016-09-16 09:20:21 839
原创 HashMap、HashTable和Vector的存储扩容解析
HashMap、HashTable和Vector是面试时比较高频问到的知识点,今天就从三个的底层源码的角度分析三者之间的实现原理和异同点。HashMap:实现Map接口 实现原理:HashMap采用链地址法。即底层是一个数组实现。数组的每一项(即一个Entry)又是一个链表。结构图如下:每个Entry是一个键值对。源码如下:
2016-09-14 09:59:16 7979
转载 MapReduce工作原理图文详解
1.MapReduce作业运行流程流程示意图:流程分析:1.在客户端启动一个作业。2.向JobTracker请求一个Job ID。3.将运行作业所需要的资源文件复制到HDFS上,包括MapReduce程序打包的JAR文件、配置文件和客户端计算所得的输入划分信息。这些文件都存放在JobTracker专门为该作业创建的文件夹中。文
2016-09-13 11:38:08 447
原创 Hadoop的容错性
要谈及Hadoop的容错性,就不得不先从Hadoop的组成说起。Hadoop的1版本可以理解为是由MapReduce离线处理框架和HDFS文件系统组成。而Hadoop的2版本在1的基础上,增加了YARN资源管理系统。因为我自己接触2的时间不长,今天就针对前两个来谈Hadoop的容错性。一、MapReduce的容错性:1, map或reduce运行时因代码原因而抛出的异常。在这种情况下,
2016-09-13 10:57:40 4504
原创 Java实现堆排序
package Sort;public class HeapSort { public static void main(String[] args) { int[] data = {1,2,3,4,5,6,7,8,9,0}; HeapSort hs = new HeapSort(); hs.heapSort(data); for(int i : data)
2016-09-13 10:17:39 426
原创 归并算法的递归和非递归实现
package Sort;public class MergeSort { public static void main(String[] args) { int[] sourceData = new int[]{6,1,3,5,2,8,7,0,9,4,11,10,12}; int[] workSpace = new int[sourceData.length]; MergeS
2016-09-13 10:15:24 455
原创 Java实现排列组合算法
用Java实现排列算法:package Sort;import java.util.ArrayList;import java.util.List;public class Arrange { public static void main(String[] args) { Arrange arrange = new Arrange(); List data = new A
2016-09-13 09:51:49 32096 3
转载 如何在hadoop中控制map的个数
原文地址:http://blog.csdn.net/lylcore/article/details/9136555hadooop提供了一个设置map个数的参数mapred.map.tasks,我们可以通过这个参数来控制map的个数。但是通过这种方式设置map的个数,并不是每次都有效的。原因是mapred.map.tasks只是一个hadoop的参考数值,最终map的个数,还取决
2016-07-25 12:58:44 545
原创 Hadoop之NLineInputFormat解析
Hadoop默认实现的InputFormat是FileInputFormat,在FileInputFormat下有如下五个子类:CombineFileInputFormat、TextInputFormat、KeyValueTextInputFormat、NLineInputFormat和SequenceFileInputFormat。其中TextInputFormat默认的实现是TextInp
2016-07-25 12:13:25 3640
原创 使用Myeclipse + SVN + TaoCode 免费实现项目版本控制的详细教程
通过Myeclipse + SVN插件 + TaoCOde可以省去代码仓库的租建;同时还可以很好的满足小团队之间敏捷开发的需求。 Myeclipse的安装在此省略。
2016-07-25 10:40:40 4616 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人