文洲的专栏

对昨天不后悔,对今天不生气,对明天不担忧,对睡眠不轻视,对运动不排斥,爱自己,拥抱生活!...

4.MR过程分析

1. 三大过程 Map侧Shuffle Reduce侧Shuffle 2. 六大组件 InputFormat OutputFormat Serilizer Comparator Combiner Partitioner 1. 三大过程 上一节演示了最简单的MR任务的编写,可以看...

2019-02-17 16:23:12

阅读数 8

评论数 0

3.最简单的MR-WordCount

程序结构 map部分 reduce部分 主入口 测试 运行历史分析 下载 程序结构 从这一节开始,我会讲MR任务编写的方方面面,但是仅限在任务编写这块,不会过度涉及HDFS和Yarn调度的深入分析,计算时提也只是为了更好的理解MR任务。对于Mapreduce计算模型会深入介绍,只有了解Ma...

2019-02-17 16:21:36

阅读数 11

评论数 0

2.hadoop伪分布式安装

预备环境准备 下载和安装 配置核心 配置存储 配置计算 启动和测试 预备环境准备 JAVA环境配置 建议使用JDK,最低使用Java 7,都2018了建议使用Java 8。官网下载最新版本JAVA,也可以源安装OpenJDK。/etc/profile添加环境变量如下: JAVA_HOM...

2019-02-17 16:19:29

阅读数 5

评论数 0

1.Hadoop基本概念

序言 Hadoop的基本概念 Hadoop生态 推荐学习资料 - 书籍 - 视频 - 文档 序言 做IT的都知道数据的重要性,尤其在这个万物互联的时代,一方面TB、PB级的数据迅速增长,另一方面需要从这些数据中获取各种各样的复杂信息。基于传统的关系数据库技术的数据分析已经满足不了海量数据的...

2019-02-17 16:17:27

阅读数 5

评论数 0

字符串-模式匹配(易理解版)

KMP感觉是个魔咒,每次看的时候都理解了,等到一段时间后又忘了,很多人觉得自己理解了,真正写代码时又写不出来。归根到底是没理解透彻,这次彻底研究了下,发现网上流传的代码没那么好理解,所以自己写了一版,原理都是一样,但是相对好理解,理解了这一版代码再看经典实现就都明白了。 原理 KMP的核心在于...

2019-01-27 12:49:57

阅读数 56

评论数 0

栈的应用-四则运算算术表达式(C++版)

很久之前写过,用栈实现四则运算,现在会看当时的实现有两个问题: 1.使用自己实现的容器,不够通用 2.代码实现的封装性不够 此次在原先的基础上,使用C++重构,直接使用STL容器类来实现四则运算。 原理 这里不再赘述,方法和注意事项参考之前文章理论部分 核心算法1 最通用的方法就是使...

2019-01-08 22:07:18

阅读数 87

评论数 0

一种资源池的实现

这两天看到一种静态链表的实现,刚好可以拿来做资源池的实现,记下供参考。 先说静态链表,这最开始为了给Pascal等没有指针的语言来实现链表的一种方式,为了模拟链表指针指向下一个节点的方式,静态聊表使用数组下标来表示下一个元素的位置。 就算是在有指针的语言中,使用静态链表也有它的优势:初始化后相...

2018-11-29 22:23:48

阅读数 83

评论数 0

利用python实现ORM

