坚信科学,分享技术

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

Tag Archives: Hadoop

记hadoop故障一例:BlockAlreadyExistsException

hive版本:0.7.0 hadoop版本:0.20.2 在线上跑了一个季度了,基本上没什么问题,今天突然出了问题。 在hive执行时留下的蛛丝马迹: Failed with exception org.apache.hadoop.hdfs.server.namenode.NotReplicatedYetException: Not replicated yet:/tmp/hive-root/hive_2011-08-15_00-31-02_332_247809173824307798/-ext-10000/access_bucket-2011-08-14_00004 at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1257) at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:422) at sun.reflect.GeneratedMethodAccessor2037.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Met

Continue reading

Posted in java | Tagged , | Leave a comment

hive 0.7.0代码分析解读

入口: bin/hive脚本中,环境检查后执行ext中的cli.sh,进入主类:CliDriver.main。 CliDriver.main: 把分号隔开命令进cli.processLine,再进processCmd。 processCmd: 处理quit/exit,再处理source,处理!,处理list;else建立CommandProcessor(实现有Driver和各种Processor),set/dfs/add/delete命令有单独的Processor,剩下的走Driver。 如果是Driver类型的Processor: 把cmd发到这个driver的run,再进到compile,在compile中,用一个parseDriver去生成ASTNode(生成使用了antlr,主要过程:经过文法分析器切割,进解析器,出来一个TREE),这里有细节的compile的过程说明 http://fromheartgo.wordpress.com/2010/04/02/hive%E7%9A%84compile%E8%BF%87%E7%A8%8B%EF%BC%881%EF%BC%89/ ; 根据得到的ASTNode,开始语义分析,把结果设置到一个QueryPlan对象中,初始化一些task放在QueryPlan中; run里的test only代码读了test.serialize.qplan的设置,test状态会把这些查询记录写到文件里;权限检查。 退出complie,在Driver的run中分解执行MR后,退出来到了processCmd: 如果装填一切正常,通过getResul

Continue reading

Posted in 架构研究 | Tagged , | Leave a comment

hive迁移hadoop namenode时遇到的问题

使用了一段时间的hive和hadoop,在迁移datanode时很容易,要迁移namenode,hive里就闹情绪了。更改namenode后,在hive中运行select 依旧指向之前的namenode地址。 要如何解决呢,具体操作如下: 1.复制打包老的namenode 2.复制打包老的namenode的hdfs目录 3.到新机器准备好:修改master的值 复制到各节点 修改hive的定义 4.hive这里使用了mysql来保存metadata 因为这些信息会被写死在hive的DBS和SBS表里,下面是关键的一步: 进入mysql,执行下面的sql, update DBS set DB_LOCATION_URI=REPLACE(DB_LOCATION_URI,'old host','new host'); update SDS set LOCATION=REPLACE(LOCATION,'old host','new host'); 启动,一切正常了!迁移hive namenode成功。

Continue reading

Posted in 架构研究 | Tagged , , | 3 Comments

用hadoop hive协同scribe log用户行为分析方案

scribe 是facebook 开源的分布式日志系统,在其示例配置中,并发量可达到max_msg_per_second=2000000。54chen使用手记见:http://www.54chen.com/java-ee/log-server-scribe-helper.html hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为 MapReduce任务进行运行。54chen使用手记见:http://www.54chen.com/_linux_/hive-hadoop-how-to-install.html 下面来讲述二者合成的使用办法: 创建和scribe格式相符的hive table bin/hive > create table log(active string,uuid string,ip string,dt string) row format delimited fields terminated by ',' collection items terminated by "\n" stored as textfile; 加载数据 >LOAD DATA LOCAL INPATH '/opt/soft/hadoop-0.20.2/hive-0.7.0/data/log-2011-04-13*' OVERWRITE INTO …

Continue reading

Posted in 架构研究 | Tagged , , | 3 Comments

hadoop hive安装手记

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为 MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 [网络环境设置] vim /etc/hosts 192.168.100.52 hadoop1 192.168.99.34 hadoop2 192.168.103.135 hadoop3 分别到对应机器执行: hostname hadoop1 hostname hadoop2 hostname hadoop3 [打通机器] hadoop1# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa hadoop1# scp ~/.ssh/id_dsa.pub hadoop2:/root/ hadoop1# scp ~/.ssh/id_dsa.pub hadoop3:/root/ hadoop2# cat id_dsa.pub >> …

Continue reading

Posted in 架构研究 | Tagged , | 4 Comments

yahoo、taobao云计算利器之“云”端的小飞象—Hadoop

  “云”端的小飞象—Hadoop 孙 牧 Hadoop简史 在搜索技术界,也许有人不熟悉Doug Cutting,但很少有人不知道Lucene这个著名的全文检索引擎。事实上,Lucene应该是Doug Cutting的成名作,它被广泛地应用在各种规模的网站和系统中,甚至Eclipse中的搜索功能也是Lucene来实现的。   但Doug Cutting并没有满足Lucene取得的成绩。2002年,他发起了一个基于Lucene的开源项目Nutch,其目标是构建出一个包括网络蜘蛛、文件存储等模块的网页搜索系统。经过2年的努力,Nutch虽然可以用4台机器支持1亿网页的抓取和检索,但系统的扩展性开始遇到瓶颈。恰在此时,Google发表了GFS、MapReduce的论文,这两个创新性的思路点燃了Nutch 2名开发人员的斗志,他们又花了2年的业余时间实现了DFS(分布式文件系统)和MapReduce机制,这次改造使Nutch可以在20台机器上支持几亿的数据规模,其编程和运维的简易性也得到了大幅提升,但系统的吞吐能力与一个真正的网页搜索系统仍有不小的差距。   2006年,开源社区如火如荼,当美国雅虎在思索构建一个高度利用硬件资源、维护和开发都非常简易的软件架构时,Doug Cutting和他的Nutch进入了他们的视野。一方具有超强的技术前瞻性和实战经验,另一方能提供世界上数一数二的数据、硬件和人力资源,双方一拍即合,同年1月Doug Cutting正式加入雅虎,2月Hadoop从Nutch中分离出来,正式成为Apache组织中一个专注于DFS和MapReduce的开源项目。  

Continue reading

Posted in java, linux | Tagged , , | 10 Comments