[Hadoop 2] 常用 Java API 及应用实例

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/buildcourage/article/details/78926811

1 打开 Eclipse,开始创建项目,选择顶部菜单 File->New->Java Project,创建名为 HadoopTest 项目,如下图:
Eclipse

2 为项目加载所需要的 jar 包。

  • 如何获取 jar 包: Java API 所在的 jar 包都在已经安装好的 hadoop 文件夹中,路径为: <hadoop_home>/share/hadoop下。本项目所需的 hadoop jar 包主要有 hadoop-common-2.9.0.jarhadoop-hdfs-2.9.0.jar

  • 具体操作为:在所选的 Eclipse 项目上右键点击->在弹出菜单中选择 Properties->Java Build Path->Libraries->Add Externall JARS

  • 另外,为了避免报“ClassNotFound”异常,还需要向项目中加入 hadoop API 所依赖的第三方包,这些包在 <hadoop_home>/share/hadoop/common/lib/ 文件夹下,将该lib文件整个复制到项目根目录下,并在 eclipse 中刷新项目,选中 lib 下的所有 jar 包,右键选择 Build Path->Add to Build Path
    添加jar包

3 编写一个简单的程序来测试伪分布文件系统 HDFS 上是否存在 test.txt 文件:

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class Chapter3 {
    public static void main(String[] args) {
        try {
            String filename="hdfs://localhost:9000/user/hadoop/test.txt";
            Configuration conf=new Configuration();
            FileSystem fs=FileSystem.get(conf);
            if(fs.exists(new Path(filename))) {
                System.out.println("文件存在");
            }else {
                System.out.println("文件不存在");
            }
        }catch(Exception e) {
            e.printStackTrace();
        }
    }
}

4 直接运行会报错

Wrong FS: hdfs://localhost:9000/user/hadoop/test.txt, expected: file:///

该错误的解决方法是将 <hadoop_home>/etc/hadoop/ 文件夹下的 core-site.xml 文件和 hdfs-site.xml 文件复制拷贝到项目的 src/ 目录下。

5 再运行还会报以下错误:

No FileSystem for scheme “hdfs”

需要添加 hadoop-hdfs-client-2.9.0.jar 包到Build Path下。

6 运行成功后结果如下:

运行结果

参考资料

[1] Eclipse下导入外部jar包的3种方式:http://blog.csdn.net/mazhaojuan/article/details/21403717
[2] Wrong FS:http://blog.itpub.net/22846396/viewspace-1119945
[3] 大数据技术与应用 课件

猜你喜欢

转载自blog.csdn.net/buildcourage/article/details/78926811
今日推荐