51CTO博客开发老男孩linux运维菜菜光的博客吴光科-专注自动化运维
虽然SQL-92规定了四种隔离级别,但是在引入MVCC后,RC/RR都是snapshot isolation下的变体。至于对隔离性和一致性的吐槽,引用沈洵的话:“快照读以更低的代价实现了更高的并发度,却不得不委身在原有事务框架内。其实ACID也只是一个标准,并非真理。” 既然是snapshot isolation,MySQL有什么问题呢,直接上
昨天下午有20多分钟Hadoop平台无法跑Hive,Jobtracker的页面也打不开,hadoop job –list也hang住没有响应,过了10分钟后恢复了,查看gc日志发现Jobtracker没有进行full gc,查看这段时间的Job日志发现一个可疑的Hive SQL: Insert into table t(dt) as select xxx,dt from txx,是一个用了动态分区
前些天Hive查询的接口一直超时报警,登录上去查看发现这个超时报警的曲线很有规律,每个小时开始就出现,过了大约3分钟左右就好了.在这个期间里,也发现hive根本就执行不了,完全hang住了,机器负载,HDFS,Jobtracker的负载响应都完全正常!立刻查看下日志发现几点:1.对比其他时间的同一个job发现两个时间点的上传job文件到hdfs以及mapreduce的执行时间完全一致,也就是说排除
前几天部门刚来不久的小同学装Hadoop一直失败,报libhadoop加载错误解决不了.过去查看下相关依赖lib都解决了,JAVA_LIBRARY_PATH也指定正确位置了,为啥还会失败呢?直接强制加载一次nativelib再看发现原来在另外一个目录有人安装了libhadoop,但是版本是错误的,很多依赖都找不到,而HADOOP启动时正加载了这个路径下的libhadoop导致失败的,这是什么原因呢
某天线上的ImpalaJob日志时不时的报错:ERROR:No backends configuredCouldnot execute command:xxx并且不是一直报错,查看statstore的日志发现:I022316:18:34.338698 10924 state-store.cc:194] Creating new topic:''impala-membership' on behal
前段时间遇到HDFS的各种超时,这里总结下遇到的超时:IPC1.IPC connect timeout:在Client端setupConnection设置,2.0.3之前是20s,之后是可配置ipc.client.connect.timeout2.IPC max idle time:ipc.client.connection.maxidletime设置,默认20s,若在20s内calls依然为空则
前段时间线上的Flume突然不稳定起来,各种socket read/write timeout. Block recover也一直不成功.查看Datanode的日志确实这段时间packresponder各种连接失败,读取失败,各种异常:PrematureEOF from inputStream/Connection reset/Interrupted receiveBlock/,在某些条件下也触发
Hive升级完后ETL开发找到我说有的Job一直failed.看了一下在MAP阶段进行MAPJOIN处理时就OOM了,但是开发说没有加MAPJOIN HINT,其实在0.11后hive.auto.convert.join的默认值变为true也就是会自动去做;并且在0.11加入了一个新的参数hive.ignore.mapjoin.hint来控制是否忽略MAPJOINHINT(HIVE-4042),默
在Hive0.10升级到0.11后我们发现当一个表加字段或者修改字段类型时,新加的分区可以读取到相应字段的值,但是老的分区该字段的值都为NULL(其实数据是在HDFS里的),翻下jira看到Hive在0.11推出一个新feature(HIVE-3833)就是,也就是0.11之前每个分区的schema解析都是按照table来的,而这之后是每个分区的schema都独立的进行解析.在metastore层
线上一个ETL Job不能跑了,报异常,这里为了说明问题简化表结构:hive>desc void_t; OK x int None z void None而select* from void_t确实会
在Hive0.10之前hiverc file都是从HIVE_HOME/bin下加载的,而在之后的加载顺序如下:1.HIVE_HOME/bin 为了保证兼容2.HIVE_CONF_DIR/3.USER_HOME/另外一个常见的问题就是hiverc的注释,这个容易受到linux注释习惯的影响“#”,其实Hive里所有的注释都是用“--”的,否则会导致hive无法执行=。=这个一定要谨慎!
昨天发现线上的HiveQuery:select * from db1.t1where dt between to_char(getdate(‘variables’,’-40’),’yyyymmdd’) and ‘variables’and hour=’xxx’(其中t1 partitioned bydt,hour)不能进行partition prune导致执行效率非常的差,问题出现在哪里呢?把To
昨天同事在Web查询UI发现一个hivequery不能跑,SQL类似如下:select c from (select * from db1.t1 where partkey1 = 'xxx') a left outer join db2.t2 b on (a.c1 = b.c1) left outer join db2.t2 c on (a.c2 = c.c2) group by c报NPE,
依然是前阶段(太久没写blog了)发现线上Kafka用的Zookeeper集群其中一个节点内存用到了4个多GB,进一步发现这个节点的watcher有几百万了=。=发现原来在所有的flume-agent上只配置了这个节点,以为会自动感知(线上版本是3.4.5,还没这么高端的功能);另外发现agent端的flume conf是自动生成的,其中topic是判断固定路径下所有日志的文件名,每个文件名会生成
前阶段同事迁移Zookeeper(是给Kafka使用的以及flume使用)后发现所有Flume-producer/consumer端集体报错:07 Jan 2014 01:19:32,571 INFO [conf-file-poller-0-SendThread(xxx:2181)] (org.apache.zookeeper.ClientCnxn$SendThrea
前段时间线上dba准备上Mongodb sharding,想测试是否能扩展写的能力,写了各种脚本(多线程写一个mongos,多线程写多个mongos)去测试发现一直是写在一个shard上,得出的结论是mongodb sharding无法扩展写的能力=。=那么是不是真的就是这样呢?算了,直接传送门吧:(因为默认是range shard,2.4可以使用hashed shard)http://docs.
前阶段线上在做Hive升级(CDH4.2.0 Hive 0.10——> Apache Hive0.11 with our patches)和Shark上线踩了不少坑,先来说一个Hiveserver的问题.beeline进入后随便执行一个查询就会报错:USERxxx don’t have write privilegs under /tmp/hive-hdfs不对啊,已经启用了imperson
上周同事问我一个SQL在主库转成ROW格式的binlog发送到备库了,现在要找到这条delete,然而通过mysqlbinlog dump出来发现有“好多条”这个delete 语句,大概如下:#at 219#131203xx server id 1 end_log_pos 219 Table_map: xx mapped to number 35#131203xx server id 1 end_
玩过Oracle的同学一定知道rowid=objectid+file#+block#+row#这个概念,其实在Hive里也有“Rowid”.Hive里有虚拟列的概念,类似于Oracle里的伪列,其中三个虚拟列是:INPUT__FILE__NAME,BLOCK__OFFSET__INSIDE__FILE,ROW__OFFSET__INSIDE__BLOCK.INPUT__FILE__NAME:MAP
线上是同事写的flume-kafkaplugin来实现对kafka消费到其他终端的,不过最近遇到几个莫名的case.现象:flume消费延迟,因为当时比较紧急,同事想把延迟的数据丢掉从新的点开始追,就清了offset,重启就开始消费新的地方了,不过我记得0.7.2kafka的默认autooffset.reset是smallest应该没用啊,后来才知道同事hard code的一些参数:props.p
线上发现多次page allocation failure的问题:查看当时的监控内存并没有用满,还有很大的headroom,简单Google了下在CentOS 6.2下好多遇到同样的问题,疑是OS的bug:https://bugzilla.redhat.com/show_bug.cgi?id=767127提供的solution基本上是调整2个参数: vm.zone_reclaim_mode=1和d
Hive统计信息是在0.7引入的(https://issues.apache.org/jira/browse/HIVE-33),对于Insert/Load/Merge等DDL操作时在Task后加入一个StatsTask进行统计信息收集,并订阅前置Operator(FileSink/TableScan)的feed.不过现在这个stats并没有使用起来.线上虽然开启了hive.stats.autoga
Hive的权限管理一直是比较弱的,最近在线上发现了一个问题.线上一个ETL开发drop掉temp database里的一张表,但是发现hdfs上文件还在!首先明确一下Hive drop table的流程:0.删除metadata1.如果没有启用trash则直接删除hdfs文件2.如果启用trash:a)如果trash目录无权限访问(默认/user/<username>/.trash)文
使用Hive自管理的表的时候都担心如果误drop了表怎么办,因此Hive除了外部表的方式还提供了一个功能:ProtectMode(保护模式).细心的同学会发现文档里其实提到过alter table enable/disable no_drop/offline(https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL),其
线上查询平台刚上线时经常跑一个查询跑到5分钟左右就抛异常了,因为是基于Hiveserver2的,先看一下是否在目标端超时设置有问题.对于Hiveserver2的超时设置有2个参数来决定的(Hive 0.10),默认值如下:<property> <name>hive.server.read.socket.timeout</name> <value
最近集群机器总是莫名其妙的Down机,出问题的时候机器不响应,远程管理卡也连接不上,只能联系IDC硬重启,后来找到厂商说要在BIOS关闭c-stats,问题不知道是否解决,先了解下c-stats是干什么的:在Intel的一个网页上看到:CPU C-states arecore power states requested by the Operating System Directed Power
在解决了Flume-HDFS“丢数据”的问题(http://boylook.blog.51cto.com/7934327/1308188)后还听到抱怨说Flume还丢数据,如果说数据重复是可以理解的,我一直不理解为什么还丢呢?今天同事发现在agent端日志里一段异常:20 Nov 2013 10:15:54,231 ERROR [pool-10-thread-1] (org.apache.flum
在遇知道个Bug(http://boylook.blog.51cto.com/7934327/1325057)之前没觉得有多少影响,上周末把线上的transparent hugepage disable掉后,CPU的降低非常明显:SYS CPU的消耗基本消失,MAPREDUCE Job的运行速度提升了30%,看来这个Bug的影响还是很大的
这篇http://boylook.blog.51cto.com/7934327/1325025提到了sql_safe_update的参数及相关结论,下面从源码上给出比较细节的分析1.在SQL解析时,如果开启这个参数,发现谓词为空则抛异常:if ((thd->variables.option_bits & OPTION_SAFE_UPDATES) && !select_
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号