Hadoop有一个抽象的文件系统概念,HDFS只是其中的一个实现。Java抽象类 org.apache.hadoop.fs.FileSystem展示了Hadoop的一个文件系统,而且有几个具体实现,如表
文件系统 | URI 方案 | Java实 现(全部在 org.apache.hadoop) | 描述 | Local | file | fs.LocalFileSystem | 针对有客户端校验和 的本地连接磁盘使用 的文件系统。针对没 有校验和的本 地文件系统使用 RawLocalFileSystem。 详情参见第4章 | HDFS | hdfs | hdfs.Distributed- FileSystem | Hadoop的分布式 文件系统。HDFS 被设计为结合使用 Map-Reduce实现高 效工作 | HFTP | hftp | hdfs.HftpFileSystem | 一个在HTTP上提 供对HDFS只读访 问的文件系统(虽然 其名称为HFTP,但 它与FTP无关)。通 常与distcp结合使用 (参见第3章),在运 行不同版本HDFS的 集群间复制数据 | HSFTP | hsftp | hdfs.Hsftp- FileSystem | 在HTTPS上提供对 HDFS只读访问的 文件系统(同上,与 FTP无关) | HAR | har | fs.HarFileSystem | 一个构建在其他文 件系统上来存档文 件的文件系统。Hadoop 存档一般在HDFS中 的文件存档时使用, 以减少名称节点内存的使用 | KFS(Cloud-Store) | kfs | fs.kfs.Kosmos- FleSystem | cloudstore(其前身是 Kosmos文件系统) 是相似于HDFS或是 Google的GFS的文件 系统,用C++编 写。详 情可参见http://kosmosfs. sourceforge.net/ | FTP | ftp | fs.ftp.FTP- FileSystem | 由FTP服务器支持的 文件系统 | S3(本地) | s3n | fs.s3native.Native- S3FileSystem. | 由Amazon S3支 持的文件 系统。可参见 http://wiki.apache.org /hadoop/AmazonS3 | S3(基于 块) | s3 | fs.s3.S3FileSystem | 由 Amazon S3支 持的文件系统, 以块格式存储文件 (与HDFS很相似) 来解决S3的5 GB 文件大小限制
|
Hadoop提供了许多文件系统的接口,它一般使用URI 方案来选取合适的文件系统实例交互。举例来说,我们在前一小节中研究的文件系统shell可以操作所有的Hadoop文件系统。列出本地文件系统根目录下的文件,输入以下命令: hadoop fs -ls file:/// 尽管运行那些可访问任何文件系统的MapReduce程序是可行的(有时也很方便),但在处理大量数据时,仍然需要选择一个有最优本地数据的分布式文件系统。 文件操作:
查看目录文件 hadoop dfs -ls /user/cl 创建文件目录 hadoop dfs -mkdir /user/cl/temp 删除文件 hadoop dfs -rm /user/cl/temp/a.txt 删除目录与目录下所有文件
hadoop dfs -rmr /user/cl/temp 上传一个本机/home/cl/local.txt到hdfs中/user/cl/temp目录下
hadoop dfs -put /home/cl/local.txt /user/cl/temp 下载文件 下载hdfs中/user/cl/temp目录下的hdfs.txt文件到本机/home/cl/中
hadoop dfs -get /user/cl/temp/hdfs.txt /home/cl 查看文件
hadoop dfs –cat /home/cl/hdfs.txt Job操作
提交MapReduce Job, Hadoop所有的MapReduce Job都是一个jar包 hadoop jar hadoop jar sandbox-mapred-0.0.20.jar sandbox.mapred.WordCountJob /user/cl/input.dat /user/cl/outputdir 杀死某个正在运行的Job 假设Job_Id为:job_201207121738_0001
hadoop job -kill job_201207121738_0001
|