- 博客(61)
- 资源 (1)
- 收藏
- 关注
原创 关于实时消息推送系统的架构之浅见
最近,有一个朋友问了一个问题:如何实现实时消息推送架构,当时只是说了比较笼统的概念,并没有进行深入的探讨。再加上时间比较也就没有进行一个归总。刚好今天进行一个梳理。具体内容如下 那么整体的设计如上。接下来我们针对每一块进行剖析1、协议的选择 关于协议的选择这块,现在比较常用的方式:XMPP、MQTT、自定义协议等,那么关于每种协议的优缺点,这里面我们不进行细致描述。只要知道最...
2016-04-26 10:37:59
851
原创 jstorm源码之TransactionalState
一、作用 主要是通过结合zookeeper,在zookeeper指定的目录下创建不同的自己 代表不同的transaction state,并赋予不同的内容;通过zookeeper完成对partitions的transaction的管理二、源码分析package storm.trident.topology.state;import backtype.storm.Confi...
2016-03-21 19:31:57
176
原创 jstorm源码之RotatingTransactionalState
一、作用 构建一个Rotationg transaction的state类 用于完成partition的state管理及操作二、源码分析package storm.trident.topology.state;import backtype.storm.utils.Utils;import org.apache.zookeeper.KeeperException;...
2016-03-21 19:29:30
153
原创 jstorm源码之PartitionedTridentSpoutExecutor
一、作用 Partition Spout对应的executor二、源码分析package storm.trident.spout;import backtype.storm.task.TopologyContext;import backtype.storm.tuple.Fields;import java.util.ArrayList;import java...
2016-03-21 19:28:34
146
原创 jstorm源码之RotatingMap
一、作用 基于LinkedList + HashMap实现一个循环Map二、源码// 通过结合LinkedList 和 HashMap 构成一个循环Map数据结构 public class RotatingMap { // this default ensures things expire at most 50% past the expiration tim...
2016-03-21 19:27:23
137
原创 jstorm源码之 RichSpoutBatchExecutor
一、作用RichSpoutBatchExecutor是IRichSpout及其子类Spout的executor执行器;主要包括: 1、RichSpoutEmitter :用户tuple的emit 2、RichSpoutCoordinator:用于spout的调度 3、CaptureCollector: 用于获取spout的collect的f...
2016-03-21 19:24:44
168
原创 jstorm源码之TridentTopology
在jstorm中对应TridentTopology的源码如下,TridentTopology的主要作用是用来创建trident的一、一般使用的方式如下// 1、创建一个topology对象TridentTopology topology = new TridentTopology();// 2、设置相关参数: each分片、group by分组、聚合aggregate// 返...
2016-03-16 18:12:12
279
原创 jstorm操作命令
启动ZOOPKEEPERzkServer.sh start启动NIMBUSjstorm nimbus &启动SUPERVISORjstorm supervisor &启动UIjstorm ui &部署TOPOLOGYjstorm jar /opt/hadoop/loganalyst/storm-dependend/data/teststorm-1.0.jar t...
2016-03-15 18:04:06
726
原创 JStorm之Supervisor简介
一、简介Supervisor是JStorm中的工作节点,类似于MR的TT,subscribe zookeeper的任务调度结果数据,根据任务调度情况启动/停止工作进程Worker。同时Supervisor需要定期向zookeeper写入活跃端口信息以便Nimbus监控。Supervisor不执行具体处理工作,所有的计算任务都交Worker完成。从整个架构上看,Supervisor处在整个JSto...
2016-03-15 18:02:30
217
原创 JStorm介绍
一、简介Storm是开源的分布式容错实时计算系统,目前被托管在GitHub上,遵循 Eclipse Public License 1.0。最初由BackType开发,现在已被Twitter收入麾下。Storm最新版本是Storm 0.9,核心采用Clojure实现。Storm为分布式实时计算提供了一组通用原语,可被用于“流处理”之中,实时处理消息;Storm也可被用于“连续计算”(continu...
2016-03-15 17:56:59
165
原创 mycat的使用---sqlserver和mysql
数据库中间件mycat的使用一、环境 windows server 2008r2(8核 16G内存) 、 sqlserver 、 mysql 、 mycat1.5.2二、测试前端代码(只提供C#,为了解决公司原有老项目 java的到mycat的github上面自行查找) 数据库操作如下using MySql.Data.MySqlClient;using System;using Syste...
2016-01-11 14:33:48
2097
1
原创 分布式------NWR
NWR是一种在分布式存储系统中用于控制一致性级别的一种策略。在Amazon的Dynamo云存储系统中,就应用NWR来控制一致性。让我们先来看看这三个字母的含义:N:同一份数据的Replica的份数W:是更新一个数据对象的时候需要确保成功更新的份数R: 读取一个数据需要读取的Replica的份数NWR值的不同组合会产生不同的一致性效果,当W+R>N的时候,整个系统对于客户...
2016-01-07 10:20:13
518
原创 lua
1、网络允许的情况下,可以利用自身curl下载器下载curl -R -O http://www.lua.org/ftp/lua-5.3.2.tar.gz或者直接到http://www.lua.org/ftp/下载2、tar zxf lua-5.3.2.tar.gz3、cd lua-5.3.24、make linux test5、make install(*******)...
2015-12-25 10:54:55
79
原创 nginx tcp的使用
安装说明系统环境:CentOS-6.7软件:nginx-1.9.9.tar.gz安装方式:源码编译安装 安装位置:/usr/local/nginx 下载地址:http://nginx.org/en/download.html安装依赖yum install gcc-c++yum -y install zlib zlib-devel openssl openssl--d...
2015-12-24 12:39:51
256
原创 jstorm安装
关于jstorm单机安装可以参看如下http://hexiaoqiao.sinaapp.com/2014/06/jstorm%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA/https://github.com/alibaba/jstorm/wiki/%E5%A6%82%E4%BD%95%E5%AE%89%E8%A3%85这些是本人在安装过程具体的安装过程以及问...
2015-12-03 19:43:07
203
原创 HBase系列四--计数器
一、计数器 在hbase中,由于针对同一行的记录进行操作时,已经提供行级锁;这样的功能会带来大量资源竞争的后果;那么在hbase里面提供一个将列当做计数器的功能 1、计数器 计数器默认不用进行初始化默认值即为0;在计数器进行具体操作时可以添加对应的值;若是用户直接操作则需要使用 Bytes.toLong()--->解码 Bytes.toB...
2015-12-02 10:58:39
397
原创 HBase系列三
关于spring-hbase中scan + filter的操作;通过HbaseTemplate + HTableInterface完成如下操作一、测试源码@Componentpublic class HbaseUtil implements InitializingBean { private String tableName = "users"; // table byte...
2015-12-01 16:51:18
121
原创 HBase系列一
关于hbase 一、客户端类 HTable 和 HTablePool: (1)、HTable用于一个线程创建一个HTable;最好只创建唯一一个HTable对象;因为每次创建HTable实例都需要付出代价;检查meta.表对应的表是否存在,是否可用以及其他 的一些操作;对性能的损耗不可忽视的;同时HBase所有的修改操作都是保证...
2015-11-30 16:17:32
100
原创 spring hadoop系列(六)---HbaseSystemException
一、源码/** * HBase Data Access exception. * @author Costin Leau */@SuppressWarnings("serial")public class HbaseSystemException extends UncategorizedDataAccessException { public HbaseSyste...
2015-11-30 09:13:42
323
原创 spring hadoop系列(五)---spring hadoop hbase之HbaseSynchronizationManager
一、源码如下/** * Synchronization manager handling the tracking of Hbase resources (specifically tables). Used either manually or through {@link HbaseInterceptor} to bind a table to the thread. * Each...
2015-11-27 18:16:39
132
原创 spring hadoop系列(四) --- spring hadoop hbase
一、源码分析/** * * hbase 采用aop的拦截器,将hbase table绑定对应的线程在被调用之前; * 一旦对应的调用方法获取结果之后将关闭并移除 * 如果有一个已经绑定的table(来自前面的call或者transaction), * 那么 interceptor 只是简单的操作 * 同时interceptor经常与HbaseSynchronizati...
2015-11-27 17:27:39
98
原创 spring hadoop 系列(三)--spring hadoop hbase HbaseConfigurationFactoryBean
一、源码分析/** * 设定Hbase指定Configuration;在默认情况是删除当前配置管理的连接信息 * 有参数deleteConnection 控制 */public class HbaseConfigurationFactoryBean implements InitializingBean, DisposableBean, FactoryBean { ...
2015-11-27 16:28:26
230
原创 spring hadoop 系列(二)
一、源码分析/** * * HbaseAccessor作为HbaseTemplate以及HbaseIntercepter的基类;同时也定义 * 公共的HBase Configuration 以及 HTableInterfaceFactory * */public abstract class HbaseAccessor implements Initializin...
2015-11-27 15:26:46
108
原创 spring-hadoop系列源码(一)
源码如下:/** * HTableInterface工具类 * 用于create table 和 release table * @since 0.21.0 */@InterfaceAudience.Public@InterfaceStability.Stablepublic interface HTableInterfaceFactory { /**...
2015-11-27 14:39:45
246
原创 spring hadoop之batch处理(二)
一、测试public class MrBatchApp { // Log private static final Log log = LogFactory.getLog(MrBatchApp.class); // public static void main(String[] args) throws JobParametersInval...
2015-11-24 18:10:45
305
原创 spring hadoop之mapreduce batch
一、测试// 定义hadoop configurationConfiguration conf = new Configuration();// 指定hdfs上获取分析文件目录和输出分析结果目录// 格式:hdfs://10.33.96.241:8020/user/tweets/input// hdfs://10.33.96.241:8020/user/tweets...
2015-11-24 15:51:39
193
原创 spring hadoop
一、源码// 如下代码实现 读取指定hdfs路径下tmp文件夹下面所有的文件(包括子文件)@SpringBootApplicationpublic class DemoApplication implements CommandLineRunner { // 构建FsShell对象 @Autowired private FsShell shell; ...
2015-11-24 10:19:08
101
原创 centos6.7 64位 伪分布 安装 cdh5.4.8 + jdk 8
一、安装JAVA# 创建JAVA的目录mkdir -p /usr/java cd /usr/java#将下载的rpm包移到此目录#执行安装rpm -ivh jdk-8u65-linux-x64.rpm (对应你的rpm)#增加环境变量vim /etc/profile修改profile 最后面加入export JAVA_HOME=/usr/java/jdk1...
2015-11-09 00:37:17
126
原创 了解 Nginx 的 7 个原因(转)
Nginx (“engine x”)是一个高性能的HTTP和反向代理服务器,也是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器1 负载均衡实现可扩展的浏量管理通过Nginx实现负载均衡将给你所需要的控制权,用来管理并扩展您的Web和移动应用。它提供了一个完整的基于软件应用的分发平台的解决方案,只消耗一小部分的硬件来平衡HTTP和TCP应用的负载...
2015-11-08 21:13:46
119
原创 spring hadoop系列二(MapReduce and Distributed cache)
关于MapReduce and Distributed Cache一、创建Hadoop Job在前面的系列一里面我们已经知道如何配置hadoop了,在完成配置工作之后,我们如何提交job,并运行这些job将是接下来我们讲述的使用SHDP创建job是相当简单的<hdp:job id="mr-job" 指定jod id ...
2015-11-06 15:22:50
114
原创 spring hadoop系列一
一、要求1、对于spring hadoop2.1构建在jdk7上面(最低要求:jdk6及其以上),hadoop 2.6 默认构建在spring framework 4.1上。2、spring for Apache hadoop2.1支持如下hadoop版本 Apache Hadoop 2.4.1 Apache Hadoop 2.5.2 Apache Hadoop 2...
2015-11-05 23:18:37
223
原创 数据库深度解析 | 从NoSQL历史看未来(转)
http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=209738332&idx=1&sn=de7b83e00b80a487a02072d5bb521838&scene=20#rd
2015-11-04 23:40:00
107
原创 Liquibase
一、LiquibaseLiquibase是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制。Liquibase具备如下特性: * 不依赖于特定的数据库,目前支持包括Oracle/Sql Server/DB2/MySql/Sybase/PostgreSQL/Caché等12种 数据库,这样在数据...
2015-10-25 16:57:24
292
原创 Hadoop+Hbase+Zookeeper(独立)环境搭建 ---(转)
准备的机器信息:192.168.247.128 dengnn(master) 192.168.247.129 dengdn1 (slave1) 192.168.247.130 dengdn2 (slave2)集群搭建 参考资料 cloudera hadoop 搭建http://heylinux.com/archives/1980.htmlhttp://www.ibm.com/deve...
2015-10-23 08:34:48
139
原创 hadoop2.6.1单机安装
centos6.6安装hadoop2.6.1操作步骤 大致如下1.安装JDK1.1下载上传jdk-7u79-linux-i586.rpm1.2安装rpm -ivh jdk-7u79-linux-i586.rpm1.3将java添加到环境变量中vim /etc/profile#在文件最后添加export JAVA_HOME=/usr/java/jdk1.7...
2015-10-22 17:12:31
120
原创 mysql linux安装
Linux安装mysql——源码安装1.假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源文件(1)先安装cmake(mysql5.5以后是通过cmake来编译的)[root@ rhel5 local]#tar -zxv -f cmake-2.8.4.tar.gz[root@ rhel5 local]#cd cmake-2.8.4...
2015-09-23 11:31:17
83
原创 jdk1.7 + ant1.9 + tomcat7 + nutch2.3 + solr5.3 + mysql5.6安装
一、安装jdk 地址:https://www.oracle.com/downloads/index.html 下载:jdk-7u79-linux-x64.gz(根据实际情况下载) 解压:tar -zvxf jdk-7u79-linux-x64.gz 创建目录: mkdir java 将解压文件夹移动指定目录下: mv jdk1.7.0_79 /java 配置环...
2015-09-22 18:07:39
156
原创 使用消息系统避免分布式事务
首先举个栗子:比如通过支付宝向余额宝转账1000元,这样一种生活中很平凡的事情,却可以引出很多问题:如果系统宕机挂掉,交易没有完成?那么数据就出现了不一致。等等类似的事情,在各类系统中都能找到类似情形。那么也可以换句专业的说法:当一个表update之后,如何保证另外一个与之关联的表也能完成update。1、本地事务: 支付宝账户表:A id uid amount ...
2015-09-22 09:24:16
170
原创 浅谈大数据平台演变(转)
一说到开源大数据处理平台,就不得不说此领域的开山鼻祖Hadoop,它是GFS和MapReduce的开源实现。虽然在此之前有很多类似的分布式存储和计算平台,但真正能实现工业级应用、降低使用门槛、带动业界大规模部署的就是Hadoop。得益于MapReduce框架的易用性和容错性,以及同时包含存储系统和计算系统,使得Hadoop成为大数据处理平台的基石之一。Hadoop能够满足大部分的离线存储和离线...
2015-09-21 22:51:53
137
原创 Hadoop分布式文件系统HDFS
Hadoop分布式文件系统HDFS 是一种被设计运行在任何通用硬件上的分布式文件系统。是一个高度容错性的系统,适合部署在廉价的机器上,能够提供高吞吐量的数据访问,非常适合大规模数据集上的应用。1、分布式文件系统 N台计算机联网协同工作,就像单台系统一样解决问题,也就是说它们可以横跨多台计算机的存储系统,存储在分布式系统上的数据自动分布在不同的节点上。分布式文件系统在大数据时代...
2015-09-16 07:03:56
118
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人