分布式框架
fish_cool
擅长java并发设计与开发(包括多核开发)、java性能调优、java分布式架构与设计、工作流引擎算法、python;对erlang、ada、搜索引擎有浓厚的兴趣,曾从事过数据分析与挖掘(SAS)和hadoop平台相关(hive、sqoop、R、zookeeper、mahout、Hbase等)方面的研究与开发,现阶段负责公司的整个大数据平台的搭建(包括海量实时OLAP查询、离线计算平台、实时计算平台),并朝着各平台封装成产品的方向前进
展开
-
Hadoop学习笔记一 简要介绍
Hadoop学习笔记一 简要介绍转载 2011-05-10 14:35:00 · 630 阅读 · 0 评论 -
hive导入数据丢失问题
最近在做批量导入转换数据时,出现了部分数据丢失情况,最后经过检查发现,数据里在某个字段进行转换时,出现了回车符,导致最终数据出来16列,但是目标表只有8列,所以数据就被多出来的8列数据给覆盖了,导致数据丢失(因涉及数据安全问题,这里就不方便进行截图了)。解决方式:就是在UDF里将回车符给替换掉即可。例子如下:str.replaceAll("[\\n | \\r]","");原创 2012-01-08 15:39:51 · 4579 阅读 · 0 评论 -
hive中文乱码问题
关于hive乱码问题,因为hive的数据是保存在HDFS里的,所以文件保存的字符格式为UTF8即可,就能在hive里的命令行里查询出来正常的中文显示。原创 2012-01-04 13:02:23 · 16381 阅读 · 9 评论 -
Katta如何使用Zookeeper-ZkServer的节点
ZkServer的节点分为两大类:Server,Observer,其中Server又分为Leader,FollowerServer节点组成ZkServer的群集系统,数量一般是2*n+1,其中n是最大失效节点数。Server节点在启动的时候,通过一个选举过程,选择一个Leader,来作为领导者,即仲裁或者决策的节点,主要用于在更新数据时,发起最终的更新同步过程。其它节点作为Follower,即转载 2011-09-22 13:35:09 · 1049 阅读 · 0 评论 -
Katta如何使用Zookeeper-Client连接
Katta使用ZkClient和ZKServer通讯,调用顺序一般是:Katta->ZKClient->ClientCnxn->NIOServerCnxn->ZKServer,具体结构如下:1. 连接: a)ZkClient、ClientCnxn和Katta处于同一个实例中,和ZkServer通过Socket通讯; b)ClientCnxn发起socket连接后,ZkSer转载 2011-09-22 13:36:09 · 1224 阅读 · 0 评论 -
Katta如何使用Zookeeper-Server节点的通讯
Server节点通过Leader选举过程区分出Leader和Follower后,ZkServer集群准备就绪,开始为Client提供服务:1. Leader,Follower和Observer三者本地都有集群数据的缓存,Client的读数据请求,直接由本地缓存提供;2. 集群数据的更新同步,由Leader负责发起,时机是任何一个Client发起更新数据的请求后;Leader和Follo转载 2011-09-22 13:37:03 · 1441 阅读 · 0 评论 -
Zookeeper全解析——Client端
Zookeeper的Client直接与用户打交道,是我们使用Zookeeper的interface。了解ZK Client的结构和工作原理有利于我们合理的使用ZK,并能在使用中更早的发现问题。本文将在研究源码的技术上讲述ZK Client的工作原理及内部工作机制。在看完ZK Client的大致架构以后我希望能有一种简单的方式描述ZK Client的基本结构,想来想去我觉得还是图片比较能反映情况转载 2011-07-22 16:39:26 · 10953 阅读 · 4 评论 -
Zookeeper全解析——Paxos作为灵魂
原计划在介绍完ZK Client之后就着手ZK Server的介绍,但是发现ZK Server所包含的内容实在太多,并不是简简单单一篇Blog就能搞定的。于是决定从基础搞起比较好。那么ZK Server最基础的东西是什么呢?我想应该是Paxos了。所以本文会介绍Paxos以及它在ZK Server中对应的实现。先说Paxos,它是一个基于消息传递的一致性算法,Leslie Lamport在转载 2011-07-22 17:03:51 · 2898 阅读 · 0 评论 -
ZooKeeper Server/Client Session 设计及代码分析
学习开源项目,首要应该是了解其机制。拿来主义固然可以加速开发,但是也会带来潜在的风险。如果你想把自己的应用做的好,你需要保证每一次汲取的营养都是精华,而尽量不要引入糟粕。最近有很多分布式的研发,所以了解了一下ZooKeeper,我们来看看有什么有趣的东西。ZooKeeper用了不少代码维护ZK client和ZK server之间的session。基本架构是一个NIO server,后转载 2011-09-20 17:24:12 · 2613 阅读 · 0 评论 -
ZooKeeper leader election 分析和实现
Paxos是分布式应用中解决同步问题的核心。作为应用研发工程师,我们总是倾向于使用一种相对简洁的方式实现复杂的算法。ZooKeeper leader election实现就是一个非常好的参考。其实现比标准Paxos算法简单,基本过程是:1 2转载 2011-09-20 17:26:16 · 2253 阅读 · 0 评论 -
Katta如何使用Zookeeper-数据更新
当Client发起更新数据的请求后,ZkServer会随后发起多个处理过程:1. Propose过程,发起会签请求,即试图获取各个Follower的同意,以便进行数据更新2. ACK过程,即Follower发出同意响应3. Commit过程,Leader向Follower发出数据更新的通知具体如下图:值得注意的地方:1. ProposalRequestProcessor转载 2011-09-22 13:37:40 · 1403 阅读 · 0 评论 -
Katta如何使用Zookeeper-数据更新2
当Client连接到Follower,并发出数据更新的请求时:1. Follower的CommitProcessor将阻塞Request,直到Leader发出Commit通知2. Follower把数据更新的request转发给Leader,Leader然后发起数据更新同步的过程具体如下图:注意:Leader和Follower判断哪个最早接收到的数据更新请求,是根据Requ转载 2011-09-22 13:38:40 · 825 阅读 · 0 评论 -
Katta如何使用Zookeeper-数据更新3
数据更新过程中,SyncRequestProcessor的处理对性能非常重要。如下图:注意:Flush方法会发出两个操作:database的commit和NextRP的process,而commit操作涉及到txnLog的flush,这是一个写文件的调用,会消耗大量时间,尤其是磁盘IO比较紧张的时候。所以,Zookeeper建议要有一个本地的磁盘,操作日志和快照要放在本地磁盘上。转载 2011-09-22 13:39:11 · 812 阅读 · 0 评论 -
Shuffle Error: Exceeded MAX_FAILED_UNIQUE_FETCHES; bailing-out.
hadoop在使用的过程中出现了这样的错误。解决方式,修改datanode节点里/etc/hosts文件。操作的详细步骤如下:首先查看主机名称cat /proc/sys/kernel/hostname简单介绍下hosts格式每行分为三个部分:第一部分网络IP地址、第二部分主机名或域名、第三部分主机别名修改hosts配置内容如下:127.0.0.1原创 2012-01-06 10:17:01 · 8009 阅读 · 7 评论 -
hive 0.8运行python脚本问题
最近在hive上执行python脚本出现了以下问题,在hive命令行里,执行时报错信息如下:hive> from records > select transform(year,temperature,quality) > using 'python /user/hive/script/is_g原创 2011-12-29 15:11:13 · 3453 阅读 · 1 评论 -
hive创建分区表问题
最近在使用hive的时候,metadata我是放在mysql(是5.5的版本)里的。当时mysql设置的字符集是utf8,正常创建表的时候,一切正常,当我进行创建分区表后,在使用的时候,就出现以下错误信息:FAILED: Error in metadata: javax.jdo.JDODataStoreException: Error(s) were found while auto-原创 2011-12-30 16:40:04 · 3928 阅读 · 0 评论 -
使用Cygwin模拟Linux环境安装配置运行基于单机的Hadoop
使用Cygwin模拟Linux环境安装配置运行基于单机的Hadoop转载 2011-05-13 10:45:00 · 981 阅读 · 0 评论 -
Hadoop学习笔记二 安装部署
Hadoop学习笔记二 安装部署转载 2011-05-10 14:36:00 · 601 阅读 · 0 评论 -
hadoop实践部署
最近自己开始部署hadoop相关一套环境,目前还没在生产环境下使用,只在cygwin的虚拟环境下进行的搭建,参考各安装手册后,发现还是有些出入,特整理下我搭建的步骤。 首先安装cygwin,接着是sshdhadoopzooKeeperhbase 我安装的过程,参考的是《Hadoo原创 2011-07-15 17:36:35 · 2546 阅读 · 0 评论 -
网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
最近在给公司的产品做一个较完善的web架构,特转帖几篇入门文档,等使用一段时间后,再写些使用心得。1、HTML静态化其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我转载 2011-11-03 12:56:39 · 3039 阅读 · 0 评论 -
Apache2.2.4整合Tomcat6.0.16三种方式的详细配置过程
通常都是通过JK_MOD来整合Apache和Tomcat,但是Apache2.2版本以上整合Tomcat可以直接通过AJP_PROXY来完成,很方便。下面把几种方式都简单讲讲。假设一个Apache,两个Tomcat容器,访问 a.hackang.cn 和 b.hackang.cn 分别对应 tomcata 和 tomcatb 的应用第一种方式:JK_PROXY安装好Apac转载 2011-11-03 17:42:28 · 893 阅读 · 0 评论 -
总结服务器支撑技术(Linux)
如何解决负载均衡,首先需要找到问题短原因,这里总结几点:第一:不要推测,要测量。要想把服务器的性能发挥到极致,首先要正确掌握服务器资源短使用状况。第二:如何寻找瓶颈点,分为两个步骤(查看平均负载和确认CPU、I/O有无瓶颈 第一步查看负载就是用top、uptime等命令显示平均负载 第二步查看CPU和I/O瓶颈,通过sar或者vmstat命令来查看(一般分为计算密集型和I/原创 2011-11-07 14:42:54 · 1524 阅读 · 0 评论 -
apache能缓存数据说明
What Can be Cached?As mentioned already, the two styles of caching in Apache work differently, mod_file_cache caching maintains file contents as they were when Apache was started. When a request转载 2011-11-07 17:45:14 · 687 阅读 · 0 评论 -
Nginx安装及配置简介
Nginx作为一个后起之秀,他的迷人之处已经让很多人都投入了他的怀抱。配置简单,实现原理简单。做一个负载平衡的再好不过了。其原理:简单介绍一下他的安装及配置过程官方网站 http://wiki.codemongers.com/Main一、依赖的程序1. gzip module requires zlib library 2. rewrite modu转载 2011-11-09 10:15:22 · 1648 阅读 · 0 评论 -
HDFS的设计
总结下HDFS的设计特点超大文件,指几百MB,几百GB甚至几百TB大小的文件流式数据访问,HDFS的构建思路为:一次写入、多次读取是最高效的访问模式商用硬件,不需要运行在昂贵且高可靠的硬件上低时间延迟的数据访问,应用与低时间延迟的数据访问场景,记住,HDFS是为高数据吞吐量应用优化的大量的小文件,由于namenode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总原创 2011-11-09 14:13:57 · 989 阅读 · 0 评论 -
HWI WAR file not found问题
在hive-site.xml里配置属性hive.hwi.war.file的值为:hive.hwi.war.filelib/hive-hwi-0.8.0.war原创 2011-12-27 15:38:07 · 1556 阅读 · 0 评论 -
hive脚本运行查看错误日志方式
当脚本在运行时报错信息如下:Examining task ID: task_201201061122_0007_m_000002 (and more) from job job_201201061122_0007Exception in thread "Thread-23" java.lang.RuntimeException: Error while reading from tas原创 2012-01-06 17:38:50 · 17169 阅读 · 3 评论 -
关于java并行程序开发重点
最近在运用hadoop做分布式运算,随便也对java的并行计算框架进行复习,特总结下心得。java的并行计算框架就是Fork/Join模式,关于使用模式很简单,这里主要是关注相关关键因素。第一就是Times,运行的次数,每秒运行次数。第二就是speedups和task rates,就是加速度和每秒执行任务频率。第三就是Garbage Collection,就是GC回收效率。第四原创 2012-02-06 16:24:59 · 2816 阅读 · 8 评论