做web开发的基本绕不过ORM,很多时候ORM可以大大减少开发工作量,那么ORM是怎样实现的呢?其实很简单,说穿了一文不值,本文先实现一个简单的ORM然后分析下现在流行的python ORM框架peewee源码。 ORM原理 ORM即对象关系映射(Object Relational Mappi...

2018-11-18 21:08:52

阅读数 211

评论数 0

深入理解python元类

相对python的简单来说,元类显得有些复杂了,但是理解元类会让你的python代码威力大大增加,理解元类需要了解一些python背后的东西,相信通过本文的叙述你能很快理解运用这一利器。 类的本质 首先我们思考下,python中的类是什么,如下代码: class ClassObject()...

2018-11-11 15:32:05

阅读数 114

评论数 0

深入理解python属性

在java等编译语言中,我们倾向于将成员变量设为private,通过public的get/set方法来访问对应的字段,这样做的好处在于get/set起到了拦截的作用,在这个点我们可以插入自己的逻辑,也就是常说的AOP(面向切面编程),比如日志、缓存、延迟创建等操作。 但是python并不推荐这种...

2018-11-10 14:59:08

阅读数 105

评论数 0

python类特性

习惯了C++和Java OO(面向对象)思想的程序员刚转到python会有些不习惯,python中对很多操作都做了简化,完全的面向过程编程也很容易(事实上很多人确实在这样做),但是实际上python针对类提供了很多有用的特性,了解这些可以编写更好的Python OO程序。 1.命名元组 默认的...

2018-10-21 17:18:12

阅读数 80

评论数 0

go并发编程基础

go被誉为互联网的C语言,它的同步其实还是基于传统语言,但是它的优势在于语言层面实现了协程支持,goroutine和channel组成的CSP模型,大大减少了并发编程开发难度,简单记下心得供有需要朋友参考。 go中开辟新线程使用go 关键字即可,同步方法分为传统方法和基于通道(channel)的...

2018-08-25 20:49:10

阅读数 92

评论数 0

Java并发编程实战-基础

最近读《Java并发编程实战》,颇多感悟,这本书相逢恨晚,和作者前言所述一样,这本书偏向和并发相关的设计级策略和模式,让人真正掌握并发程序的编写,这里记下一些感悟,供有需要朋友参考。 在现代CPU架构下,并发程序提高了系统资源利用率,优化了用户体验,简化了网络开发难度,但也是正是多线程错误使用引...

2018-08-22 22:01:59

阅读数 88

评论数 0

go类型相关常见问题

1.如何判断变量类型 有时候需要根据变量类型动态判断变量类型,可以有如下三种方法: func getType( i interface{}){ switch i.(type) { case int32: fmt.Println("int32 variable&...

2018-08-17 19:39:39

阅读数 104

评论数 0

go语言常见坑

学习go语言有段时间了,这门语言确实极具生产力,虽然都说简单,但是由于编程和常见的OO语言套路差别有点大,很多地方还是需要调整对已有语言的认识,这里记下遇到的一些坑,供有需要的朋友查阅。 1.main包的唯一性 传统语言中对主入口的要求是main函数,如c++/java等,只需要保证这点即可,...

2018-08-16 16:45:52

阅读数 303

评论数 0

python中函数相关的坑

主要是笔者在实际开发中遇到的python函数相关的问题,关系到对python一些概念的深入理解,记下供参考。 1.局部变量作用域问题 python支持闭包,默认闭包中引用的变量读时按照由内而外的顺序(局部->外部->全局->内建...

2018-08-09 21:37:43

阅读数 116

评论数 0

python中父子进程

最近在使用python中的multiprocessing模块时遇到一些问题,很多人应该遇到相同问题,简单研究下,供有需要的参考。 首先,要明白multiprocessing的出现很大程度是为了解决python GIL锁带来的多线程低效问题,其次,注意Windows上和Linux上的进程、线程行为...

2018-08-02 22:00:39

阅读数 652

评论数 0

python中常见技巧

标题说是技巧,其实也是常常遇到的一些问题,有些方法尽管可以解决问题甚至是常用的,但是python提供了更好的解决方法。对应的演示我会注明推荐和不推荐的用法。 判断列表空数据 经常我们需要判断列表是否为空,都是用len判断长度,其实python自动会将空列表判断为False,因此直接判断即可,如...

2018-07-29 20:07:58

阅读数 169

评论数 1

2.Windows 界面技术发展现状

毫无疑问,Windows的流行推动了图形界面的发展,从最原始的Win32界面库到MFC,再到最近UWP界面库,Windows界面库的发展也代表了界面库和整个软件行业的发展方向。本文就简单梳理下整个Windows界面库的发展历程和现状。 Win32 Windows 整个系统的图形界面是建立在Wi...

2018-07-28 20:59:47

阅读数 643

评论数 1

1.用户界面原理和界面库编程模型

从最早的图形用户界面操作系统Apply Lisa,到空前的windows 1.0,再到最新的Windows、苹果、Linux操作系统,图形用户界面已经是个人电脑不可缺少的部分。图形用户界面的发展是建立在成熟的图形学基础上的,本系列文章主要依托Windows 平台下的C++界面库来揭秘图形界面库原理...

2018-07-26 20:51:01

阅读数 276

评论数 0

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