- 博客(156)
- 资源 (16)
- 收藏
- 关注
原创 从Spark Streaming 收集应用程序日志到Flume agent的配置方法
从Spark Streaming 收集应用程序日志到Flume agent的配置方法由于Spark 本身也是log4j收集日志,所以我们在应用程序里再配置一个log4j。先说一下spark Streaming 启动方法,在spark 启动的时候添加以下两个参数:--conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=log4j.pr
2016-02-03 17:35:36
3240
原创 理解flume hdfs sink round 和roll
我们在配置flume hdfs sink 的时候注意这两个配置项,比如:collector1.sinks.sink_hdfs.hdfs.rollSize = 2048000000 collector1.sinks.sink_hdfs.hdfs.rollCount = 0 collector1.sinks.sink_hdfs.hdfs.rollInterval = 21600coll
2015-10-20 15:49:13
9877
原创 CDH 5.3.0 一个小任务运行了12个小时的原因。
本来一个小任务,周末定时任务却跑了12个小时,查看日志,满屏都是:2015-09-13 00:02:51,433 INFO [RMCommunicator Allocator] org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: Ramping down all scheduled reduces:02015-09-13
2015-09-14 11:33:39
7376
原创 Nginx 编译,添加未编译安装模块ngx_cache_purge
Nginx 编译,添加未编译安装模块ngx_cache_purge 官网下载nginx及第三方ngx_cache_purge 模块 http://wiki.nginx.org/Install http://labs.frickle.com/nginx_ngx_cache_purge/编译与安装 Blockquote ./configure \ –prefix=/usr/lo
2015-07-07 15:19:48
13159
原创 spark streaming 调试技巧
spark streaming 如果以local 模式运行,log日志非常清楚。如果log 日志是运行在yarn 模式下,driver 的日志可以通过reource manager 日志看到。但是executor的日志却看不到,我们往往错误都发生在executor里,比如典型的错误:如果我们连接hbase去存取数据的话,我们会在driver里初始化了连接,缺忽略的excutors里,导致程序出错
2015-04-29 11:58:20
9465
1
原创 一个spark receiver 或多个spark receiver 接收 多个flume agent
利用一个spark receiver 接收多个flume agentString host = args[0]; int port = Integer.parseInt(args[1]); String host1 = args[2]; int port1 = Integer.parseInt(args[3]); InetSocketAddress address1 = new Ine
2015-04-08 16:54:09
5053
原创 每隔一段时间,hbase 的读就会停顿10s的原因及解决办法
产生的原因:前段时间由于设置region server 的heapsize 为16g,使得block cache 的大小变为16g*0.4=3.2g,查看日志发现了jvm 隔一段时间会出现如下日志:2015-03-24 16:09:27,405 WARN org.apache.hadoop.hbase.util.JvmPauseMonitor: Detected pause in JVM or ho
2015-03-24 17:48:35
17363
原创 怎样去找出线上hive或mapreduce运行慢的原因
hive mapreduce 都会转成java。所以要用的java分析工具。当看到map或reduce 阶段运行缓慢,我们去线上找到mapreduce的进程:1. top 发现进程:2. top -Hp 32486 找到进程中cpu或mem磁盘消耗最高的线程:3. 用jstack主要用来查看某个Java进程内的线程堆栈信息:bin/jstack -F 26510
2014-08-19 16:30:42
9753
原创 hive-- 请不要用动态分区(如果分区可以确定)
如果分区是可以确定的话,千万不要用动态分区,动态分区的值是在reduce运行阶段确定的.也就是会把所有的记录distribute by。 可想而知表记录非常大的话,只有一个reduce 去处理,那简直是疯狂的。如果这个值唯一或者事先已经知道,比如按天分区(i_date=20140819) 那就用静态分区吧。静态分区在编译阶段已经确定,不需要reduce处理。 例如以下两个insert 表分区:
2014-08-19 16:26:42
15040
原创 mapr- hadoop 更换坏掉的磁盘
列出服务器所在的磁盘:maprcli disk list -host 127.0.0.1移除坏掉的磁盘:maprcli disk remove -host 127.0.0.1 -disks /dev/sdk添加新的磁盘:maprcli disk add -host 127.0.0.1 -disks /dev/sdk
2014-01-20 18:27:44
5779
1
原创 greenplum 激活standby 和恢复 master 原有角色
定义:server1=(master) server2=(standby)Active standby server when master down. gpactivatestandby -d /data/master/gpseg-1 -f (on server2)Change server1 as standby . gpinitstandby -s server
2013-12-24 18:17:30
6164
原创 hive 非等值连接sql写法
hive不支持非等值连接 join操作。如:select * from tonyjointest b join rtb_requests a on b.domain like a.domian%);但可以转化成这样:select * from tonyjointest b join rtb_requests a on (true) where b.doma
2013-12-20 14:31:08
13803
原创 hive 实现 udf row_number 以及遇到的问题
为hive的每条数据添加row_number, 首先添加行号,必须考虑到数据必须放在一个reduce中去执行。先上代码package xx.xxxxx.hive.udf;import org.apache.hadoop.hive.ql.exec.UDF;import org.apache.hadoop.hive.ql.udf.UDFType;@UDFType(determinis
2013-11-08 18:24:54
6048
原创 Reduce 优化(mapr)
1、合理设计桶的大小,插入桶的时候,桶的数目和reduce的数目一致,结合map的输出大小合理设置桶的大小,否则在reduce阶段就会非常慢。2、查看reduce的copy的速率,如果map output的文件过多,mapred.reduce.parallel.copies默认是12(mapr),表示一个reduce会开启12个线程向map阶段copy数据。可以加大次参数。3、reduce
2013-10-30 10:48:55
3463
原创 hive 优化 tips
一、 Hive join优化1. 尽量将小表放在join的左边,我们使用的Hive-0.90,所以是自动转化的,既把小表自动装入内存,执行map side join(性能好), 这是由参数hive.auto.convert.join=true 和hive.smalltable.filesize=25000000L)参数控制(默认是25M),如果表文件大小在25M左右,可以适当调
2013-10-17 15:40:21
5161
原创 一个hive任务的分析
一位开发人员每天跑相同的任务,但是他发现某一天同样的任务处理大约差不多量的数据(都是大约4亿条,hive count的结果),处理时间却相差3倍之多,一个不到一个小时,一个运行了三个小时,记录一下分析步骤。1. 首先用explain看一下hive语句执行步骤再去找对应的job任务。 可以看出此sql语句分4个任务去跑。Stage-1:执行join操作Stage-2:根据St
2013-10-17 15:03:58
8311
原创 利用Map Reduce 过滤大数据的解决方案
问题引入:假设从200亿条记录中(大约200G)查找100多条其中的记录,不考虑集群的计算能力,我们可以这样写mapreduce: 直接不考虑数据量大小,reduce阶段一次行过滤。public static class UserChainSixMapper extends Mapper { private static String prefix1 = "tm"
2013-03-21 16:41:08
6424
原创 Java多线程编程
用多线程处理以下场景:文件中有原始数据,通过一个线程 T1监控文件路径,把原始数据读到同步队列Q1中。线程T2读取Q1中的数据并处理把结果放到同步队列Q2中,等待子线程T2处理。在T2中开N个子线程T3处理Q2的数据,并把处理结果放到同步集合Set3中。线程T2汇总其本身及子线程T3处理的结果放到同步队列Q4中线程T4把Q4中的数据输出到文件中。流程图大致如下:所以
2013-02-04 17:00:42
3798
原创 模拟实现Struts拦截器-蕴含着代理模式,AOP,工厂模式,依赖注入,Java 反射,动态构造等机制
先说说代理模式:是来源于我们传统的思想,比如,我想去青岛办一些事,但是人不在青岛,于是我委托在青岛的朋友代理我去办。软件中的代理模式可以有约束性代理,远程代理,缓存代理等。AOP设计哲学-我们在软件工程中,往往从纵向思维去设计软件,比如传统的三层思想(表示层,业务层,数据层),但是我们来个横行的总结,比如日志系统可以横行贯穿于这三层之中。我们要把日志系统的设计就是面向切面编程的原理。在AO
2012-11-19 14:52:29
3804
原创 Java, C#, JavaScript三种语言实现工厂模式
工厂模式的思想是:”把实例的创建延迟到子类去“Java版抽象产品类:package Factory;public interface IProduct { void doSomething();}具体类1,具体类2:package Factory;public class Product1 implements IProduct { @Overrid
2012-10-25 15:49:31
2994
原创 Java, C#, JavaScript三种语言实现单例模式
无论任何一门语言,模式的思想都一样,不一样的就是语言的细节。Java版:public class Singleton { private volatile static Singleton instance; private Singleton(){}; public static Singleton getInstance() { if(instance == nul
2012-10-24 17:28:28
1576
原创 通过学生-课程关系表,熟悉hive语句
1、在hive中创建以下三个表。create table student(Sno int,Sname string,Sex string,Sage int,Sdept string)row format delimited fields terminated by ','stored as textfile;create table course(Cno int,Cname string
2012-08-03 17:34:22
4968
原创 hadoop分析之四:关于hadoop namenode的双机热备份方案
参考Hadoop_HDFS系统双机热备方案.pdf,试验后有所增减关于hadoopnamenode的双机热备份方案1、 前言目前hadoop-0.20.2没有提供name node的备份,只是提供了一个secondary node,尽管它在一定程度上能够保证对name node的备份,但当name node所在的机器出现故障时,secondary node不能提供实时
2012-07-26 17:40:55
15726
1
原创 hadoop分析之三org.apache.hadoop.hdfs.server.namenode各个类的功能与角色
以hadoop0.21为例。NameNode.java: 主要维护文件系统的名字空间和文件的元数据,以下是代码中的说明。/********************************************************** * NameNode serves as both directory namespace manager and * "inode table"
2012-07-21 22:52:28
7570
原创 hadoop分析之二元数据备份方案的机制
1、NameNode启动加载元数据情景分析NameNode函数里调用FSNamesystemm读取dfs.namenode.name.dir和dfs.namenode.edits.dir构建FSDirectory。FSImage类recoverTransitionRead和saveNameSpace分别实现了元数据的检查、加载、内存合并和元数据的持久化存储。saveNameSpace将
2012-07-21 16:12:32
4786
原创 关于Hbase的集群管理
1、如果只增加集群的存储量,建议增加hadoop datanode节点。方法:停掉集群包括hadoop和hbase,当然也可以不停掉,直接在hadoop namenode的配置文件Slave里添加新节点的host,别忘了在host文件里也要添加新添加的host名。执行bin/start-all.sh启动集群如果不手动作平衡,插入的数据将会放在新添加的节点上。以趋于平衡。如果手动平衡
2012-07-20 23:36:35
3224
3
原创 hadoop分析之一HDFS元数据解析
1、元数据(Metadata):维护HDFS文件系统中文件和目录的信息,分为内存元数据和元数据文件两种。NameNode维护整个元数据。HDFS实现时,没有采用定期导出元数据的方法,而是采用元数据镜像文件(FSImage)+日子文件(edits)的备份机制。2、Block:文件内容而言。寻路径流程: 路径信息 b
2012-07-20 23:33:44
23263
1
原创 hadoop的安全模式
the ratio of reported blocks 1.0001 has reached the threshold 0.9990. Safe mode will be turned off automatically in 7 seconds.平常不知道安全模式是啥的情况下,hadoop提供了一些命令:hadoop dfsadmin -safemodeNameNode在
2012-06-07 17:01:20
2343
原创 hbase的参数说明
hbase.balancer.periodPeriod at which the region balancer runs in the master.Type: intDefault: 300000 (5 mins)Unit: millisecondshbase.client.keyvalue.maxsizeSpecifies the combined maximum a
2012-06-07 16:58:43
4286
转载 hadoop三个配置文件的参数含义说明
2 常用的端口配置2.1 HDFS端口 参数描述默认配置文件例子值fs.default.name namenodenamenode RPC交互端口8020core-site.xmlhdfs://
2012-06-07 16:57:37
4354
原创 Hbase 错误记录及修改方法
1. Hbase 在运行或者操作过程中经常发生各种各样的问题,大部分问题是可以通过修改配置文件来解决的,当然可以修改源代码。当hbase的并发量上来的时候,经常会导致Hbase出现“ Too Many Open Files”(打开的文件过多)的问题,日志记录如下:2012-06-01 16:05:22,776 INFO org.apache.hadoop.hdfs.DFSClient:
2012-06-07 16:56:09
5365
转载 Hbase,Zookeeper性能优化之-参数设置
zookeeper.session.timeout默认值:3分钟(180000ms)说明:RegionServer与Zookeeper间的连接超时时间。当超时时间到后,ReigonServer会被Zookeeper从RS集群清单中移除,HMaster收到移除通知后,会对这台server负责的regions重新balance,让其他存活的RegionServer接管.调优:这个tim
2012-06-07 16:55:19
6803
原创 hadoop的I/O
1. 数据完整性:任何语言对IO的操作都要保持其数据的完整性。hadoop当然希望数据在存储和处理中不会丢失或损坏。检查数据完整性的常用方法是校验和。HDFS的数据完整性:客户端在写或者读取HDFS的文件时,都会对其进行校验和验证,当然我们可以通过在Open()方法读取之前,将false传给FileSystem中的setVerifyCheckSum()来禁用校验和。本地文件系统,hadoo
2012-04-05 18:12:56
3718
原创 因C#一段代码,引发的问题
请看以下代码:static void Main(string[] args) { Person[] persons = new Person[] { new Person{FirstName="aaa",
2012-03-01 17:25:24
1169
原创 .NET多线程知识你问我答
读后总结:1. 为什么要有应用程序域(AppDemain)这个概念?都知道每一个进程间都是相互隔离的,所有在进程间通讯是非常麻烦的事,.NET为了能够解决进程间的通信问题,推出了一个新的概念。于是.NET多个进程可以运行在同一个应用程序域中,这样不同应用程序域之间可以相互隔离,做到了安全性,同时降低了进程间通信的难度。2. 为什么要用多线程?如果只有一个CPU的情况下,我们知道
2012-02-10 16:51:25
1421
原创 Windows Phone 7 后退历史记录管理与起始页的程序块管理
导航历史记录管理,起始导航历史记录是用于一个导航堆栈来管理的。如完成以下导航:MainPage ->Page1 ->Page 2 ->Page 3,其实就形成了一个如下图的导航堆栈:所有当按“返回键”时也是按后进先出得原则进行导航,但是思考如下问题:它的原理是什么呢?每个应用程序都有一个 RootFrame。当用户导航到该页面时,导航框架会将应用程序的每个页面或 Phone
2012-01-12 17:02:17
1688
原创 在局域网对数据库SQL Server和文件备份的方法
1.数据库备份有两种方法:可以在维护计划里进行数据库备份,但是如果备份到局域网内的另一台服务器上,可以做个盘符映射,然后再维护计划里选择映射的盘符。第二种方法就是用作业的方式,运行SQL脚本。exec master..xp_cmdshell 'net use h: \\10.0.1.117\tkm "密码" /user:10.0.1.117\administ
2012-01-10 18:11:04
3870
原创 2011,不惋惜,不呼唤,我也不啼哭,金黄的落叶堆满我心间,我已不再是青春少年
不惋惜,不呼唤,我也不啼哭,金黄的落叶堆满我心间,我已不再是青春少年!一年的时间过得真快,记得写2010过去的一年这篇总结的时候还是昨天。虽然工作还不到4年的时间,但仿佛我已不再是那懵懵懂懂,满腔热血的青春少年。有喜悦,有忧伤,有悲愤,有沉默,也许这些使我冷静了许多。然而冷静并不代表对知识追求的冷静,因为大家都是吃这口饭的,2011这个喜忧参半的年份,2012这个未知的未来。2011年
2012-01-04 16:36:29
7776
原创 Windows Phone 7 应用程序生命周期与导航
1. 生命周期:Windows Phone 应用程序有以下几种状态:LaunchingClosingActivatedDeactivated使用者按返回键将Closing应用程序,而按开始键后应用程序便会进入 Deactivated 的事件然后进入tombstoning(墓碑状态),而在 Deactivated 事件之后,使用者这时候可能会执行其
2011-12-28 17:49:57
1834
原创 .NET垃圾回收机制-代(generation)的原理分析
.NET的垃圾回收器是用一种叫代的原理,假设以下三种情况成立,则提出了代的概念。越是新的对象,他的生存周期就越短越是老得对象,它的生存周期就越长回收一部分堆对象比回收全部堆对象性能高第一步:当声明A-E 五个对象,它们在堆栈的分配情况(垃圾回收机制没有扫描之前),稍后,C和E对象变的不可达第二步:当CLR初始化时,它为第零代分配了256K的空间(可能不同),代越高分配的内存越多
2011-12-20 17:10:25
2473
Silverlight3 HitTest 的2个比较好的例子
2010-04-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人