java操作hdfs实例

环境:window7+eclipse+vmware虚拟机+搭建好的hadoop环境(master、slave01、slave02)

内容:主要是在windows环境下,利用eclipse如何来操作hdfs,如上传文件、删除文件、创建文件夹、查看节点信息等。

eclipse开发环境的搭建,请参考:http://www.cnblogs.com/bookwed/p/4816521.html

1、新建maven项目,(主要是因为要引入一些jar包,除非是特别清楚要引入哪些jar包可以不用建maven项目)

  创建web项目的细节不作说明了,下面把关键的pom依赖信息贴出来,这里主要是hadoop的基础包和hdfs包  

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-hdfs</artifactId>
        <version>2.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>2.6.2</version>
    </dependency>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
    </dependency>    

2、创建普通java类,编写代码,贴出部分代码,如下:

 1 public class OperaHDFS {
 2     public static void main(String args[]) throws IOException {
 3         //测试 创建新文件
 4         //byte[] contents = "hello world 世界你好\n--created by eclipse\n".getBytes();
 5         //createFile("/eclipse/first.txt", contents);    //或 createFile("hdfs://192.168.137.56:9000/eclipse/first.txt", contents);
 6
 7         //测试 上传本地文件
 8         //uploadFile("D:\\c.txt", "/eclipse/");
 9
10         //测试重命名
11         //rename("/eclipse/c.txt", "/eclipse/cc.txt");
12
13         //测试删除文件
14         //delete("/eclipse/cc.txt"); //使用相对路径
15         //delete("/eclipse2");    //删除目录
16
17         //测试新建目录
18         //mkdir("/eclipse2/");
19
20         //测试读取文件
21         //readFile("/eclipse/first.txt");
22
23         //测试文件是否存在
24         //fileIsExists("/eclipse/first.txt");
25
26         getNodeMsgHdfs();
27
28     }
29
30     //1、创建新文件(直接生成指定路径下的first.txt,即:/eclipse/first.txt)
31     public static void createFile(String dst, byte[] contents) throws IOException {
32         Configuration conf = new Configuration();
33         System.out.println("-----------:"+conf);
34         conf.set("fs.defaultFS", "hdfs://192.168.137.56:9000");    //master
35         FileSystem fs = FileSystem.get(conf);
36         Path dstPath = new Path(dst); // 目标路径
37         // 打开一个输出流
38         FSDataOutputStream outputStream = fs.create(dstPath);
39         outputStream.write(contents);
40         outputStream.close();
41         fs.close();
42         System.out.println("文件创建成功!");
43     }
44
45     //2、上传本地文件
46     public static void uploadFile(String src, String dst) throws IOException {
47         Configuration conf = new Configuration();
48         conf.set("fs.defaultFS", "hdfs://192.168.137.56:9000");    //master
49         FileSystem fs = FileSystem.get(conf);
50         Path srcPath = new Path(src); // 源路径
51         Path dstPath = new Path(dst); // 目标路径
52         // 调用文件系统的文件复制函数,前面参数是指是否删除原文件,true为删除,默认为false
53         fs.copyFromLocalFile(false, srcPath, dstPath);
54
55         // 打印文件路径
56         System.out.println("Upload to " + conf.get("fs.default.name"));
57         //列出指定路径下的所有文件
58         System.out.println("------------list files------------" + "\n");
59         FileStatus[] fileStatus = fs.listStatus(dstPath);
60         for (FileStatus file : fileStatus) {
61             System.out.println(file.getPath()+"--"+file.getGroup()+"--"+file.getBlockSize()+"--"+file.getLen()+"--");
62         }
63         fs.close();
64     }  }

3、完整代码,请参考: http://pan.baidu.com/s/1eRsXp6M 密码: 9tg9,里面还有一些关于压缩文件的例子。

  

  

时间: 2024-10-21 13:03:13

java操作hdfs实例的相关文章

memcached—Java操作Memcached实例

前面博客介绍了如何在Windows操作系统中安装Memcached,总结一下如何使用Java操作Memcached实例: 代码一: package com.ghj.packageoftool; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import jav

java操作Hbase实例

所用HBase版本为1.1.2,hadoop版本为2.4 /* * 创建一个students表,并进行相关操作 */ import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apach

Java操作HDFS开发环境搭建以及HDFS的读写流程

Java操作HDFS开发环境搭建 在之前我们已经介绍了如何在Linux上进行HDFS伪分布式环境的搭建,也介绍了hdfs中一些常用的命令.但是要如何在代码层面进行操作呢?这是本节将要介绍的内容: 1.首先使用IDEA创建一个maven工程: maven默认是不支持cdh的仓库的,需要在pom.xml中配置cdh的仓库,如下: <repositories> <repository> <id>cloudera</id> <url>https://re

hadoop集群配置和在windows系统上运用java操作hdfs

安装 配置 概念 hadoop常用shell命令 使用java操作hadoop 本文介绍hadoop集群配置和在windows系统上运用java操作hdfs 安装 http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.1/ sudo apt-get install ssh sudo apt-get install rsync mkdir /usr/local/hadoop tar -zxvf hadoop-3.1.1.tar.gz -C

新浪微博数据解析与java操作Hbase实例

之前发过一篇开发新浪微博的文章,对于大家比较感兴趣的内容之一便是如何解析新浪微博的JSON. 其实一开始的时候,也遇过一些挫折,比如直接用JsonArray和JsonObject去解析JSON内容的话,是解析不了的. 因为JSON的格式比较固定,像新浪微博返回的JSON内容则是多了一个中括号及statues标签,如下: { "statuses": [ { "created_at": "Tue May 31 17:46:55 +0800 2011"

java操作hdfs到数据库或者缓存

使用hadoop工具将数据分析出来以后,需要做入库处理或者存到缓存中,不然就没了意义 一下是使用javaAPI操作hdfs存入缓存的代码: <span style="font-family:Microsoft YaHei;font-size:14px;">public class InterestToRedisJob { FileSystem hdfs = null; public InterestToRedisJob(){ init(); } private void i

JAVA操作HDFS

package hdfs; import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.net.URI;import java.net.URISyntaxException; import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FSDataInputSt

Java操作HDFS代码样例

代码在GitHub上. 包括如下几种样例代码: 新建文件夹 删除文件/文件夹 重命名文件/文件夹 查看指定路径下的所有文件 新建文件 读文件 写文件 下载文件至本地 上传本地文件 https://github.com/quchunhui/tod-train-1.0/tree/master/hadoop/src/main/java/hdfs 原文地址:https://www.cnblogs.com/quchunhui/p/9112510.html

hadoop 学习(四)之java操作hdfs

1.导入hadoop jar包 将hadoop/share/common/目录.hadoop/share/common/lib/目录.hadoop/hdfs/目录.下的jar包加入eclipse. 2.开始编码调用 static FileSystem fs=null; public static void main(String[] args) throws Exception { // TODO Auto-generated method stub init(); testUpload();