写在前面 建立网站最好有一定计算机基础,需要了解以下几个概念:域名:网站必须需要地址,这样别人才能在浏览器中输入你的域名来访问你的网站,本质上是通过ip来访问你的网站,可以了解以下域名解析。服务器:一个有公网ip的计算机,用来存放你的网站。计算机倒是简单,pc机也可以,但是公网ip一般都是网络运营商才有,而且价格不菲。随着近几年互联网的发展,虚拟化…
本文将用启发式的方式去做java hashmap的源码分析。 刚入门ACM的时候,经常会处理字符串相关问题。下面有一道很常规的题: 计算一个小写英文字符串中每个字符出现的频率。 如果不了解ASCII,用Java直接实现: public class TestMap { public static void main(String[] args…
Hadoop RPC框架原理 RPC是远程过程调用(Remote Procedure Call)的缩写形式。RPC主要目的是能让应用层可以像调用本地方法一样调用远程方法。既然是远程调用,肯定是采用了c/s架构。我们可以先分析一下client和server分别要完成什么事情。 Client:当应用层调用方法时,肯定要先建立连接,然后把方法和参数都通过…
Datanode本质上也是TCPServer,一般的TCPServer接到客户端请求以后会分配一个线程处理,对于Datanode而言,这个线程可以叫做Op处理线程。每个OP线程会多次和客户端交互,中间涉及多种packet。 Op线程 写在前面 写在前面,关于proto writeDelimitedTo方法 在整个处理流程中,会非常频…
客户端读 hdfs客户端读会先调用open方法,open会调用先getBlockLocations来获取块信息,然后通过openinternal生成DFSInputStream对象,通过DFSInputStream读数据。 getLocatedBlocks(String src, long start, long length) 客…
Wordcount的例子基本接触过hadoop都会跑过,本篇的主要分析都以Wordcount为例。我们先把etc/hadoop/下配置文件作为Wordcount的输入hadoop fs -put etc/hadoop/* /input然后打开调试运行以下命令hadoophadoop-mapreduce-examples-xxx.jar wordco…
本文的目的主要是让初学者快速的跑通第一个hadoop实例。 准备 1、linux环境(本人用的是64位的centos虚拟机)2、下载jdk linux版本和hadoop安装包(本人用的是jdk-7u80-linux-x64.tar.gz和hadoop-2.6.0) 安装 jdk-7u80-linux-x64.tar.gz 解压 tar zxvf …
面试题 今天看到在微信上有人发了这一道数学题,题目如下: 我当时看到这题一眼就认为答案是c(用的是排除法),然后我就分析了一下,发现这个题最重要的条件并不在题设中。这个条件就是:当不确定的时候不会有人举手。那我们来分析一下当时情况(每个人的想法):第一轮举手前:A:傻x老师,整个墙干嘛,我啥也看不见,还有D能看到2个人是怎么回事,偏心吗?B:傻x老…
php文件下载比较常见,网上的资料比较多,在此不再强调怎么去实现(因为也是网上看的)。下面主要说明的是下载代码的注意点。php下载文件主要是把文件以字节流直接输出,也就是echo fread($file, filesize($file_name));,这里要注意的是如果你在代码之前(或之后)有输出,也可能被写入下载的文件中,解决的方法是使用ob_s…
问题: 小明是邮局的人事部,主要管给邮件分类的人员。最近人员调动比较大,导致遇见了以下难题。目标:确定每个员工要处理的邮件省份的分配策略。条件:1)一个员工如果长时间处理相同省份的邮件,分类效率会提高。 2)随时有员工离职或者加入,要求实时分配任务。 分析: 问题一看就是明白是散列直接的对应问题(省份散列->员工散列),很明显的应该用哈希算法…