摘要: http://blog.csdn.net/wf1982/article/details/6624028 阅读全文
posted @ 2014-01-21 23:03 Brook Legend 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 1、概述Scribe是facebook开源的日志收集系统,可用于搜索引擎中进行大规模日志分析处理。其通常与Hadoop结合使用,scribe用于向HDFS中push日志,而Hadoop通过MapReduce作业进行定期处理,具体可参见日文日志:http://d.hatena.ne.jp/tagomoris/touch/20110202/1296621133其安装非常复杂,主要是因为其依赖的包,需要设置的环境变量非常多,另外,它与Hadoop兼容不好,安装急需要技巧。目前对于Scirbe的安装方法,网上尽管有人介绍,但往往过于粗略,用处不大。本文比较全面的介绍了Scribe的安装方法,方法已经得 阅读全文
posted @ 2014-01-21 23:02 Brook Legend 阅读(440) 评论(0) 推荐(0) 编辑
摘要: 使用HDFS来进行线上应用的文件存储分类:云计算2011-07-06 17:57721人阅读评论(0)收藏举报hadoop任务集群存储数据分析服务器这段时间公司使用的hadoop组件hdfs存储图片经常出现上传超时的问题,经过分析后发现了原因:先说下情况吧,目前公司有一个Namenode,1个secondarynamenode和4个datanode。 应用端通过一个hadoopservice去上传图片,上传是应用直接连hdfs的。service里已经对上传加了锁,这个上传不仅编辑会用,前端的网友也会上传,所以有时并发还是比较大的,上传时没有做分布式锁,所以上传时会将图片全部改名通过时间戳和其他 阅读全文
posted @ 2014-01-21 23:01 Brook Legend 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 1、前言Thrift是一个跨语言的服务部署框架,最初由Facebook于2007年开发,2008年进入Apache开源项目。Thrift通过一个中间语言(IDL, 接口定义语言)来定义RPC的接口和数据类型,然后通过一个编译器生成不同语言的代码(目前支持C++,Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk和OCaml),并由生成的代码负责RPC协议层和传输层的实现。本文组织结构如下:1)引言 2)架构3)支持的数据传输格式、数据传输方式和服务模型 4)Thrift安装 5)利用Thift部署服务2、架构 阅读全文
posted @ 2014-01-21 23:00 Brook Legend 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 一、编写spec脚本由前面的日志了解到,生成rpm除了源码外,最重要的就是懂得编写.spec脚本。rpm建包的原理其实并不复杂,可以理解为按照标准的格式整理一些信息,包括:软件基础信息,以及安装、卸载前后执行的脚本,对源码包解压、打补丁、编译,安装路径和文件等。实际过程中,最关键的地方,是要清楚虚拟路径的位置,以及宏的定义。二、关键字spec脚本包括很多关键字,主要有:引用Name: 软件包的名称,后面可使用%{name}的方式引用Summary: 软件包的内容概要Version: 软件的实际版本号,例如:1.0.1等,后面可使用%{version}引用Release: 发布序列号,例如:1l 阅读全文
posted @ 2014-01-21 23:00 Brook Legend 阅读(1979) 评论(0) 推荐(0) 编辑
摘要: 一 机器192.168.0.203 hd203: hadoop namenode & hbase HMaster192.168.0.204 hd204: hadoop datanode & hbase HRegionServer & zookeeper192.168.0.205 hd205: hadoop datanode & hbase HRegionServer & zookeeper192.168.0.206 hd206: hadoop datanode & hbase HRegionServer & zookeeper192.16 阅读全文
posted @ 2014-01-21 22:59 Brook Legend 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 集群架构方面的问题o memcached是怎么工作的?o memcached最大的优势是什么?o memcached和MySQL的query cache相比,有什么优缺点?o memcached和服务器的local cache(比如PHP的APC、mmap文件等)相比,有什么优缺点?o memcached的cache机制是怎样的?o memcached如何实现冗余机制? �o memcached如何处理容错的?o 如何将memcached中item批量导入导出?o 但是我确实需要把memcached中的item都dump出来,确实需要把数据load到memcached中,怎么办?o memca 阅读全文
posted @ 2014-01-21 22:58 Brook Legend 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 版本历史2011-02-12 17:36:57 完成文章2011-02-23 10:49:12 更新,修正部分文字目前web访问日志为crontab定时清空,而且负载均衡后,访问随机分配到一台服务器。程序出错后需要分析日志时,需要登录几台机器查看,于是想用一台主机作日志主机,负责收集(按时间顺序而不用sort?)、分析日志。下面的是年前安装scribe日志系统的记录。一、软件下载wget http://www.monkey.org/~provos/libevent-1.3.tar.gzwget https://download.github.com/facebook-scribe-2ee14d 阅读全文
posted @ 2014-01-21 22:57 Brook Legend 阅读(521) 评论(0) 推荐(0) 编辑
摘要: inux下进程的最大线程数、进程最大数、进程打开的文件数2008-12-07 23:48========================= 如下转载自这里。linux 系统中单个进程的最大线程数有其最大的限制 PTHREAD_THREADS_MAX这个限制可以在 /usr/include/bits/local_lim.h 中查看对 linuxthreads 这个值一般是 1024,对于 nptl 则没有硬性的限制,仅仅受限于系统的资源这个系统的资源主要就是线程的 stack 所占用的内存,用 ulimit -s 可以查看默认的线程栈大小,一般情况下,这个值是 8M可以写一段简单的代码验证最多可 阅读全文
posted @ 2014-01-21 22:57 Brook Legend 阅读(315) 评论(0) 推荐(0) 编辑
摘要: Facebook 的照片分享很受欢迎,迄今,Facebook 用户已经上传了150亿张照片,加上缩略图,总容量超过1.5PB,而每周新增的照片为2亿2000万张,约25TB,高峰期,Facebook 每秒处理55万张照片,这些数字让如何管理这些数据成为一个巨大的挑战。本文由 Facebook 工程师撰写,讲述了他们是如何管理这些照片的。旧的 NFS 照片架构老的照片系统架构分以下几个层:上传层接收用户上传的照片并保存在 NFS 存储层。照片服务层接收 HTTP 请求并从 NFS 存储层输出照片。NFS存储层建立在商业存储系统之上。因为每张照片都以文件形式单独存储,这样庞大的照片量导致非常庞大的 阅读全文
posted @ 2014-01-21 22:56 Brook Legend 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 通过分析nginx的日志来过滤出访问过于频繁的IP地址,然后添加到nginx的blockip.conf,并重启nginx脚本如下:#!/bin/shnginx_home = /Data/app_1/nginxlog_path = /Data/logs/usr/bin/tail -n50000 $log_path/access.log /|awk ‘$8 ~/aspx/{print $2,$13}’ /|grep -i -v -E “google|yahoo|baidu|msnbot|FeedSky|sogou” /|awk ‘{print $1}’|sort|uniq -c |sort -rn 阅读全文
posted @ 2014-01-21 22:55 Brook Legend 阅读(925) 评论(0) 推荐(0) 编辑
摘要: NameNode启动过程详细剖析NameNode中几个关键的数据结构FSImageNamenode会将HDFS的文件和目录元数据存储在一个叫fsimage的二进制文件中,每次保存fsimage之后到下次保存之间的所有hdfs操作,将会记录在editlog文件中,当editlog达到一定的大小(bytes,由fs.checkpoint.size参数定义)或从上次保存过后一定时间段过后(sec,由fs.checkpoint.period参数定义),namenode会重新将内存中对整个HDFS的目录树和文件元数据刷到fsimage文件中。Namenode就是通过这种方式来保证HDFS中元数据信息的安 阅读全文
posted @ 2014-01-21 22:55 Brook Legend 阅读(533) 评论(0) 推荐(0) 编辑
摘要: 熟悉hadoop作业提交的人,只要明白streaming的参数就可以学会提交了,streaming提交作业比较灵活,支持多种语言,但是streaming有个缺陷就是,其封装的参数涉及到mapreduce类的就会默认其继承自org.apache.hadoop.mapred包中的类,因此继承自mapreduce包中的类不可用,但是有一个方法可以解决这个问题,就是将参数,通过-jobconf prop=value 的方式传进去。 这里的prop的名字必须是hadoop job file中那个名字。具体查看源代码。 下面一片文章很好的展示了 stream 提交 python和c语言写的作业,可作为初学 阅读全文
posted @ 2014-01-21 22:55 Brook Legend 阅读(383) 评论(0) 推荐(0) 编辑
摘要: namenode存储的数据:主控服务器主要有三类数据:文件系统的目录结构数据,各个文件的分块信息,数据块的位置信息(就数据块放置在哪些数据服务器上...)。在GFS和HDFS的架构中,只有文件的目录结构和分块信息才会被持久化到本地磁盘上,而数据块的位置信息则是通过动态汇总过来的,仅仅存活在内存数据结构中,机器挂了,就灰飞烟灭了。每一个数据服务器启动后,都会向主控服务器发送注册消息,将其上数据块的状况都告知于主控服务器。俗话说,简单就是美,根据DRY原则,保存的冗余信息越少,出现不一致的可能性越低,付出一点点时间的代价,换取了一大把逻辑上的简单性,绝对应该是一个包赚不赔的买卖。。。Hdfs支持的 阅读全文
posted @ 2014-01-21 22:54 Brook Legend 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 这段时间折腾的都是hadoop和lucene,总结了hadoop在运营过程中出现问题时的解决方案,请大家指教!HDFS(0.20.2)运营中急救方案1Namenode挂掉(secondarynamenode无影响)如果Namenode挂掉,如果能立即起来通过,start-dfs.sh能够重新起来则可以正常使用。否则按照以下操作。下面所有操作前提是有完整的secondarynamenode。1)在非secondarynamenode服务器中选择datanode作为namenode。(目前在正式文档中没有发现,建议采用第二种,但在测试中没发现问题)a)Kill掉所有服务。b)修改新namenod. 阅读全文
posted @ 2014-01-21 22:51 Brook Legend 阅读(548) 评论(0) 推荐(0) 编辑
摘要: FSDirectory NIOFSDirectory 性能对比lucene/solr FSDirectory NIOFSDirectory 性能测试对比与Http11NioProtocol 文章分类:互联网 lucene 2.4 开始有一个 NIOFSDirectory 实现,使用 java.nio's FileChannel 读取文件。官方说:在大多数非 windows 平台下,多个线程共用单个 searcher 比 FSDirectory(在同一时刻只能一个线程使用 searcher)可以提高查询的吞吐量。 lucene 2.4 的 CHANGE.TXT 说明: 21. LUCEN 阅读全文
posted @ 2014-01-21 22:50 Brook Legend 阅读(719) 评论(0) 推荐(0) 编辑
摘要: 一、客户端Map-Reduce的过程首先是由客户端提交一个任务开始的。提交任务主要是通过JobClient.runJob(JobConf)静态函数实现的:public static RunningJob runJob(JobConf job) throws IOException { //首先生成一个JobClient对象 JobClient jc = new JobClient(job); …… //调用submitJob来提交一个任务 running = jc.submitJob(job); JobID jobId = running.getID(); …… while (true) { 阅读全文
posted @ 2014-01-21 22:48 Brook Legend 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 一、客户端Map-Reduce的过程首先是由客户端提交一个任务开始的。提交任务主要是通过JobClient.runJob(JobConf)静态函数实现的:public static RunningJob runJob(JobConf job) throws IOException { //首先生成一个JobClient对象 JobClient jc = new JobClient(job); …… //调用submitJob来提交一个任务 running = jc.submitJob(job); JobID jobId = running.getID(); …… while (true) { 阅读全文
posted @ 2014-01-21 22:47 Brook Legend 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 1 cgywin下安装hadoop需要配置JAVA_home变量 , 此时使用 window下安装的jdk就可以 ,但是安装路径不要带有空格。否则会不识别。2 在Window下启动Hadoop-0.21.0版本时,会出现下面这样的错误提示:Java代码java.lang.NoClassDefFoundError:org/apache/hadoop/util/PlatformNameCausedby:java.lang.ClassNotFoundException:org.apache.hadoop.util.PlatformNameatjava.net.URLClassLoader$1.run 阅读全文
posted @ 2014-01-21 22:46 Brook Legend 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 我想还有很多人没有听说过ZModem协议,更不知道有rz/sz这样方便的工具。 好东西不敢独享。以下给出我知道的一点皮毛。 下面一段是从SecureCRT的帮助中copy的:ZModem is a full-duplex file transfer protocol that supports fast data transfer rates and effective error detection. ZModem is very user friendly, allowing either the sending or receiving party to initiate a file 阅读全文
posted @ 2014-01-21 22:45 Brook Legend 阅读(397) 评论(0) 推荐(0) 编辑