- 博客(46)
- 收藏
- 关注
原创 转载:分布式系统互斥性与幂等性实现及原理分析
转载:http://blog.csdn.net/shukebai/article/details/60955497随着互联网信息技术的飞速发展,数据量不断增大,业务逻辑也日趋复杂,对系统的高并发访问、海量数据处理的场景也越来越多。如何用较低成本实现系统的高可用、易伸缩、可扩展等目标就显得越发重要。为了解决这一系列问题,系统架构也在不断演进。传统的集中式系统已经逐渐无法满足要求,分布式系统被使用...
2018-02-26 15:02:34 183
原创 Canal相关理解
转载:http://www.importnew.com/25189.html概述canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。起源:早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量...
2017-12-29 16:18:37 231
原创 kettle部署
1.将jmbi sql先上生产环境, 参考附件jmbi.sql2.kettle安装部署选好目标机器,装好jdk1.8 然后登录测试环境192.168.1.142,复制kettle安装文件,job,shell脚本scp -r /d1/usr/kettle root@目标IP:/d1/usr/kettlescp -r /root/.kettle root@目标IP:/root/.k...
2017-12-26 16:04:37 383
原创 crontab定时运行MR不行,手动shell可以执行成功问题排查过程
设置了定时任务,但MR任务没有执行。第一步:手动执行shell脚本, 如果有问题,检查相关设置,如source /etc/profile, 绝对路径之类 这里不是重点, 手动可以执行成功第二步: 检查shell脚本文件格式, 设置测试输出,确保crontab任务调度没有问题, 测试hymtest.sh#!/bin/bashDATE=$(date +%Y%m%d:%H:%M:...
2017-12-26 15:48:34 376
原创 Flume+kafka+Spark Steaming demo2
一,flume配置# Name the components on this agenta1.sources = tailsource-1 a1.sinks = remotesink a1.channels = memoryChnanel-1 # Describe/configure the source a1.sources.tailsource-1.type...
2017-11-22 13:15:34 148
原创 Flume+Kafka+Spark Steaming demo
一.准备flume配置a1.sources = r1a1.sinks = k1a1.channels = c1 a1.sources.r1.type = spooldira1.sources.r1.channels = c1a1.sources.r1.spoolDir = /var/log/testa1.sources.r1.fileHeader = true ...
2017-11-21 15:21:26 206
原创 HBase表导出成HDFS
导出步骤:在old cluster上/opt/cloudera/parcels/CDH/lib/hbase/bin 执行:./hbase org.apache.hadoop.hbase.mapreduce.Export my_user hdfs://new cluster ip:8020/test/my_user 例如:./hbase org.apache.hadoop.hbase.m...
2017-10-19 19:40:44 292
原创 zepplin实战
一句话介绍Zeppelin以笔记(Note)的形式展示的数据可视化工具。一.下载安装启动http://zeppelin.apache.org/download.htmlwget http://mirrors.tuna.tsinghua.edu.cn/apache/zeppelin/zeppelin-0.7.3/zeppelin-0.7.3-bin-all.tgztar ...
2017-10-13 16:10:22 205
原创 Azkaban安装
一.下载https://github.com/azkaban/azkabangit clone https://github.com/azkaban/azkaban.git或wget azkaban.version url二.编译o build Azkaban packages from source, run:./gradlew distTarThe ab...
2017-10-10 18:32:16 134
原创 KYKIN安装
1. Kylin的一些概念No. 关键字 解释1 Kylin 一款基于Hive的开源OLAP工具,我们可以设计Hive表的字段为维度和度量,通过Kylin来构建Cube,Kylin会将Cube结构存储在 HBase 之上,基于Cube我们可以做各种多维分析。参考:https://mp.weixin.qq.com/s/kfFh7I_V5haghV6qUzHtag2 Kylin...
2017-09-30 17:40:03 331
原创 Logstash安装部署配置
为了实现各业务平台日志信息采集到大数据平台hdfs上。之前的定技术栈是 flume->kafka->storm->hdfs. 其中通过storm需要写代码,稳定性,可扩展性,维护性不好。从kafka到hdfs,有专门的日志工具logstash可以解决这个问题. 目前已经在我们的开发环境稳定的运行了一个礼拜(http://192.168.23.31:50070/explore...
2017-04-28 10:24:10 222
原创 HBASE API
package org.jumore.test;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfig...
2017-04-18 11:01:41 158
原创 Ambari卸载shell
#!/bin/bash# Program:# uninstall ambari automatic# History:# 2014/01/13 - Ivan - 2862099249@qq.com - First releasePATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/u...
2017-03-28 17:28:33 216
原创 linux ssh 相互密码登录
1.修改集群各机器名称vim /etc/sysconfig/networkNETWORKING=yesHOSTNAME=server012.修改hosts,机器名和IP地址映射172.18.203.21 server01172.18.203.22 server02172.18.203.23 server03172.18.203.24 server...
2017-02-22 13:40:03 136
原创 Kettle Linux 安装部署
一.安装JDK环境:根据自己的linux系统选择相应的版本,比如我的centos7是x64的,所以我选择jdk-8u74-linux-x64.tar.gz下载下载下来以后,我们将其移到我们创建的一个目录中,存放tar包的目录为/usr/local/src/jdk,然后解压:tar -zxf /usr/local/src/jdk/jdk-7u65-linux-x64.tar.gz编辑 v...
2017-02-15 17:20:57 417
原创 hadoop环境搭建
192.168.23.231 server1192.168.23.234 server2192.168.23.239 server3http://mirrors.163.com/centos/6/isos/关闭防火墙service iptables stopchkconfig iptables off停闭selinuxvim /etc/sysconf...
2017-01-23 17:31:33 90
原创 环境安装
物理机部署分配3台物理机上部署 Zookeeper 3个,Flume 3个,Kafka 3个 (假定3台物理机IP地址分别为: IP1, IP2, IP3)3台物理界上部署 ES 3个, Kibana 1个 (假定3台物理机IP地址分别为: IP4, IP5, IP6)另外,请修改各服务器的文件句柄数限制,比如从默认的 1024 修改为 10240 !!1. Zookeep...
2017-01-17 16:26:29 252
原创 Storm demo
public class SentenceSpout extends BaseRichSpout{ private static final long serialVersionUID = 1L; /** * This output collector exposes the API for emitting tuples from...
2016-12-19 15:50:02 102
原创 一个shell脚本例子
#!/bin/shjarlist=$(ls /home/hp/servers/apache-flume-1.5.2-bin/lib/*.jar)CLASSPATH=/home/hp/projects/flume-test/target/flume-test-1.0.jarfor jar in ${jarlist}do CLASSPATH=${CLASSPATH}:${ja...
2016-09-23 15:23:37 148
原创 获取URL
1、request.getRequestURL()返回的是完整的url,包括Http协议,端口号,servlet名字和映射路径,但它不包含请求参数。2、request.getRequestURI()得到的是request URL的部分值,并且web容器没有decode过的3、request.getContextPath() 返回 the context of the...
2016-09-14 11:26:34 165
原创 运行Hadoop jar 第三方jar包依赖
将自己编写的MapReduce程序打包成jar后,在运行 hadoop jar 命令时,如果要依赖第三方jar包,提示 ClassNotFoundException ....解决方法:1.新建一个lib文件夹,将需要依赖的第三方jar包放到lib文件夹中;2.将MapReduce程序打包后的jar包(如:jmdata-operatives-mrs-access.jar)用W...
2016-08-22 13:47:31 900
原创 windows10下运行MR错误
当在windows下运行MR程序时,会报各种错误。现把这次碰到的问题记下来。1. 需要在HADOOP_HOME/bin下安装winutils, 2.winutils.exe双击运行没有报***.dll 缺失的错误,否则要下载DirectX修复工具(http://www.downxia.com/downinfo/21233.html, http://js.downxia.com/down/D...
2016-07-05 13:45:10 363
原创 HTML5校验
HTML5为表单输入校验提供了方便,省去很多js的前段检查。典型例子: patten常用的正则表达式验证数字的正则表达式集 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d{m,n}$ 验证零和非零开头的数字:^(0|[1-9][0-9]*)$ 验证有两位小数的正实...
2016-06-28 14:02:57 268
原创 HBase问题
1.java.net.UnknownHostException: unknown host:xxxx异常解决办法windows下开发HBase应用程序,HBase部署在linux环境中,在运行调试时可能会出现无法找到主机,类似异常信息如下:java.net.UnknownHostException: unknown host: jmnb解决办法如下:在C:\WINDOWS\...
2016-06-16 17:02:42 135
原创 从0到1的电商架构应该怎么做?
关于如何架构一个电商,虽然作为一个开发人员,各种技术栈都有所了解,但如何运营一个产品没有宏观的概念。 特别是缺乏硬件设施,负载均衡,CDN,运维之类的直接经验。转载一篇博文:https://yq.aliyun.com/articles/54414?spm=5176.7910928.318187.4.djgTe4问题提出今天在电商金融架构群里,来自蚂蚁金服的于总抛出了一个问题:“完全...
2016-06-13 11:15:33 548
原创 关于性能优化
运动员追求更高,更快,更强,那么程序员追求更快,更短,更少。性能优化有很多种途径和层次。看到别人关于性能优化的总结总是下意识的打开看看,虽然所面对的业务场景都不一样,但基本路数都类似, 定位性能瓶颈,提出并实现解决方案,验证优化成果。现摘录博客:https://yq.aliyun.com/articles/54004?&utm_campaign=sys&utm_medium=market&ut...
2016-06-12 14:42:53 120
原创 Servlet、Filter、Listener、Interceptor
转载一篇博客:关于Filter与Interceptor的区别http://blog.csdn.net/zuoluoboy/article/details/19750699首先,JSP/Servlet规范中定义了Servlet、Filter、Listener这三种角色,并没有定义Interceptor这个角色,Interceptor是某些MVC框架中的角色,比如Struts2中,Inte...
2016-06-07 16:26:26 102
原创 Struts2和SpringMVC处理过程
Struts2和SpringMVC处理过程甚为经典,经常被提及。现整理一下。Struts2的工作机制一个请求在Struts2框架中的处理大概分为以下几个步骤:1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求;2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2...
2016-06-07 15:52:07 208
原创 Dubbo学习
Dubbo,音通Double,是阿里开源的一个分布式服务框架。之前从事过SOA开发,SOA协议中立,松散耦合,业务复用的优点,但也有缺陷,如缺乏监控量化,不能消息推送。引用一篇博客,来学习Dubbo。原地址:http://www.cnblogs.com/Javame/p/3632473.html1. Dubbo是什么?Dubbo是一个分布式服务框架,致力于提供高性能和透明化...
2016-06-07 10:48:56 107
原创 Redis消息发布订阅
想找到一个消息推送的方案,隐约觉得Pub/Sub是一种解决问题的途径,但没在项目实践中用到。最新在了解学习阿里云,里面有demo。摘录记之。消息的发布与订阅场景介绍ApsaraDB for Redis也提供了与Redis相同的消息发布(pub)与订阅(sub)功能。即一个client发布消息,其他多个client订阅消息。需要注意的是,ApsaraDB for Re...
2016-06-03 16:08:26 133
原创 一个程序员的自我修养
转载一篇博客,深以为然。技术只是一个工具并不能让你马上称为生产力。更重要的是掌握工具的同时并且有意识,方法论,并利用工具做正确的事。Aaron Stannard是新创公司MarkedUp的CEO,他最近花费大量时间雇佣、评估很多不同的程序员,并和他们一起协作。在这个过程中他发现并总结了十种程序员无法意识到自己潜力的原因,意在让更多程序员发掘出自己的潜力,从而成为强大的程序员。1. ...
2016-06-03 13:59:16 168
原创 关于软件开发“隐喻”
作为软件开发人员不可避免的涉足软件过程管理,无论是管理者还是实施者都是过程参与者。当我们要向外行解释软件开发是怎么回事,通常来通过一个比方比如说建房子,这就是“隐喻”,当我们工作中遇到问题的时候,怎么深刻地正确地来理解和认识我们软件工作的本身,你潜意识里认为做开发应该这样,实际上做的事情不符合你的预想,这就是痛苦的根源。有篇文章“软件开发不可与建筑类比”来表明一个不恰当的软件开发隐喻。 值...
2016-06-03 11:19:43 508
原创 如何应用开源项目
说到项目中使用开源项目或第三方解决方案。决策层有时不考虑业务特点,自身熟悉程度而是排除竞争对手,凸显公司能力来选择方案。但作为具体开发实施人员是要有客观的看法和声音, 转载一下博客,深以为然。https://yq.aliyun.com/articles/6042?&utm_campaign=sys&utm_medium=market&utm_source=edm_email&msctype...
2016-06-02 11:42:36 162
原创 短信发送例子
时至今日,短信验证提醒已经司空见惯。一个小例子,记录一下公司集成短信的过程,其实这些demo一般短信服务商都会提供。作为一个常见应用例子,记之。[code="java"]package com.jq.test;import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.IOExce...
2016-06-01 13:55:51 186
原创 Java基础
见识有高低,知识无贵贱。转载一下别人的博客,朝花夕拾之意。1、类和对象 Java万物皆是对象,旨在将世界中的概念模拟到计算机程序中,它将现实世界中的所有事物视为对象。对象的描述是通过特征和行为来描述的,特征是对事物的静态描述,行为是对事务的动态描述。对应到程序中就是特征就是属性(成员变量)和行为就是方法。多个对象具有的相同特征和行为,我们将这样的特征和行为抽象出来,形成一个...
2016-05-27 13:37:01 71
原创 项目管理回顾
工作十几年来,被人管过也管过人,接触过不同的项目类型,也和不同的客户打过交道。 工作不外是“人”和“事”。有人的地方,就有事情,有事情的地方,就有管理。人,事都在变化,管理有需因人而定,因事而变。结果最终有成,有败。也曾学过一段管理理论,但真遇到事情,理论只能增加自己的信心和开拓自己的思维。运用之妙,存乎一心,和行军打仗一样。最后化为自己的经验和直觉。 理论隐约只记得几个词了,重新摘记之。沙场百战...
2016-05-27 11:00:32 178
原创 通用责任分配软件模式, 设计原则,设计模式
说起软件设计其实是一个高度,深邃的事情。能登高一览纵山小,俯仰天地那是大师的境界。我等则在路上。。。一个复杂的设计,是由具体的类和对象组成。先有类,才有类与类之间的关系。GRASP就是如何设计指导我们设计好类的原则。1.Information Expert (信息专家)信息专家模式是面向对象设计的最基本原则,是我们平时使用最多,应该跟我们的思想融为一体的原则。也就是说,我们设计...
2016-05-26 11:34:34 410
原创 控制圈复杂度的10种重构技术总结
一、Composing Methods(重新组织你的函数) 1.Extract Method(提炼函数) 分为不同的step步骤进行处理,主干逻辑方法控制在7个以内 将代码放进一个独立函数中,并让函数名称解释该函数的用途 2.Substitute Algorithm(替换你的算法) 将函数本体替换为另一个更清晰、简化的算法 ,如多值匹配candidat...
2016-05-25 16:01:18 639
原创 MINA对接某道闸例子
公司需要和道闸对接,道闸有个模拟客户端端定时发送数据,服务端将道闸产生的socket报文进行解析,报文里面有文案中规定好的数据含义。某种意义上讲, socket报文也是处理异构跨平台数据交换的利器。基于TCP/UDP协议,数据格式为字符串,这也跨语言平台无差别交换的原因。扩展一下,有类似的框架Netty,可以参考MINA与Netty的对比文章:http://ifeve.com/netty-...
2016-05-25 14:33:50 789
原创 关于大数据这些工具框架
接触大数据的这两年来,总是被各种琳琅满目的框架工具目不暇接。在这个大数据这个生态圈里,具体的框架工具都有自己的应用场景或不足之处,用来解决特定的问题。技术选型的时候要结合业务特点。没有包治百病,一劳永逸的方案。1.Hadoop,大数据的鼻祖和基础。 解决存储(HDFS)和计算(MapReduce)。数据运行在磁盘上决定适合批处理任务,实时性低的场景。 NameNode和DataNode, ...
2016-05-24 14:56:49 168
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人