- 浏览: 1045277 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (538)
- 奇文共赏 (36)
- spring (13)
- hibernate (10)
- AOP/Aspectj (9)
- spring security (7)
- lucence (5)
- compass (3)
- jbmp (2)
- jboss rule(drools) (0)
- birt (1)
- jasper (1)
- cxf (3)
- flex (98)
- webgis (6)
- 设计模式 (1)
- 代码重构 (2)
- log4j (1)
- tomcat (9)
- 神品音乐 (1)
- 工作计划 (2)
- appfuse (1)
- svn (4)
- 寻章摘句 (3)
- eclipse (10)
- arcgis api for flex (1)
- 算法 (5)
- opengis-cs (1)
- bug心得 (13)
- 图标 (1)
- software&key (14)
- java (17)
- 搞笑视频 (13)
- sqlserver (9)
- postgresql (1)
- postgis (0)
- geoserver (5)
- 日子 (50)
- 水晶报表 (1)
- 绝对电影 (3)
- Alternativa3D (1)
- 酷站大全 (10)
- c++ (5)
- oracle (17)
- oracle spatial (25)
- flashbuilder4 (3)
- TweenLite (1)
- DailyBuild (6)
- 华山论贱 (5)
- 系统性能 (5)
- 经典古文 (6)
- SOA/SCA/OSGI (6)
- jira (2)
- Hadoop生态圈(hadoop/hbase/pig/hive/zookeeper) (37)
- 风水 (1)
- linux操作基础 (17)
- 经济 (4)
- 茶 (3)
- JUnit (1)
- C# dotNet (1)
- netbeans (1)
- Java2D (1)
- QT4 (1)
- google Test/Mock/AutoTest (3)
- maven (1)
- 3d/OSG (1)
- Eclipse RCP (3)
- CUDA (1)
- Access control (0)
- http://linux.chinaunix.net/techdoc/beginner/2008/01/29/977725.shtml (1)
- redis (1)
最新评论
-
dove19900520:
朋友,你确定你的标题跟文章内容对应???
tomcat控制浏览器不缓存 -
wussrc:
我只想说牛逼,就我接触过的那点云计算的东西,仔细想想还真是这么 ...
别样解释云计算,太TM天才跨界了 -
hw_imxy:
endpoint="/Hello/messagebr ...
flex+java代码分两个工程 -
gaohejie:
rsrsdgrfdh坎坎坷坷
Flex 与 Spring 集成 -
李涤尘:
谢谢。不过说得有点太罗嗦了。
Oracle数据库数据的导入及导出(转)
Hadoop 的文件系统
http://blogger.org.cn/blog/more.asp?name=bg1011&id=30853
Hadoop 的文件系统,最重要是 FileSystem 类,以及它的两个子类 LocalFileSystem 和 DistributedFileSystem。 这里先分析 FileSystem。
抽象类 FileSystem,提高了一系列对文件/目录操作的接口,还有一些辅助方法。分别说明一下:
1. open,create,delete,rename等,非abstract,部分返回 FSDataOutputStream,作为流进行处理。
2. openRaw,createRaw,renameRaw,deleteRaw等,abstract,部分返回 FSInputStream,可以随机访问。
3. lock,release,copyFromLocalFile,moveFromLocalFile,copyToLocalFile 等abstract method,提供便利作用,从方法命名可以看出作用。
特别说明,Hadoop的文件系统,每个文件都有一个checksum,一个crc文件。因此FileSystem里面的部分代码对此进行了特别的处理,比如 rename。
LocalFileSystem 和 DistributedFileSystem,理应对用户透明,这里不多做分析,和 FSDataInputStream,FSInputStream 结合一起说明一下。
查看两个子类的 getFileCacheHints 方法,可以看到 LocalFileSystem 是使用'localhost'来命名,这里暂且估计两个FileSystem都是通过网络进行数据通讯,一个是Internet,一个是Intranet。
LocalFileSystem 里面有两个内部类 LocalFSFileInputStream和LocalFSFileOutputStream,查看代码可以看到它是使用 FileChannel进行操作的。另外 lock和release 两个方法使用了TreeMap来保存文件和对应的锁。
DistributedFileSystem 代码量少于 LocalFileSystem,但是更加复杂,它里面使用了 DFSClient 来进行分布式文件系统的操作:
public DistributedFileSystem(InetSocketAddress namenode, Configuration conf) throws IOException
{
super(conf);
this.dfs = new DFSClient(namenode, conf);
this.name = namenode.getHostName() + ":" + namenode.getPort();
}
DFSClient 类接收一个InetSocketAddress 和Configuration 作为输入,对网络传输细节进行了封装。DistributedFileSystem中绝大多数方法都是调用DFSClient进行处理,它只是一个 Warpper。下面着重分析DFSClient。
DFSClient中,主要使用RPC来进行网络的通讯,而不是直接在内部使用Socket。如果要详细了解传输细节,可以查看 org.apache.hadoop.ipc 这个包里面的3个Class。
DFSClient 中的路径,基本上都是UTF8类型,而非String,在DistributedFileSystem中,通过getPath和getDFSPath来转换,这样做可以保证路径格式的标准和数据传输的一致性。
DFSClient 中的大多数方法,也是直接委托ClientProtocol类型的namenode来执行,这里主要分析其它方法。
LeaseChecker 内部类。一个守护线程,定期对namenode进行renewLease操作,注释说明:
Client programs can cause stateful changes in the NameNode that affect other clients. A client may obtain a file and neither abandon nor complete it. A client might hold a series of locks that prevent other clients from proceeding. Clearly, it would be bad if a client held a bunch of locks that it never gave up. This can happen easily if the client dies unexpectedly. So, the NameNode will revoke the locks and live file-creates for clients that it thinks have died. A client tells the NameNode that it is still alive by periodically calling renewLease(). If a certain amount of time passes since the last call to renewLease(), the NameNode assumes the client has died.
作用是对client进行心跳监测,若client挂掉了,执行解锁操作。
DFSInputStream 和 DFSOutputStream,比LocalFileSystem里面的更为复杂,也是通过 ClientProtocol 进行操作,里面使用到了 org.apache.hadoop.dfs 包中的数据结构,如DataNode,Block等,这里不对这些细节进行分析。
对FileSystem的分析(1)到此结束,个人感觉它的封装还是做的不错的,从Nutch项目分离出来后,比原先更为清晰。
http://blogger.org.cn/blog/more.asp?name=bg1011&id=30853
Hadoop 的文件系统,最重要是 FileSystem 类,以及它的两个子类 LocalFileSystem 和 DistributedFileSystem。 这里先分析 FileSystem。
抽象类 FileSystem,提高了一系列对文件/目录操作的接口,还有一些辅助方法。分别说明一下:
1. open,create,delete,rename等,非abstract,部分返回 FSDataOutputStream,作为流进行处理。
2. openRaw,createRaw,renameRaw,deleteRaw等,abstract,部分返回 FSInputStream,可以随机访问。
3. lock,release,copyFromLocalFile,moveFromLocalFile,copyToLocalFile 等abstract method,提供便利作用,从方法命名可以看出作用。
特别说明,Hadoop的文件系统,每个文件都有一个checksum,一个crc文件。因此FileSystem里面的部分代码对此进行了特别的处理,比如 rename。
LocalFileSystem 和 DistributedFileSystem,理应对用户透明,这里不多做分析,和 FSDataInputStream,FSInputStream 结合一起说明一下。
查看两个子类的 getFileCacheHints 方法,可以看到 LocalFileSystem 是使用'localhost'来命名,这里暂且估计两个FileSystem都是通过网络进行数据通讯,一个是Internet,一个是Intranet。
LocalFileSystem 里面有两个内部类 LocalFSFileInputStream和LocalFSFileOutputStream,查看代码可以看到它是使用 FileChannel进行操作的。另外 lock和release 两个方法使用了TreeMap来保存文件和对应的锁。
DistributedFileSystem 代码量少于 LocalFileSystem,但是更加复杂,它里面使用了 DFSClient 来进行分布式文件系统的操作:
public DistributedFileSystem(InetSocketAddress namenode, Configuration conf) throws IOException
{
super(conf);
this.dfs = new DFSClient(namenode, conf);
this.name = namenode.getHostName() + ":" + namenode.getPort();
}
DFSClient 类接收一个InetSocketAddress 和Configuration 作为输入,对网络传输细节进行了封装。DistributedFileSystem中绝大多数方法都是调用DFSClient进行处理,它只是一个 Warpper。下面着重分析DFSClient。
DFSClient中,主要使用RPC来进行网络的通讯,而不是直接在内部使用Socket。如果要详细了解传输细节,可以查看 org.apache.hadoop.ipc 这个包里面的3个Class。
DFSClient 中的路径,基本上都是UTF8类型,而非String,在DistributedFileSystem中,通过getPath和getDFSPath来转换,这样做可以保证路径格式的标准和数据传输的一致性。
DFSClient 中的大多数方法,也是直接委托ClientProtocol类型的namenode来执行,这里主要分析其它方法。
LeaseChecker 内部类。一个守护线程,定期对namenode进行renewLease操作,注释说明:
Client programs can cause stateful changes in the NameNode that affect other clients. A client may obtain a file and neither abandon nor complete it. A client might hold a series of locks that prevent other clients from proceeding. Clearly, it would be bad if a client held a bunch of locks that it never gave up. This can happen easily if the client dies unexpectedly. So, the NameNode will revoke the locks and live file-creates for clients that it thinks have died. A client tells the NameNode that it is still alive by periodically calling renewLease(). If a certain amount of time passes since the last call to renewLease(), the NameNode assumes the client has died.
作用是对client进行心跳监测,若client挂掉了,执行解锁操作。
DFSInputStream 和 DFSOutputStream,比LocalFileSystem里面的更为复杂,也是通过 ClientProtocol 进行操作,里面使用到了 org.apache.hadoop.dfs 包中的数据结构,如DataNode,Block等,这里不对这些细节进行分析。
对FileSystem的分析(1)到此结束,个人感觉它的封装还是做的不错的,从Nutch项目分离出来后,比原先更为清晰。
发表评论
-
一网打尽当下NoSQL类型、适用场景及使用公司
2014-12-28 20:56 960一网打尽当下NoSQL类型、适用场景及使用公司 http:// ... -
别样解释云计算,太TM天才跨界了
2014-02-25 09:41 2432http://mp.weixin.qq.com/s?__bi ... -
Build, Install, Configure and Run Apache Hadoop 2.2.0 in Microsoft Windows OS
2013-12-09 11:17 2524http://www.srccodes.com/p/arti ... -
hadoop的超时设置
2013-06-23 11:47 2417from http://blog.163.com/zheng ... -
hadoop与panasas
2012-12-26 09:53 877在应用的场景中,hadoop当然希望使用全部的本地硬盘,但是对 ... -
程序开过多线程,导致hadoop作业无法运行成功
2012-10-23 16:14 7059Exception in thread "Threa ... -
mount盘异常,导致hadoop作业无法发送
2012-10-23 16:12 948异常信息 2012-10-23 21:10:42,18 ... -
HDFS quota 設定
2012-08-02 16:22 5509http://fenriswolf.me/2012/04/04 ... -
hadoop常用的指令
2011-10-09 16:50 1700hadoop job -kill jobid 可以整个的杀掉 ... -
Hadoop基准测试
2011-08-08 10:04 1271http://www.michael-noll.com/ ... -
Hadoop Job Scheduler作业调度器
2011-05-21 11:02 2521http://hi.baidu.com/zhengxiang3 ... -
hadoop指定某个文件的blocksize,而不改变整个集群的blocksize
2011-03-20 17:20 2104文件上传的时候,使用下面的命令即可 hadoop f ... -
Hadoop Job Tuning
2011-02-28 15:53 814http://www.searchtb.com/2010/12 ... -
如何在不重启整个hadoop集群的情况下,增加新的节点
2011-02-25 10:12 13941.在namenode 的conf/slaves文件中增加新的 ... -
对hadoop task进行profiling的几种方法整理
2011-02-10 21:57 1649对hadoop task进行profiling的几种方法整 ... -
如何对hadoop作业的某个task进行debug单步跟踪
2011-02-10 21:56 2078http://blog.csdn.net/AE86_FC/ar ... -
hadoop 0.20 程式開發 eclipse plugin
2011-01-26 19:36 2253http://trac.nchc.org.tw/cloud/w ... -
hadoop-0.21.0-eclipse-plugin无法在eclipse中运行解决方案
2011-01-26 09:47 3594LINUX下将hadoop-0.21自带的hadoop ecl ... -
How to Benchmark a Hadoop Cluster
2011-01-19 22:15 2842How to Benchmark a Hadoop Clu ... -
json在线格式化
2010-12-21 16:23 2429http://jsonformatter.curiouscon ...
相关推荐
BeeGFS作为Hadoop文件系统提供了一个替代方案,既可以利用BeeGFS的强大性能,又可以保持Hadoop的生态和灵活性。 实现Hadoop使用BeeGFS作为文件系统的配置方法主要有两种,分别是使用BeeGFS的Hadoop连接器和通过...
5·访问Hadoop文件系统上的文件: 点击Hadoop按钮: 选择需要访问的文件, 在点击DownLoad按钮, 结果如下, 返回“DONE”说明下载成功, 这时Hadoop文件夹里将出现相应的文件。 四、 编程细节: 左边为OS-...
Hadoop文件系统,通常指的是Hadoop分布式文件系统(HDFS),它是为了存储大量数据而设计的,可以在廉价硬件上实现高吞吐量的数据访问。HDFS具有高容错性的特点,能够自动处理失败的节点,并复制数据以保证数据的可靠...
简介Hadoop Distcp(Distributed copy)主要是用于 Hadoop 文件系统内部或之间进行大规模数据复制的工具,它基于 Map/Redu
本文主要讨论了在 Java Web 程序中上传文件到 Hadoop HDFS 文件系统中失败的原因分析及解决方法。通过对问题的分析和解决,可以总结出以下知识点: 1. Hadoop 文件上传失败的原因分析: 在上传文件到 Hadoop HDFS ...
但我们可以从Hadoop文件系统(HDFS)的角度来探讨Hadoop如何处理文件。 【标签】:“tt”同样没有提供具体的信息,这里我们将基于Hadoop的相关概念进行阐述。 **Hadoop文件系统(HDFS):** HDFS是Hadoop的核心...
在Java编程环境中,Hadoop文件系统的API提供了一种与Hadoop分布式文件系统(HDFS)交互的方法。这篇博文“Java API操作Hadoop文件”可能是关于如何利用Java代码来读取、写入、管理和操作存储在Hadoop集群上的数据。...
- fs.defaultFS:定义了Hadoop文件系统的默认名称节点RPC交互端口。通常设置为***,使用端口9000。 - io.file.buffer.size:指的是序列化文件的缓冲大小,它应设置为硬件页面大小的倍数,例如在x86架构上通常是4096...
本文将详细探讨Hadoop文件系统(HDFS)的命令行操作,这些操作对于管理存储在Hadoop上的数据至关重要。 首先,要使用Hadoop文件系统命令,需要启动Hadoop服务并在命令行界面(CLI)输入hadoop fs 。Hadoop文件系统...
5. **格式化NameNode**:首次启动Hadoop集群时,需要对NameNode进行格式化,这会创建Hadoop文件系统的元数据。 6. **启动Hadoop服务**:通过运行start-dfs.sh和start-yarn.sh脚本启动Hadoop的DataNodes、NameNodes...
文件系统的实现,它使用 Seekable Crypto 库为 Hadoop 文件系统提供高效和透明的客户端加密。 支持的密码 目前支持AES/CTR/NoPadding和AES/CBC/PKCS5Padding 。 免责声明不受支持的 AES 模式是 . 此库的使用者应通过...
- **Hadoop文件系统**:Hadoop Distributed File System (HDFS) 是Hadoop的核心组件之一,用于存储大量数据。 - **主要数据结构**:Hadoop中的数据结构主要包括文件块(Block)、文件系统元数据等。 - 文件块:HDFS...
【基于Django的Hadoop文件管理系统】 在信息技术领域,Django和Hadoop是两个非常重要的技术组件,分别在Web开发和大数据处理方面发挥着关键作用。这个“基于Django的Hadoop文件管理系统”是一个结合了这两者优势的...
本教程将通过Eclipse集成开发环境,结合Maven构建工具,详细介绍如何进行Hadoop文件系统的文件增删改查操作。以下是对这些知识点的详细阐述: 1. **Eclipse**: Eclipse是一款流行的Java开发IDE,它提供了丰富的代码...
放一个hello的文件到Hadoop 文件系统 根目录: [root@hadoop local]# touch hello [root@hadoop local]# vi hello [root@hadoop local]# hadoop fs -put hello / 代码: package hadoop....
1. **Hadoop文件系统(HDFS)**:Hadoop分布式文件系统是Hadoop的核心组件,它设计为存储和处理海量数据。HDFS具有高容错性和高可扩展性,能够将数据分布在大量的廉价硬件上,确保数据的可靠性和可用性。 2. **文件...
1. **core-site.xml**:这是Hadoop的核心配置文件,包含了与Hadoop文件系统操作相关的设置。其中最重要的是`fs.defaultFS`,它指定了默认的文件系统,通常是HDFS(Hadoop Distributed File System)的地址,如`hdfs:...
在Windows环境下使用Hadoop时,由于Hadoop原生支持Linux系统,所以需要额外的工具来与Hadoop文件系统(HDFS)交互。这正是`winutils-master.zip`的作用。这个文件包含了Windows平台上的Hadoop实用工具,比如用于设置...
9. 文件系统命令:Hadoop 提供了多种文件系统命令,如 hadoop fs -ls、hadoop fs -put 等,用于管理 HDFS 中的文件。 10. BP(Block Pool):在 HDFS 中,每个数据块都有一个唯一的 BP 名称,该名称是在 HDFS 格式...