随笔分类 -  hadoop

摘要:Hadoop有两部分组成:HDFS(Hadoop DistributedFile System, Hadoop分布式文件系统)MapReduce1. HDFSHadoop分布式文件系统由一个管理节点(NameNode)和N个数据节点(DataNode)组成,每个节点均是一台普通的计算机。其底层实现为:把文件切割成若干个Block,然后把这些Block分散存储于不同的DataNode上,每个Block还可以复制数份存储于不同的DataNode上,达到容错容灾的目的。NameNode则是整个HDFS的核心,它通过维护一些数据结构,记录了每一个文件被切割成了多少个Block,这些Block可以从哪些 阅读全文
posted @ 2013-06-06 17:16 94julia 阅读(221) 评论(0) 推荐(0)
摘要:1.从HDFS上传下载文件到第一种错误:<SPAN style="FONT-SIZE: medium">Exception inthread"main"java.lang.IllegalArgumentException: Wrong FS: hdfs://192.168.1.11:9000/usr/yujing/wordcount, expected: hdfs://master:9000 </SPAN> 这个很多人都遇到过,不管是在ubuntu还是windows系统中,在连接集群的时候,不能直接使用hdfs://192.168 阅读全文
posted @ 2013-04-15 21:48 94julia 阅读(429) 评论(0) 推荐(0)
摘要:聊完了Client聊Server,按惯例,先把类图贴出来。需要注意的是,这里的Server类是个抽象类,唯一抽象的地方,就是Java代码1 public abstract Writable call(Writable param, long receiveTime) throws IOException; 这表明,Server提供了一个架子,Server的具体功能,需要具体类来完成。而具体类,当然就是实现call方法。我们先来分析Server.Call,和Client.Call类似,Server.Call包含了一次请求,其中,id和param的含义和Client.Call是一致的。不同点在后. 阅读全文
posted @ 2013-04-15 20:48 94julia 阅读(143) 评论(0) 推荐(0)
摘要:既然是RPC,自然就有客户端和服务器,当然,org.apache.hadoop.rpc也就有了类Client和类Server。在这里我们来仔细考察org.apache.hadoop.rpc.Client。下面的图包含了org.apache.hadoop.rpc.Client中的关键类和关键方法。 由于Client可能和多个Server通信,典型的一次HDFS读,需要和NameNode打交道,也需要和某个/某些DataNode通信。这就意味着某一个Client需要维护多个连接。同时,为了减少不必要的连接,现在Client的做法是拿ConnectionId(图中最右侧)来做为Connecti... 阅读全文
posted @ 2013-04-01 11:00 94julia 阅读(136) 评论(0) 推荐(0)
摘要:介绍完org.apache.hadoop.io以后,我们开始来分析org.apache.hadoop.rpc。RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。当我们讨论HDFS的,通信可能发生在:Client-NameNode之间,其中NameNode是服务器Client-DataNode之间,其中DataNode是服务器DataNode-NameNode之间,其中NameNode是服务器DataNode-DateNode之间,其中某一个DateNode是服务器,另一个是客户端 如果我们考虑Hadoop的Map/Reduce以后,这些系统间的通信就更复... 阅读全文
posted @ 2013-04-01 10:25 94julia 阅读(178) 评论(0) 推荐(0)
摘要:为org.apache.hadoop.io.compress等的分析预留位置 阅读全文
posted @ 2013-04-01 10:04 94julia 阅读(99) 评论(0) 推荐(0)
摘要:由于Hadoop的MapReduce和HDFS都有通信的需求,需要对通信的对象进行序列化。Hadoop并没有采用Java的序列化,而是引入了它自己的系统。 org.apache.hadoop.io中定义了大量的可序列化对象,他们都实现了Writable接口。实现了Writable接口的一个典型例子如下: java代码 1 public class MyWritable implements Writable { 2 // Some data 3 private int counter; 4 ... 阅读全文
posted @ 2013-03-31 21:19 94julia 阅读(132) 评论(0) 推荐(0)
摘要:下面给出了Hadoop的包的功能分析。PackageDependencestool提供一些命令行工具,如DistCp,archivemapreduceHadoop的Map/Reduce实现filecache提供HDFS文件的本地缓存,用于加快Map/Reduce的数据访问速度fs文件系统的抽象,可以理解为支持多种文件系统实现的统一文件访问接口hdfsHDFS,Hadoop的分布式文件系统实现ipc一个简单的IPC的实现,依赖于io提供的编解码功能参考:http://zhangyu8374.javaeye.com/blog/86306io表示层。将各种数据编码/解码,方便于在网络上传输net.. 阅读全文
posted @ 2013-03-31 21:14 94julia 阅读(150) 评论(0) 推荐(0)
摘要:Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。 GoogleCluster Chubby GFS BigTable MapReduce 很快,Apache上就出现了一个类似的解决方案,目前它们都属于Apache的Hadoop项目,对应的分别是: Chubby-->ZooKeeper GFS-->HDFS BigTable-->HBase MapReduce-->Hadoop 目前,基于类似思想的Open Source项目还很多,如Facebook用于用户分析的Hive。 HDFS作为一个分布式文件... 阅读全文
posted @ 2013-03-31 21:01 94julia 阅读(189) 评论(0) 推荐(0)
摘要:调用文件系统(FS)shell命令使用bin/hadoop fs<args>的形式。所有的FS shell命令使用URI路径作为参数。URI格式是scheme://authority/path。对HDFS文件系统,scheme是HDFS,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。一个HDFS文件或目录,比如/parent/child可以表示成hdfs://namenode:namenodedeport/parent/child,或者等简单的/parent/child(假设配置文件中 阅读全文
posted @ 2013-03-24 16:39 94julia 阅读(349) 评论(0) 推荐(0)
摘要:View Code 1 package org.apache.hadoop.examples; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.net.URL; 8 import java.net.URLClassLoader; 9 import java.util.ArrayList;10 import java.util.List;11 im... 阅读全文
posted @ 2013-03-18 20:14 94julia 阅读(1575) 评论(0) 推荐(0)
摘要:Hadoop 0.20.2 安装配置说明作者:独孤酒间 编辑日期:2012年8月20日关键字:hadoop 0.20.2 集群配置 ubuntu描述:本人参考了书籍《Hadoop 实战》及网络上一些资源,经过多次尝试搭建成功后编写的此文档。文档中使用 Ubuntu Server 12.04 x64 + JDK 1.7.0 u5 + Hadoop 0.20.2 及 5 台虚拟机做为演示测试环境。希望能对大家带来帮助。本文档适合初学者,指引初学者或初次接触 Hadoop 的人成功安装 Hadoop ,使用代码执行简单的 HDFS 操作,并利用 MapReduce 执行分布式计算示例代码。其中 Ma 阅读全文
posted @ 2013-03-09 10:30 94julia 阅读(1197) 评论(0) 推荐(0)