hadoop学习笔记(三)

2018-03-06  本文已影响0人  桐间纱路

环境搭建好之后我们就要用java操作hdfs了

首先我们新建个maven项目,并引入如下依赖:

    <dependency>

        <groupId>org.apache.hadoop</groupId>

        <artifactId>hadoop-common</artifactId>

        <version>2.7.5</version>

    </dependency>

    <dependency>

        <groupId>org.apache.hadoop</groupId>

        <artifactId>hadoop-hdfs</artifactId>

        <version>2.7.5</version>

    </dependency>

因为我的hadoop是2.7.5版本,因此我导入2.7.5版本jar包。

我们新建一个Demo类。然后通过FileSystem fs = FileSystem.get(conf);创建一个实例,该类在org.apache.hadoop.fs.FileSystem中,不要引错。FileSystem.get()方法要求传入一个org.apache.hadoop.conf.Configuration类型的参数。我们直接new一个Configuration,它会自动读取src目录下的配置文件,因此,我们需要从我们的集群中copy出core-site.xml和hdfs-site.xml放入src目录下,由于我们搭建集群时配置了hostname映射,因此我们要修改一下我们client的hosts映射,如果不修改,需要将我们copy的配置文件中node1等节点名改为节点对应的ip。

好了,现在我们可以开始尝试了。我们调用fs的mkdirs()方法。创建一个文件夹,该方法需要传入一个org.apache.hadoop.fs.Path类型的参数,我们new一个Path,Path path =new Path("/tmp");

fs.mkdirs(path); 当然,最后不要忘记fs.close();运行一下,看看我们的tmp文件是不是创建成功了。

如果发现报错,可能是因为我们client的用户名和namenode的用户名不对应,因为hdfs的安全策略必须保证用户名相同,我们只要修改client的用户名就可以了。修改方法如下:

电脑桌面→开始→运行,快捷键win+R

输入netplwiz,点击确定

选中当前用户名,点击属性

对用户名进行更改,并应用确定

重启计算机,使之生效

当然FileSystem还有许多api在此不一一赘述。

上一篇下一篇

猜你喜欢

热点阅读