在IDEA中对HDFS进⾏操作
在IDEA中使⽤JavaAPI对Hadoop进⾏操作
简介
在本期博客中,笔者会详细的介绍⾃⼰通过IDEA开发⼯具使⽤Java API接⼝对Hadoop的HDFS⽂件系统进⾏操作,其中包括安装Hadoop 在Windows的环境配置,以及通过IDEA创建Maven项⽬并配置相关⽂件。
⼀、 Java API相关的简单介绍
功能描述
通过Java API我们可以在Windows系统中编写Java程序来对HDFS⽂件系统进⾏操作。
Hadoop官⽅的Hadoop API⽂档,可以访问如下⽹站,查看各个API的功能:idea开发安卓app教程
在这⾥简单介绍⼀些基础知识。
Hadoop中关于⽂件操作类基本上全部是在“org.apache.hadoop.fs”包中,这些API能够⽀持的操作包含:
打开⽂件,读写⽂件,删除⽂件等。
在这说明⼀下⽂件在 Hadoop 中表⽰⼀个Path对象,通常封装⼀个URI。如HDFS上有个test⽂件,则URI表⽰成
hdfs://master:9000/test。
⾸先,介绍Hadoop中的Configuration类,该类的对象封装了客户端或者服务器的配置,每次开始⼀个对hdfs进⾏操作的Java程序都要进⾏的⼀步,就是创建配置⽂件。
例:Configuration conf= new Configuration()
接下来是Hadoop中最终⾯向⽤户提供的接⼝类FileSystem,该类的对象是⽂件系统对象,是个抽象类,只能通过类的 get ⽅法得到具体的类,可以⽤该对象的⼀些⽅法来对⽂件进⾏操作。
例:FileSystem fs = (conf)
综上所述,我们可以得到⼀个操作⽂件的程序框架:
operator()
{
得到Configuration对象
得到FileSystem对象
进⾏⽂件操作
}
⽂件操作:
1. 上传⽂件
通过 “fs.copyFromLocalFile(Path src,Path dst)” 可将本地⽂件上传到HDFS指定的位置上,其中 src 和 dst 均为⽂件完整路径,但src是本地⽂件的路径,dst是在hdfs中存放⽂件的路径。
例:
2. 新建⽂件
通过 “fs.mkdirs(Path f)”可在 HDFS 上创建⽂件,其中 f为⽂件的完整路径。
例:
fs.mkdirs(new Path("/test3"));
3. 下载⽂件
通过“fs.copyToLocalFile(Path src, Path dst)”可在hdfs中下载⽂件。其中 src 为HDFS上的⽂件, dst为要下载到本地的⽂件名.例:
4. 删除⽂件
通过“ fs.delete(Path path, Boolean b)”可删除hdfs⽂件,其中 path 为要删除的⽂件。
例:
fs.delete(new Path("/test"),true);
5. 新建⽂件并写⼊数据
通过 “ate(Path f, Boolean b)” 可在 HDFS 上创建⽂件,其中 f 为⽂件的完整路径, b 为判断是否覆盖。
例:
Path dfs =new Path("/test2/hdfsfile");
//创建新⽂件,如果有则覆盖(true)
FSDataOutputStream create = fs.create(dfs,true);
//向新创建的⽂件中写⼊数据
create.writeBytes("Hello,HDFS!");
注意:
由于hdfs不⽀持并发写⼊,所以每次操作完都要关闭⽂件系统对象。
例: fs.close();
相关链接:
⼆、操作步骤
第⼀步:Windows环境下Hadoop环境变量配置
参考链接:
说明:以上连接⽤来参考如何修改Hadoop的bin⽂件,不是要求在Windows中安装虚拟机,因为笔者的Hadoop是2.6.5的所以只把
2.6.5的版本放在上⾯,要是读者需要其他版本的,请⾃⾏百度选择需要替换的Hadoop版本对应的bin⽬录。
补充⼩知识:是模拟Linux环境,如果缺少这个程序,会报空指针异常。
当你替换完之后,可在⾃⼰的hadoop⽂件夹的bin⽬录下⾯看到多了很多东西,如下图所⽰
接下来就是去此电脑->⾼级系统设置->环境变量->系统变量中进⾏设置,详情请看上⾯开始的链接,和兄弟萌配置jdk环境变量的操作类似。最后怎么看成功了呢请看下图:
输⼊hadoop 以及 winutils 不报错就完成了第⼀步Hadoop的环境配置。
第⼆步:Windows和Linux中的JDK版本要⼀致
链接:
就好⽐我⾃⼰的JDK在Linux中的版本是8u151,是1.8的,我就将⾃⼰原来Windows的JDK删了再弄了⼀个1.8的版本安装。
如果在第⼀步中hadoop -version命令出jdk的错,⼗有⼋九就是Windows的jdk路径有问题,需要打开Hadoop⽂件夹etc⽬录中的d⽂件,把⾃⼰的路径修改,如图所⽰:
中间的PROGRA~1是program file的缩写,可以避免⼀些路径空格的问题。
第三步、创建⼀个Maven项⽬
参考链接:
在官⽹下载apache的maven包,链接如下:
在下载完之后,有两个⼩步骤:1.修改镜像地址 2.修改本地仓库地址
配置maven国内镜像:(远程仓库)
  1、在不配置镜像的情况下,maven默认会使⽤中央库.
  2、maven中央库在国外,访问会很慢,甚⾄有时候会出现⽆法下载的情况.
  3、为了解决依赖下载速度的问题,需要配置maven国内镜像
镜像:如果仓库X可以提供仓库Y存储的所有内容,那么就可以认为X是Y的⼀个镜像。
换句话说,任何⼀个可以从仓库Y获得的构件,都能够从它的镜像中获取。
本地仓库是远程仓库的⼀个缓冲和⼦集,存储所有项⽬的依赖关系,构建Maven项⽬的时候,⾸先会从本地仓库查资源,如果没有,Maven会从远程仓库下载到本地仓库,在下次使⽤时就不需要从远程下载。
Maven默认的本地仓库路径为${user.home}/.m2/repository,如C:/Users/admin/.m2/repository。
项⽬较多时,会占⽤过多C盘资源,因此可以⾃定义本地资源库。
使⽤仓库配置的优先级顺序:l>⽤户级别>全局级别。
补充说明:l主要⽤于配置maven的运⾏环境等⼀系列通⽤的属性,是全局级别的配置⽂件;⽽l(下⾯会出现)主要描述了项⽬的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和licenses,以及其他所有的项⽬相关因素,是项⽬级别的配置⽂件。
接下来就是操作步骤:
1.到maven安装⽬录conf⽂件夹下的l⽂件进⾏修改,在原settings⽂件中的"mirrors"标签中
<!--阿⾥云镜像-->
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>maven.aliyun/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
2. 同⼀个l⽂件中到下⾯这⾏修改即可(这只是为了改变下载路径,⾃⼰⾃定义就⾏)
<localRepository>此处修改</localRepository>
如图所⽰:
3.开始创建

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。