Java | API操作HDFS

  • 内容
  • 相关

1HDFS Java API 操作介绍 

hdfs在生产应用中主要是客户端的开发,其核心步骤是从 hdfs 提供的 api 中构造一个 HDFS 的访问客户端对象,然后通过该客户端对象操作(增删改查)HDFS 上的文件

2、eclipse 安装与配置连接 hdfs 

需要的安装包:

下载一个 eclipse 开发工具 eclipse-jee-luna-SR1-win32-x86_64.zip ,官网下载地址:https://www.eclipse.org/downloads/packages/ 

 

 解压到指定文件夹 D:\eclipse_x86_64\eclipse

 

 hadoop-eclipse-plugin-2.6.5.jar 插件放入到 D:\eclipse_x86_64\eclipse\dropins\plugins文件夹下

插件地址https://github.com/winghc/hadoop2x-eclipse-plugin

 

双击启动解压包下的 eclipse.exe 文件,第一次打开需要设置工作环境,你可以指定工作目录(D:\eclipse_x86_64\eclipse-workspace),点击 Launch 安装,安装完成便可以进入到eclipse的操作界面;点击 windows --> Perspective --> Reset Perspective -- > yes 重置一下主界面;点击 windows –> show view –>Project Explorer 这时候多了DFS Location,接下来配置后便可以启用;

 

windows上安装hadoop(如果是远程访问的话,可以不用安装): ” hadoop-2.7.7-centos-6.7.tar.gz”解压到 windows 系统下一个文件夹下(暂时可以不用配置环境变量),文件夹的 路径最好不要带中文。我的目录是:D:\hadoop_win_2.7.7\hadoop-2.7.7

 

 回到打开的 eclipse 操作界面,点击 windows –> prefrences -> 会出现一个对话框;找到Hadoop MapReduce 选项:然后把你安装的 hadoop 路径配置上,就是上一步你解压的那 个文件夹:D:\hadoop_win_2.7.7\hadoop-2.7.7 ,点击Apply and Close

 

 然后点击 windows –> show view –> Other –> MapReduce Tools文件夹下的 --> Map/Reduce Locations-->双击打开;

 

点击打开击右上角图标New Hadoop location.…,然后填写下图的几个位置,-->Finish

 

这样eclipse就成功连接到我们的hdfs集群的主节点hadoop01机上了,便可以利用 eclipse 查看 hdfs 集群的文件信息。


如果打开文件出现中文乱码,操作下面步骤:

Window->Preferences->General ->Content Type->Text->JSP 最下面设置为UTF-8

Window->Preferences->General->Workspace 面板Text file encoding 选择UTF-8

Window->Preferences->XML->XML Files 面板选择 ISO 10646/Unicode(UTF-8)

如果想通过DFS Locations进行hadoop操作,需要在系统的环境变量或java JVM变量里面添加HADOOP_USER_NAME,这个值具体等于多少看自己的情况,以后会运行HADOOP上的Linux的用户名。(修改完重启eclipse,不然可能不生效)

修改前:

只能下载查看,不能上传、删除和创建!!!!


修改后:

可以上传、删除、创建!!!


3、搭建开发环境

  打开eclipse新建一个java项目,起名为HDFSDemo2,点击finish

 

 导入需要的jar包(即:hadoop-2.7.7-centos-6.7.tar.gz里面的)

公共核心包

公共依赖包(全选)

 

hdfs核心包

hdfs依赖包(全选)

 

③ 选中需要添加到项目中的jar包,右键选择"Build Path Add to Build Path",这样Jar包就成功导入到项目中了。按照下图操作即可。 

 

4、Eclipse连接Hdfs

代码如下:

import java.io.IOException;
import java.net.URI; 
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test;
 
public class test {
  @SuppressWarnings("unused")
  @Test
  public void test2() throws IOException, Exception {
    //1.建立与hdfs的连接
    //fs代表是文件系统,本质上就是与文件系统之间的连接(默认获取本地文件系统)
    //连接路径
    URI uri = new URI("hdfs://192.168.222.118:9000");
    //配置对象
    Configuration conf = new Configuration(); //代表client与文件系统连接的配置对象
    conf.set("dfs.replication", "1");
    /*... ...*/
    //操作用户
    String user = "hadoop";
    //获取连接
    FileSystem fs = FileSystem.get(uri, conf, user);
    System.out.println(fs);
    //2.操作(增删查)
    Path dir = new Path("/aa");
    boolean bool;
    bool = fs.mkdirs(dir);
    System.out.println(bool);
    //3.关闭
    fs.close();
  }
}


执行结果如下:

 您阅读这篇文章共花了:

上一篇:Java | Eclipse下导入外部jar包的3种方式

下一篇:Java | Intellij IDEA 2019.1.2(Ultimate Edition)旗舰版(破解)

本文标签:    

版权声明:本文依据CC-BY-NC-SA 3.0协议发布,若无特殊注明,本文皆为《fishyoung》原创,转载请保留文章出处。

本文链接:Java | API操作HDFS - http://www.fishyoung.com/post-283.html