
4.5 Java编程操作HDFS实践
Hadoop主要是使用Java语言编写实现,这里介绍HDFS常用Java API及其编程实例。Hadoop中关于文件操作类基本上全部都是在“org.apache.hadoop.fs”包中,这些API能够支持的操作包括打开文件、读写文件、删除文件等。
Hadoop编程开发环境:安装好Java JDK1.7和Eclipse开发工具,解压Hadoop的源文件(不是源码文件,而是编译好的安装文件),操作系统环境采用Windows或Linux均可。Hadoop源文件在整个Hadoop开发过程中都会用到,因为很多依赖包都出自里面。
启动Eclipse工具,编写Java程序。为了编写一个能够与HDFS交互的Java应用程序,一般需要向Java工程中添加JAR包,如图4-16所示,点击“Add External JARs…”按钮,导入相应的Hadoop的JAR包,因为这些JAR包含了Hadoop的Java API。

图4-16
以下访问HDFS的应用程序用来检测HDFS文件系统doc目录下是否存在一个test.txt的文件:

编译无误,接下来把应用程序生成JAR包,部署到Hadoop大数据平台上运行。在Eclipse工作界面左侧的Package Explorer面板中,在工程项目名称上右击,在弹出的菜单中选择“Export...”,如图4-17所示。

图4-17
在弹出的“Export”对话框界面中选择Runnable JAR file,然后点击“Next”按钮,弹出如图4-18所示的界面。

图4-18
在该界面中Launch configuration用于设置生成的JAR包被部署启动时运行的主类,在Export destination中需要设置JAR包要输出保存到哪个目录,点击“Finish”按钮,启动打包过程。然后将打包生成的JAR包复制到Hadoop大数据平台上,使用hadoop jar命令运行,测试结果如图4-19所示。

图4-19
HDFS分布式文件系统很好地解决了大规模数据存储的需求,除了需要使用shell命令来操作HDFS外,使用Eclipse开发操作HDFS的Java应用程序也是必须掌握的技能。