- 浏览: 307710 次
- 性别:
- 来自: 北京
最新评论
-
dandongsoft:
你写的不好用啊
solr 同义词搜索 -
黎明lm:
meifangzi 写道楼主真厉害 都分析源码了 用了很久. ...
hadoop 源码分析(二) jobClient 通过RPC 代理提交作业到JobTracker -
meifangzi:
楼主真厉害 都分析源码了
hadoop 源码分析(二) jobClient 通过RPC 代理提交作业到JobTracker -
zhdkn:
顶一个,最近也在学习设计模式,发现一个问题,如果老是看别人的博 ...
Java观察者模式(Observer)详解及应用 -
lvwenwen:
木南飘香 写道
高并发网站的架构
文章列表
all the guys of visiting the blog :
I had changed my blog stie to wordpress ,that is my blog site http://wwangcg.com
thanks everyone that support me at so along time .
thanks again
http://hyry.dip.jp/tech/slice/slice.html/24
impalad
impala 核心组成部分之一 impalad ,它是impala的一个启动进程.impalad 运行在集群中的每一个独立节点机器上。应用impala必须启动impalad进程。
impalad 负责读写数据文件,接受来自impala-shell发送的sql 、command 、Hue ...
taskTracker 生成map reduce 任务详解
1. 启动 TaskTracker ,执行main方法 new TaskTracker(conf) 启动taskTracker
2. taskTrack 构造方法初始化变量
mapred.tasktracker.map.tasks.maximum taskTracker 可launch 的最大map数 默认是2
mapred.tasktracker.map.tasks.maximum taskTracker ...
hadoop mapreduce 之所有能够实现job的运行,以及将job分配到不同datanode 上的map和reduce task 是由TaskSchduler 完成的.
TaskScheduler mapreduce的任务调度器类,当jobClient 提交一个job 给JobTracker 的时候.JobTracker 接受taskTracker 的心跳.心跳信息含有空闲的slot信息等.JobTracker 则通过调用TaskScheduler 的assignTasks()方法类给报告心跳信息中含有空闲的slots信息的taskTracker 分布任务、
TaskSchedul ...
启动 JobTracker
1. 进入main方法:
//执行startTracker 方法
JobTracker tracker = startTracker(new JobConf());
//执行offerService()方法
tracker.offerService();
3.startTracker()方法中
// new JobTracker 方法
result = new JobTracker(conf, identifier);
result.taskSchedu ...
Hadoop 通信机制采用自己编写的RPC. 相比于其他复杂的rpc框架着实清爽了许多.rpc在hadoop中扮演的角色是通信和数据传输在client和server端,以及datanode和namenode 心跳数据以及jobTracker 和taskTracker 通信
1. Client 与 server 端通信采用Writable 序列化形式.因此hadoop中信息的传递 必须继承自writable 接口,writable 接口有两个方法 write 和read
2. Client 端通过调用Call 方法,将消息序列化为writable 形式与server端通信
3. C ...
1.JobClient 客户端类 通过调用 JobSubmissionProtocol 接口 的 submit 方法提交作业
2. JobSubmissionProtocol 接口为 JobClient 和JobTracker 共同执行的接口,因此它是一个可代理的接口
3. 调用 createRPCProxy() 通过远程RPC 调用实现动态代理 JobTracker 类 ...
Hadoop 用了2年多了.从最初一起创业的11人20台服务器集群到后来独立搭建基于hadoop nutch的搜索引擎并商用化 到现在也2年了.这两年来应用了很多新技术也经历了很多,从数据仓库的Hive pig 到mapreduce的编码去解决算法或是etl的问题 等等都离不开hadoop.觉得用了2年多也到了该总结的时候了.故此想重新翻译hadoop 源码,按照不同的类方法的不同作用.也希望读到这篇博客的人和我一起 经历这一段岁月,一起讲hadoop的核心结合实用主义 传递给中国的开源软件使用者。
下图为 jobClient 提交到 Mapreduce 作业到Job ...
Hive
hive 除了支持基本的数据结构
hive 复杂的数据结构:
{
array
map
struct
}
数据格式
221190xxx9 0401:0.30 0402:0.81 1303:0.23 1502:0.21 1503:0.11 0307:0.17 1003:0.35
22119xxxx2 0508:0.58 0402:0.25 0403:0.24 0405:0.30 0503:0.55 1502:0.26 0208:0.29
22119xxx63 0405:0.18 0408:0.22 0905:0.89 1503:0.16 0301: ...
RHadoop 环境安装
硬件:
centos6
16G memory
软件:
RJSONIO
digest
functional
stringr
==上面软件直接 install.package(' package name') 既可直接安装
rmr - 2.0.2
rhdfs - 1.0.5
rhbase - 1.1
==上面软件下载地址 https://github.com/RevolutionAnalytics/RHadoop/wiki/Downloads
注:环境变量
JAVA_HOME=/ ...
hive的topN实现
hive的topN实现方式有很多种,网上有一些通过自己写的udf实现,下面将我写的sql模式贴一下
核心原理通过group by 分组求和 之后 用order by 进行全局排序 之后在limit n 取你想要的 topn 排名
上sql:
select obj , cnt from ( select obj ,count(obj) as cnt from action_raw where verb ='SHARE_ALBUM' and log_date >= '2012-01-01' and log_date <= '2012-12-12' gro ...
Hive与表操作有关的语句
1.创建表的语句:
Create [EXTERNAL] TABLE [IF NOT EXISTS] table_name
[(col_name data_type [COMMENT col_comment], ...)]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
[CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO ...
hive中的LEFT SEMI JOIN
LEFT SEMI JOIN 是 IN/EXISTS 子查询的一种更高效的实现。
Hive 当前没有实现 IN/EXISTS 子查询,所以你可以用 LEFT SEMI JOIN 重写你的子查询语句。LEFT SEMI JOIN 的限制是, JOIN 子句中右边的表只能在
ON 子句中设置过滤条件,在 WHERE 子句、SELECT 子句或其他地方过滤都不行。
SELECT a.key, a.value
FROM a
WHERE a.key in
(SELECT b.key
FROM B);
可以被重写为:
...