自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lavimer

深度!广度!高度~!!!

原创 Address family not supported by protocol family: connect

问题:Address family not supported by protocol family: connect15/05/09 10:44:22 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=localhost:2000/storm sessionTimeout=20000 watch

2015-05-09 10:51:16 5431

原创 Connection reset by peer

问题:ERROR Closing socket for /120.24.169.139 because of error (kafka.network.Processor)  Connection reset by peer   [2015-05-08 13:17:52,804] ERROR Closing socket for /120.24.169.139 because of e

2015-05-08 13:16:49 4690 1

原创 Unable to read additional data from client sessionid 0x0, likely client has closed socket

问题:Unable to read additional data from client sessionid 0x0, likely client has closed socket[2014-11-13 10:28:47,989] INFO Accepted socket connection from /192.168.50.33:2676 (org.apache.zookeep

2015-05-08 10:57:31 33875 4

原创 joptsimple.UnrecognizedOptionException: 'broker-list120.24.66.173:9092' is not a recognized option

问题:Exception in thread "main" joptsimple.UnrecognizedOptionException: 'broker-list120.24.66.173:9092,120.24.169.139:9092,120.24.161.107:9092' is not a recognized optionException in thread "main" j

2015-05-08 10:51:20 10932

原创 Not a host:port pair: �

问题:java.lang.IllegalArgumentException: Not a host:port pair: �24572@liaozhongmin3liaozhongmin3,60020,1430896319612 at org.apache.hadoop.hbase.HServerAddress.(HServerAddress.java:60) at org.apache

2015-05-07 10:18:59 1481

转载 Storm实时日志分析实战

项目背景最近公司做一个项目,用户需要对网站访问者的广告点击/浏览记录进行实时统计分析,分析结果存入数据库,输出报表。我们采用了Kafka+Storm+Zookeeper的解决方案。之前没有接触过,经过一段时间的研究,最终完成了项目。接下来的内容我将介绍我们的解决方案。供大家参考。我们的系统结构如下:总体结构介绍业务系统把点击/浏览广告业务日志统一按规定的格式发送到Kafka集群

2015-04-29 19:11:43 6392

转载 Kafka背景及架构介绍

概述Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。背景介绍Kafka是一个消息系统,原本开发自LinkedIn,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipeli

2015-04-27 16:16:30 999

原创 Storm可靠的Bolt与不可靠的Bolt

Storm可以保证每个Spout发射的消息会被所有的Bolt完全处理。这是设计时要考虑的因素,这意味着程序员将决定Bolt是否需要保证消息处理。可靠Bolt的execute()方法如下:@Override public void execute(Tuple input) { String sentence = input.getString(0); for (String wor

2015-04-26 19:09:46 3089

原创 Storm 可靠的与不可靠的消息

设计拓扑时,一件很重要的事情就是要考虑消息的可靠性。如果消息不能被处理而丢失是很严重的问题,我们需要决定如何处理丢失的消息,如何与拓扑作为一个整体处理。例如,处理银行存款的时候,事物一致性是很重要的,不能失去任何消息,任何消息都要被处理。在Storm中,根据每个拓扑的需要,保证消息可靠性,这涉及一个平衡:一个可靠的拓扑必须处理丢失的消息,这就需要更多的资源;一个不可靠的拓扑可能会丢失一些消息,但不

2015-04-26 16:17:52 1640

原创 Storm命令详解

在Linux终端直接输入storm,不带任何参数信息,或者输入storm help,可以查看storm命令行客户端(Command line client)提供的帮助信息。Storm 0.9.0.1版本在Linux终端直接输入storm后的输出内容如下:Commands:activateclasspathdeactivatedev-zookeeperdrpchelpjarkil

2015-04-26 15:08:08 12063

原创 Storm并发度详解

工作进程(Worker Process)Worker是Spout/Bolt中运行具体处理逻辑的进程。拓扑跨一个或多个Worker进程执行。每个Worker进程是一个物理的JVM和拓扑执行所有任务的一个子集。例如,如果合并并行度的拓扑是300,已经分配50个Worker,然后每个Worker将执行6个任务,Storm会尝试在所有Worker上均匀的发布任务。执行器(Executor)

2015-04-26 10:15:41 4004

原创 Storm容错机制

任务级失败1.Bolt任务crash引起的消息未被应答。此时,acker中所有与此Bolt任务关联的消息都会因为超时而失败,对应的Spout的fail方法将被调用。2.acker任务失败。如果acker任务本身失败了,它在失败之前持有的所有消息都将超时而失败。Spout的fail方法将被调用。3.Spout任务失败。在这种情况下,与Spout任务对接的外部设备(如MQ)负责消息的完整性

2015-04-25 19:47:18 3370

原创 Storm配置详解

Storm配置类型Storm有大量的配置,可以调整Nimbus、Supervisor、拓扑运行的参数,大部分是可以进行调节的,但是也有少部分配置是不能修改的系统配置。每个配置会有一个默认值,该值定义在Storm代码库的defaults.yaml文件中。在Nimbus和Supervisor的类路径中定义一个storm.yaml文件,可以覆盖这些配置值。使用StormSubmitter提交拓扑的时

2015-04-25 18:32:29 5547

原创 Linux下使用yum安装软件时出现HTTP Error 404: NOT FOUND错误解决方案

问题:使用yum安装软件时出现如下错误:http://mirrors.163.com/centos/5/os/i386/repodata/repomd.xml: [Errno 14] HTTP Error 404: Not FoundTrying other mirror.原因:yum源失效。解决方案:执行如下命令,更新yum源:#yum clean all#yum

2015-04-16 17:44:57 13054 2

原创 Storm集群搭建

一:实验环境jzmq-master——java与C++通信的桥梁,有了它,就可以使用zeromq了。zeromq-2.7.1——号称史上最牛逼的消息队列storm-0.8.2二:安装步骤1.编译安装zeromq,把zeromq-2.1.7.tar.gz上传到Linux系统,执行以下命令:#tar -xzf zeromq-2.1.7.tar.gz#cd zeromq

2015-04-16 16:53:17 1027

原创 Linux配置静态IP

Linux下配置静态IP地址,编辑/etc/sysconfig/network-scripts/ifcfg-eth0添加内容。vim /etc/sysconfig/network-scripts/ifcfg-eth0内容如下:#设备DEVICE=eth0#配置静态IPBOOTPROTO=static#广播地址BROADCAST=192.168.0.255#IPV4地址IP

2015-04-14 22:34:21 847

原创 MapReduce 表连接之Reduce端Join

一:背景Reduce端连接比Map端连接更为普遍,因为输入的数据不需要特定的结构,但是效率比较低,因为所有数据都必须经过Shuffle过程。二:技术实现基本思路(1):Map端读取所有的文件,并在输出的内容里加上标示,代表数据是从哪个文件里来的。(2):在reduce处理函数中,按照标识对数据进行处理。(3):然后根据Key去jo

2015-04-10 13:59:58 945

原创 MapReduce排序

一:背景数据排序是许多实际任务执行时需要完成的第一项工作,比如给销售额进行排名、求top N等操作都需要用到排序,使用MapReduce对数据进行简单排序思路是非常简单的。因为MapReduce本身就是支持排序的,MapReduce默认是对Key进行排序,我们可以将要排序的数据作为key进行输出就自动完成排序咯。二:技术实现#需求:现有如下数据,按从小到大进行排列123

2015-04-10 13:34:29 1949

原创 链式MapReduce:ChainMapper和ChainReducer

一:背景Hadoop2.0开始MapReduce作业支持链式处理,类似于富士康生产苹果手机的流水线,每一个阶段都有特定的任务要处理,比如提供原配件——>组装——打印出厂日期,等等。通过这样进一步的分工,从而提高了生成效率,我们Hadoop中的链式MapReduce也是如此,这些Mapper可以像水流一样,一级一级向后处理,有点类似于Linux的管道。前一个Mapper的输出结果直接可以作为下一

2015-04-10 10:47:44 2760 1

原创 HBase RowKey的设计原则

HBase是三维有序存储的,三维指的是:RowKey(行健)、column key(columnFamily和qualifier)、TimeStamp(时间戳),通过这三个维度我们可以对HBase中的数据进行快速定位。下面我们主要来讨论RowKey的设计原则:HBase中RowKey可以唯一标识一条记录,在HBase查询的时候,我们有两种方式,第一种是通过get()方法指定RowKey条件后获

2015-04-08 15:48:21 19798 2

转载 TCP/IP 三次握手与四次挥手

一、TCP报文格式TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:上图中有几个字段需要重点介绍下:(1) 序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。(2) 确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。(3) 标志位:共6个,

2015-04-07 09:14:22 717

转载 MapReduce过程详解

Hadoop越来越火,围绕Hadoop的子项目更是增长迅速,光Apache官网上列出来的就十几个,但是万变不离其宗,大部分项目都是基于Hadoop Common。MapReduce更是核心中的核心。那么到底什么是MapReduce,它具体是怎么工作的呢?关于它的原理,说简单也简单,随便画个图喷一下Map和Reduce两个阶段似乎就完了。但其实这里面还包含了很多的子阶段,尤其是Shuffle

2015-04-04 10:57:02 1335 1

转载 Linux SSH免密码登录

Hadoop中有些管理脚本需要用到SSH连接,这些脚本是自动运行的,我们显然不想每次运行这些脚本都输入密码。但是反过来,我们也不希望没有授权的用户可以不用密码登录SSH。为此,我们需要设置一种安全又便捷的免密码登录——在登录了一台机器之后可以不要密码登录别的机器(举例来说,在master上的grid用户只要在master上验证就允许它访问slave1、slave2了)。原理为了

2015-04-01 10:50:53 834

转载 Linux SSH免密码登录

Hadoop中有些管理脚本需要用到SSH连接,这些脚本是自动运行的,我们显然不想每次运行这些脚本都输入密码。但是反过来,我们也不希望没有授权的用户可以不用密码登录SSH。为此,我们需要设置一种安全又便捷的免密码登录——在登录了一台机器之后可以不要密码登录别的机器(举例来说,在master上的grid用户只要在master上验证就允许它访问slave1、slave2了)。原理为了

2015-04-01 10:09:12 842

转载 Java中只有值传递没有引用传递

Java中的参数传递机制一直以来大家都争论不休,究竟是"值传递"还是"引用传递",争论的双方各执一词,互不相让。不但"菜鸟"们一头雾水,一些"老鸟"们也只知道结果却说不出所以然来。我觉得无论是什么语言,要讨论参数传递方式,就得从内存模型说起。这里的内存模型设计到两种类型的内存:栈内存(stack)和堆内存(heap)。基本类型作为作为参数传递时,传递的是这个值的拷贝。无论你怎么改变这个拷贝,原值是

2015-03-28 17:39:09 651

转载 国内第一篇详细讲解Hadoop2的automatic HA+Federation+Yarn配置的教程

前言hadoop是分布式文件系统,运行在Linux之上,配置起来相对复杂。对于Hadoop1,很多同学就因为不能搭建正确的运行环境,导致学习兴趣锐减。不过,我有免费的学习视频,请点击这里。hadoop2出来后,解决了hadoop1的几个固有缺陷,比如单点故障、资源利用率低、支持作业类型少等问题,结构发生了很大变化,是hadoop未来使用的一个趋势。当然配置也更加复杂,网上也没有一篇详细的教

2015-03-27 19:56:52 1229

转载 国内最全最详细的Hadoop2.2.0集群的HA高可靠的最简单配置

简介hadoop中的NameNode好比是人的心脏,非常重要,绝对不可以停止工作。在Hadoop1时代,只有一个NameNode。如果该NameNode数据丢失或者不能工作,那么整个集群就不能恢复了。这是Hadoop1中的单点问题,也是Hadoop1不可靠的表现,如下图所示。这个问题在hadoop2.x中得到了解决。Hadoop2.2.0中HDFS的高可靠指的是可以同时启动2个Na

2015-03-27 13:56:47 1210

转载 Hadoop2.x的HA介绍

这篇文章主要介绍的是Hadoop2.0的HA(High Avalability 高可用性),在介绍hadoop2.0的HA配置之前,本文先介绍hadoop2.0 HA的基本原理和2种方式。1.概述在Hadoop2.0之前,NameNode只有一个,存在单点问题(虽然Hadoop1.0有SecondaryNameNode,checkPointNode、buckcupnode这些,但是单点问题

2015-03-27 10:50:47 904

转载 Java线程池使用说明

一 简介线程的使用在java中占用及其重要的地位,在JDK1.4及其之前的JDK版本中,关于线程池的使用是及其简陋的。在JDK1.5之后这一情况有了很大的改观。JDK1.5之后加入了java.util.concurrent包,这个包中主要介绍了Java中线程及线程池的使用。为我们在开发中处理线程池的问题提供了非常大的帮助。二 线程池线程池的作用:线程池的作用就是限制系统中执

2015-03-25 15:39:26 438

原创 Hadoop2.5.2 Eclipse插件安装及相关问题

资源下载1.下载Hadoop-2.5.2.tar.gz http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.5.2/hadoop-2.5.2.tar.gz2.下载hadoop2.5.2-eclipse-plugin http://download.csdn.net/detail/lzm1340458776/85195153.

2015-03-20 22:02:54 1103

转载 解析Hadoop新一代MapReduce框架Yarn

背景Yarn是一个分布式的资源管理系统,用以提高分布式的集群环境下的资源利用率,这些资源包括内存、IO、网络、磁盘等等。其产生的原因是为了解决原MapReduce框架的不足。最初MapReduce的committer们还可以周期性的在已有的代码上进行修改,可是随着代码的增加以及原MapReduce框架设计的不足,在原MapReduce框架上进行修改变得原来越困难,所以MapReduce的com

2015-03-17 15:21:34 763

转载 Hadoop新MapReduce框架Yarn详解

简介本文介绍了Hadoop自0.23.0版本后新的MapReduce框架(Yarn)原理,优势,运行机制和配置方法等,着重介绍新的yarn框架相对于原框架的差异及改进,并通过Demo示例详细介绍了在新的Yarn框架下搭建和开发Hadoop程序的方法。读者通过本文中新旧Hadoop MapReduce框架的对比,更深刻理解新的yarn框架技术与那里和设计思想,文中的Demo代码经过微小修改既可用

2015-03-17 09:40:29 1524

转载 Linux sort,uniq,cut,wc命令详解

Sortsort命令对File参数指定的文件中的行排序,并将结果写到标准输出。如果File参数指定多个文件,那么sort命令将这些写文件连接起来,并当作一个文件进行排序。sort语法[root@www ~]# sort [-fbMnrtuk] [file or stdin]选项与参数:-f :忽略大小写的差异,例如 A 与 a 视为编码相同;-b :忽略最前面的空格符部分;

2015-03-11 14:16:41 852

转载 Linux命令中使用正则表达式

在使用grep、awk和sed命令时,需要使用正则表达式。这里说一下正则表达式基本的应用:^只匹配行首$只匹配行尾*一个单字符后紧跟*,匹配0个或多个此单字符[]匹配[]内字符,可以是一个单字符,也可以是字符序列。可以使用 - 表示[]内字符序列范围,如用[1-5]代替[12345]

2015-03-10 13:38:27 1014

转载 JVM GC总结

一:Java内存区的简单介绍1.堆(Heap)JVM初始分配的内存由-Xms指定,默认是物理内存的1/64。JVM最大分批额的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制,可以由-XX:MinHeapFreeRatio=参数,来指定。默认空余堆内存小于70%时,JVM会减少堆直到-Xms的最小限制,可以由-XX:

2015-03-10 09:33:01 646

转载 Linux Sed命令详解

Sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送完屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或者多个文件、化简对文件的反复操作、编写转换程序等。Sed使用参数

2015-03-09 21:27:32 1216

转载 Linux awk命令详解

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfred Aho 、

2015-03-09 19:42:35 490

转载 JVM参数调优八大技巧

这里和大家分享一下JVM参数调优的八条经验,JVM参数调优,这是很头疼的问题,设置的不好,JVM不断执行FullGC,导致整个系统变得很慢,网站停滞时间能达到10秒以上,相信通过本文的学习你对JVM参数调优有新的认识。实例讲解JVM参数调优的八条经验本文将介绍JVM参数调优,这是很头疼的问题,设置的不好,JVM不断执行FullGC,导致整个系统变得很慢,网站停滞时间能达到10秒以上,这种情

2015-03-09 19:16:32 807

转载 JVM常用参数

JVM中最大堆大小有三方面限制:1.相关操作系统的数据模型(32-bit还是64-bit)限制。2.系统的可用虚拟内存限制。3.系统的可用物理内存限制。注:32-bit的系统一般限制在1.5G~2G;64-bit的 系统对内存无限制。典型设置:-Xmx3550m -Xms3550m -Xmn2g -Xss128k-Xmx3550m:设置JVM最大可用内存为3550M

2015-03-09 15:54:54 1957

转载 JVM组成结构

一:Java技术体系模块图二:JVM内存区域模型1.方法区也称为"永久代"、"非堆",它用于存储虚拟机加载的类信息、常量、静态变量、是各个线程共享的内存区域。默认最小值为16MB,最大值为64MB,可以通过-xx:PermSize和-xx:MaxPermSize参数限制方法区的大小。运行时常量池:是方法区的一部分,Class文件除了有类的版本、字段、方法、接口等描述

2015-03-09 13:32:41 3983

提示
确定要删除当前文章?
取消 删除