- 浏览: 248087 次
- 性别:
文章分类
最新评论
使用URL的方式读取一个文件内容,需要设置一个handler工厂,这个工厂只能设置一次
使用hadoop的FileSystem读取文件
将一个本地文件拷贝到hadoop文件系统中
列出文件属性
通过路径过滤器查找文件
删除,支持递归删除
重命名
检查文件是否存在
查找某个文件在HDFS中的位置
获取HDFS集群上所有节点的名称
创建本地和远端的checksum
压缩和解压缩,压缩池
static { URL.setURLStreamHandlerFactory( new FsUrlStreamHandlerFactory() ); } public void test1() throws IOException { URL u = new URL("hdfs://IP:8020/test"); InputStream is = u.openStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line = null; while( (line=br.readLine()) != null ) { System.out.println(line); } br.close(); }
使用hadoop的FileSystem读取文件
public void test2() throws IOException { String url = "hdfs://IP:8020/test-data/hello.txt"; Configuration config = new Configuration(); FileSystem fs = FileSystem.get(URI.create(url),config); InputStream is = null; is = fs.open(new Path(url)); IOUtils.copyBytes(is, System.out, 4096, false); }
将一个本地文件拷贝到hadoop文件系统中
public void test3() throws IOException { String src = "C:\\test.txt"; String dest = "hdfs://IP:8020/test-data/hello.txt"; InputStream is = new BufferedInputStream(new FileInputStream(src)); Configuration config = new Configuration(); FileSystem fs = FileSystem.get(URI.create(dest), config); OutputStream os = fs.create(new Path(dest), new Progressable() { @Override public void progress() { System.out.print("."); } }); IOUtils.copyBytes(is, os, 4096, true); System.out.println("ok~"); }
列出文件属性
public void test4() throws IOException { String url = "hdfs:/IP:8020/test-data/hello.txt"; Configuration config = new Configuration(); FileSystem fs = FileSystem.get(URI.create(url),config); FileStatus status = fs.getFileStatus(new Path(url)); System.out.println("AccessTime : "+status.getAccessTime()); System.out.println("BlockSize : "+status.getBlockSize()); System.out.println("group : "+status.getGroup()); System.out.println("len : "+status.getLen()); System.out.println("ModificationTime : "+status.getModificationTime()); System.out.println("owner : "+status.getOwner()); System.out.println("is dir ? : "+status.isDir()); System.out.println("path : "+status.getPath()); System.out.println("permission : "+status.getPermission()); System.out.println("replication : "+status.getReplication()); }
通过路径过滤器查找文件
public void test5() throws IOException { String url = "hdfs://IP:8020/test-data/*"; Configuration config = new Configuration(); FileSystem fs = FileSystem.get(URI.create(url),config); FileStatus[] status = fs.globStatus( new Path(url), new RegexPathFilter("^.*hello.*$") ); for(FileStatus s:status) { System.out.println(s.getPath().toString()); } System.out.println("filter execute ok"); } //路径正则过滤器类 public class RegexPathFilter implements PathFilter { private final String regex; public RegexPathFilter(String regex) { this.regex = regex; } @Override public boolean accept(Path path) { return path.toString().matches(regex); } }
删除,支持递归删除
public void delete() throws IOException { String url = "hdfs://IP:8020/test-data/xxx.txt"; Configuration config = new Configuration(); FileSystem fs = FileSystem.get(URI.create(url),config); fs.delete(new Path(url), false); System.out.println("delete ok"); }
重命名
public void test5_rename() throws IOException { String url = "hdfs://IP:8020/test-data/xx.txt"; String url2 = "hdfs://IP:8020/test-data/modify-xx.txt"; Configuration config = new Configuration(); FileSystem fs = FileSystem.get(URI.create(url),config); boolean isok = fs.rename(new Path(url), new Path(url2)); System.out.println("complete : "+isok); }
检查文件是否存在
public void exist() throws IOException { String url = "hdfs:/IP:8020/test-data/modify-xx.txt"; Configuration config = new Configuration(); FileSystem fs = FileSystem.get(URI.create(url),config); boolean isExist = fs.exists( new Path(url)); System.out.println("exist ? "+isExist); }
查找某个文件在HDFS中的位置
public void test5_location() throws IOException { String url = "hdfs://IP:8020/test-data/hello.txt"; Configuration config = new Configuration(); FileSystem fs = FileSystem.get(URI.create(url),config); FileStatus status = fs.getFileStatus(new Path(url)); BlockLocation[] bls = fs.getFileBlockLocations(status, 0, status.getLen()); for(int i=0;i<bls.length;i++) { String[] hosts = bls[i].getHosts(); System.out.println("block :"+i+"\tlocation : "+hosts[i]); } }
获取HDFS集群上所有节点的名称
public void test5_allnode() throws IOException { String url2 = "hdfs://IP:8020/test-data/modify-xx.txt"; Configuration config = new Configuration(); FileSystem fs = FileSystem.get(URI.create(url2),config); DistributedFileSystem hdfs = (DistributedFileSystem)fs; DatanodeInfo[] status = hdfs.getDataNodeStats(); for(DatanodeInfo d:status) { System.out.println(d.getHostName()); } }
创建本地和远端的checksum
public void localCreateChecksum() throws IOException { String url = "file:///C:/zzzz/abc.txt"; Configuration config = new Configuration(); FileSystem fs = FileSystem.get(URI.create(url),config); ChecksumFileSystem cfs = new LocalFileSystem(fs); FSDataOutputStream fsdos = cfs.create(new Path(url)); fsdos.write("hehe".getBytes()); fsdos.flush(); fsdos.close(); } public void distributeCreateChecksum() throws IOException { String url = "hdfs://IP:8020/test/abc.txt"; Configuration config = new Configuration(); FileSystem fs = FileSystem.get(URI.create(url),config); ChecksumFileSystem cfs = new LocalFileSystem(fs); FSDataOutputStream fsdos = cfs.create(new Path(url)); fsdos.write("hehe~".getBytes()); fsdos.flush(); fsdos.close(); }
压缩和解压缩,压缩池
public void compress() throws IOException { FileInputStream fis = new FileInputStream("C:\\zzzz\\xx.txt"); GzipCodec gc = new GzipCodec(); String url = "hdfs://IP:8020/test/compress.txt"; Configuration config = new Configuration(); FileSystem fs = FileSystem.get(URI.create(url), config); OutputStream fdos = fs.create(new Path(url)); byte[] buf = new byte[10240]; int len = fis.read(buf); System.out.println("content:"); System.out.println( new String(buf,0,len) ); CompressionOutputStream cos = gc.createOutputStream(fdos); cos.write(buf,0,len); cos.flush(); cos.close(); } public void decompress() throws IOException { String url = "hdfs://IP:8020/test/compress.gz"; Configuration config = new Configuration(); FileSystem fs = FileSystem.get(URI.create(url), config); GzipCodec gc = new GzipCodec(); FSDataInputStream fdis = fs.open(new Path(url)); CompressionInputStream cis = gc.createInputStream(fdis); IOUtils.copy(cis, System.out); } public void comprssPool() throws IOException { FileInputStream fis = new FileInputStream("C:\\zzzz\\abc.txt"); GzipCodec gc = new GzipCodec(); FileOutputStream fdos = new FileOutputStream("C:/zzzz/pool.txt"); Compressor compressor = CodecPool.getCompressor(gc); CompressionOutputStream cos = gc.createOutputStream(fdos, compressor); IOUtils.copy(fis, cos); CodecPool.returnCompressor(compressor); }
发表评论
-
Hadoop-DataNode分析
2016-04-06 18:41 676HDFS主要流程 客户端创建到name ... -
Hadoop-远程过程调用
2015-06-15 16:46 548Hadoop IPC类图如下 ... -
HBase-cache相关
2015-04-09 15:03 658一些配置参数 hbase.lru.block ... -
HBase-压缩和分割原理
2015-03-31 11:33 610HRegionServer调用合并请求 主要逻 ... -
Hbase-HMaster架构
2015-03-24 19:21 2227HMaster的整体结构 一个master包含如下 ... -
Hadoop-balancer执行原理
2015-01-28 21:19 962核心类在 org.apache.h ... -
Hadoop-commons分析
2014-10-22 18:19 774hadoop的配置文件相关类 Configurati ... -
HBase-客户端请求
2014-05-27 19:46 1644客户端相关参数 参数 默认值 含义 ... -
HBase-服务端处理请求的过程
2014-05-19 19:19 2525Region的架构 HRegionSe ... -
HBase-打印日志内容分析
2014-05-15 17:14 969WARN org.apache.hadoop.hba ... -
HBase-遇到的问题
2014-05-15 16:43 2872rowlock release problem wi ... -
HBase-HFile的读写操作
2014-05-03 19:40 3373写入数据: public class Test ... -
HBase-WAL相关线程处理逻辑
2014-02-28 19:21 2147日志同步线程 HLog$L ... -
HBase-region server的线程
2014-02-28 19:19 48这个是用于和HDFS通讯的客户端线程 Daemon Th ... -
HBase-RegionServer架构
2014-02-28 19:06 4756RegionServer的整体结构 一个regio ... -
HBase-HLog分析
2014-02-08 17:37 2214HLog的全部实现在包: org.apache.hado ... -
HBase-HFile分析
2014-01-10 19:25 3278HFile的整体结构图如下: 整个HFile分四 ... -
HBase-线程调整
2013-08-20 17:14 770read线程数量 ipc.server.read.thread ... -
Hadoop-常见问题
2013-07-05 12:50 636经典漫画讲解HDFS原理 http://blog.china ... -
HBase-各种API操作
2013-07-03 11:08 975初始化 Configuration HBASE_CONFI ...
相关推荐
- **winutils.exe**:此文件是Windows环境下Hadoop操作的工具集,包括了常用的HDFS命令行工具等。对于在Windows系统下使用Hadoop的用户来说非常有用。 - **插件**:Hadoop插件不仅可以提高开发效率,还可以帮助...
标题中的"hadoop-2.7.1.tar.gz"是一个压缩包...用户需要了解Hadoop的基本架构和操作流程,以及如何在Windows环境下配置Hadoop的相关参数。同时,这个版本的Hadoop带来了更高效的数据处理能力和更稳定的分布式存储系统。
这个压缩包包含了与Hadoop相关的C/C++编写的本地库,这些库能够提升Hadoop在特定硬件或操作系统上的性能,特别是在I/O操作和计算密集型任务方面。 描述中提到的 "native-2.7.2-ct7.x.tgz" 是该压缩包的文件名,暗示...
Java是编写Hadoop和Spark程序的常用语言,而Scala则提供了一种更高级、更简洁的方式来编写Spark应用。通过结合使用这些工具和技术,开发者可以构建复杂的数据处理管道,高效地处理PB级别的数据。 在Windows环境中...
2. `sbin`: 存放管理脚本,用于集群级别的操作,如启动和停止整个Hadoop集群。 3. `lib`: 包含Hadoop运行所需的库文件。 4. `conf`: 默认配置文件,用户可以根据自己的集群设置进行修改。 5. `src`: Hadoop的源代码...
Linux是Hadoop最常用的运行平台,因为它提供了稳定、高性能的服务器环境。你需要了解基本的Linux命令行操作,如文件和目录管理(ls、cd、mkdir、rm等)、文本编辑器(如vim或nano)的使用,以及网络配置和权限管理。...
此外,插件还可能提供HDFS资源浏览器,允许开发者查看和操作Hadoop集群上的文件和目录。总的来说,"hadoop-eclipse-plugin"极大地提高了Hadoop开发的效率和便利性,是Hadoop开发者不可或缺的工具之一。 总结一下,...
1. **Hadoop客户端**: 这通常指的是Hadoop的命令行工具,如hadoop fs(用于文件操作)、hadoop jar(用于运行jar包中的MapReduce作业)等,这些工具允许用户在本地与远程Hadoop集群交互。 2. **环境配置**: 工具包...
通过本文的介绍,我们对"Idea hadoop-hdfs插件"有了全面的认识,它为Hadoop开发人员提供了强大的HDFS操作支持,让数据操作变得更为便捷。在大数据开发的日常工作中,熟练掌握并利用这样的工具,无疑会大大提高我们的...
WordCount是一个简单的程序,用于统计文本文件中单词出现的次数,是验证Hadoop集群功能的常用方法。 总的来说,搭建Hadoop-1.2.1环境涉及多个组件的配置和安装,包括操作系统、JDK、SSH、Hadoop二进制文件,以及...
3. **SSH配置**:尽管Windows不常用SSH,但Hadoop的一些功能如YARN和HDFS的远程管理需要SSH支持。可以使用OpenSSH for Windows或者第三方工具如PuTTY。 4. **安全认证**:如果涉及到安全性,可能需要配置Kerberos以...
这种方法简化了在非Linux操作系统上搭建Hadoop集群的步骤。" 【知识点详述】 1. Hadoop简介:Hadoop是由Apache基金会开发的一个开源框架,它允许在廉价硬件上进行大规模数据处理。其核心包括两个主要组件:HDFS...
3. "hadoop运维命令总结.txt":这可能是对Hadoop操作和维护常用命令的汇总,包括启动、停止Hadoop服务,监控HDFS状态,以及执行MapReduce作业等操作。 从这些文件我们可以学习到的知识点有: 1. **Hadoop的安装与...
下面是一些常用的HDFS shell命令及其使用方法: - **-ls**:列出指定路径下的所有文件和目录。例如,`hadoop fs -ls /path/to/directory`。 - **-lsr**:递归地列出指定路径下的所有文件和目录。 - **-du**:显示...
在这里,我们选择 CentOS 6.5 作为操作系统。下载 CentOS 6.5 的镜像文件,并将其烧录到安装媒体中。启动安装程序,选择 Install CentOS 6.5,回车,继续安装。选择语言,默认是 English,学习可以选择中文,正时...
以上就是关于Hadoop-HDFS的知识点总结,涵盖了HDFS的基本概念、优缺点、架构以及Shell命令操作等内容。HDFS作为Hadoop的核心组件之一,在大数据处理领域具有极其重要的地位。掌握HDFS的相关知识对于从事大数据领域的...
在Windows环境下,Eclipse作为常用的Java开发IDE,如果缺少了这些特定的JAR依赖,那么尝试运行含有Hadoop相关代码的Java程序时,会遇到编译或运行错误。 描述中提到的“在Windows下eclipse运行java程序,报错原因是...
根据提供的文档内容,本文将详细解析Hadoop-2.8.1与Zookeeper-3.4.6在高可用环境下的部署步骤与注意事项,重点包括版本兼容性、主机规划、目录规划以及常用的脚本与命令。 ### 版本兼容性 在搭建Hadoop集群时,...
- 学习如何在不同操作系统上安装和配置Hadoop,包括单机模式、伪分布式模式和完全分布式模式。 4. **Java版本的选择**: - J2EE适用于Web开发,尤其在处理和展示大数据时,可以利用其服务器端功能。 - J2SE是...
【Hadoop-HDFS概述】 Hadoop-HDFS,全称为Hadoop Distributed File System,是一种分布式文件系统,旨在解决大规模数据...这些命令是HDFS开发和运维人员日常工作中常用的基本操作,掌握它们对于有效管理HDFS至关重要。