代码改变世界

hadoop实战 -- 网站日志KPI指标分析

2015-05-27 17:29 by hduhans, 1378 阅读, 0 推荐, 收藏, 编辑
摘要:本项目分析apache服务器产生的日志,分析pv、独立ip数和跳出率等指标。其实这些指标在第三方系统中都可以检测到,在生产环境中通常用来分析用户交易等核心数据,此处只是用于演示说明日志数据的分析流程。一、需求分析 我们可以编写执行的shell脚本,将apache每天产生的日志上传到HDFS中,... 阅读全文

Java反射与动态代理

2015-05-07 20:45 by hduhans, 4894 阅读, 4 推荐, 收藏, 编辑
摘要:Java反射机制可以动态地获取类的结构,动态地调用对象的方法,是java语言一个动态化的机制。java动态代理可以在不改变被调用对象源码的前提下,在被调用方法前后增加自己的操作,极大地降低了模块之间的耦合性。这些都是java的基础知识,要想成为一名合格的程序猿,必须掌握!Java反射机制 JA... 阅读全文

使用maven来管理您的java项目

2015-05-01 21:48 by hduhans, 1994 阅读, 1 推荐, 收藏, 编辑
摘要:maven是一个项目管理工具,使用maven可以自动管理java项目的整个生命周期,包括编译、构建、测试、发布和报告等。在大型项目开发中,使用maven来管理是必不可少的。 一、安装maven 1、Windows安装 1) 从官网(http://maven.apache.org/download.c 阅读全文

使用MapReduce实现一些经典的案例

2015-05-01 18:10 by hduhans, 2800 阅读, 0 推荐, 收藏, 编辑
摘要:在工作中,很多时候都是用hive或pig来自动化执行mr统计,但是我们不能忘记原始的mr。本文记录了一些通过mr来完成的经典的案例,有倒排索引、数据去重等,需要掌握。一、使用mapreduce实现倒排索引 倒排索引(Inverted index),也常被称为反向索引、置入档案或反向档案,是一种... 阅读全文

编译本地64位版本的hadoop-2.6.0

2015-03-19 11:32 by hduhans, 5889 阅读, 0 推荐, 收藏, 编辑
摘要:官方提供的hadoop-2.x版本貌似都是32位的,在64位机子下使用可能会报错,最好使用官方提供的源码进行本地编译,编译成适合本地硬件环境的64位软件包。关于native Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Lib... 阅读全文

Java基础必备 -- 堆栈、引用传值、垃圾回收等

2015-03-16 14:59 by hduhans, 1007 阅读, 1 推荐, 收藏, 编辑
摘要:在Java中,对象作为函数参数的传递方式是值传递还是引用传递?String str = "abc" 与 String str = new String("abc")在存储上有何区别?想成为一名合格的搬砖工,掌握吧,颤抖吧! 堆(heap)和栈(stack) 在数据结构中存在堆和栈,在内存分配中也有堆 阅读全文

设计模式之 -- 状态模式(State)

2015-03-10 15:07 by hduhans, 648 阅读, 0 推荐, 收藏, 编辑
摘要:状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。当控制一个对象的状态转换条件分支语句(if...else或switch...case)过于复杂时,可以此模式将状态的判断逻辑转移到不同状态的一系列类中,将复杂的逻辑简单化,便于阅读与维护。概述1、为什么要使用状态模式? ... 阅读全文

函数式编程初识篇

2015-03-05 18:08 by hduhans, 539 阅读, 0 推荐, 收藏, 编辑
摘要:函数式编程是一种编程模型,它很古老,已经有了五六十年的发展历史。随着21世纪互联网的高速发展,函数式编程获得了越来越高的关注度。不仅最古老的语言Lisp重获新春,而且涌现出了一系列新的函数式语言,有Erlang、python、Haskell、clojure、Scala、F#等。而且在.NET和J... 阅读全文

如何编写常见语言带默认参数值的函数

2015-03-03 20:49 by hduhans, 954 阅读, 0 推荐, 收藏, 编辑
摘要:我们在定义函数时,有时候需要让参数带默认值,在各种语言中,带默认值的参数写法也不尽相同。C#函数默认值 public void DemoMethod(String name, String job="programmer", String address="Hangzhou") { }1、赋值... 阅读全文

Hadoop学习(5)-- Hadoop2

2015-01-28 09:14 by hduhans, 1277 阅读, 0 推荐, 收藏, 编辑
摘要:在Hadoop1(版本=0.23)诞生了,可以支持分布式NameNode、NameNode HA(NameNode High Available),实现了NameNode的横向扩展,使得集群规模最大可支持上万个节点。一、Hadoop2介绍1、Hadoop1局限性 NameNode存储用户HDF... 阅读全文