栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hadoop:通过Java访问并操作Hadoop,进行文件的存取

Hadoop:通过Java访问并操作Hadoop,进行文件的存取

实验三 HDFS

1 实验目的
  1. 使用Hadoop的分布式存储HDFS系统存储数据;
  2. 命令行方式;
  3. Java方式。

2 实验内容

启动Hadoop集群,使用命令行方式往文件系统中添加数据,下载数据。通过Java访问Hadoop,使用Java操作Hadoop,进行文件的存取。

3 实验知识点

Hadoop;Java;HDFS;命令行;Java访问HDFS。

4 实验时长

    8学时。

5 实验环境

Linux;Hadoop;Java

6 实验过程

一、hdfs命令行

(1)查看帮助:hdfs dfs -help

 (2)查看当前目录信息

由于当前路径下无文件,故先创建目录input

随后使用命令:hdfs dfs -ls /:

    (3)上传文件

在home目录下创建文件dd.txt,使用命令:hdfs dfs -put dd.txt /input将本地文件dd.txt上传到hdfs路径中:

 (4)剪切文件:使用命令hdfs dfs -moveFromLocal dd.txt /aa.txt,将本地文件dd.txt剪切到hdfs路径下:

 (5)下载文件到本地。 使用命令:hdfs dfs -get /aa.txt /home,将hdfs路径下的aa.txt文件下载到本地home。

 (6)合并下载

使用命令:hdfs dfs -getmerge /input /aa.txt,将hdfs /input路径下的文件下载到本地aa.txt下

 (7)创建文件夹。使用命令:hdfs dfs -mkdir /add,在hdfs路径下创建目录dd:

 (8)创建多级文件夹。使用命令:hdfs dfs -mkdir -p /dd/szd,一步创建多级文件夹。

(9)移动hdfs文件。使用命令:hdfs dfs -mv /input/dd.txt /dd,将hdfs内文件移动到hdfs指定文件夹下。

(10)复制hdfs文件:使用命令:hdfs dfs -cp /aa.txt /dd/szd,将hdfs指定文件复制到hdfs指定文件夹下

(11)删除hdfs文件。使用命令:hdfs dfs -rm /aa.txt,将hdfs中aa.txt删除。

 (12)删除hdfs文件夹。使用命令:hdfs dfs -rm -r /hello,将hdfs中input目录删除。

 (13)查看hdfs中的文件。使用命令:hdfs dfs -cat /dd/szd/dt.txt。

 

 使用命令:hdfs dfs -tail -f /dd/szd/aa.txt

 (14)查看文件夹中有多少个文件

使用命令:hdfs dfs -count /dd .查看dd文件夹下有多少个文件:

(15)查看hdfs的总空间

使用命令:hdfs dfs -df /以及hdfs dfs -df -h /

(16)修改副本数:使用命令:hdfs dfs -setrep 1 /dd/szd/aa.txt

二、配置Hadoop环境

(1)在D:Hadoophadoop-2.8.5etchadoop目录下修改hadoop.env.cmd中的内容:

set JAVA_HOME="C:Program FilesJavajdk1.8.0_45"

(2)将winutils.exe放到hadoopbin目录下。

 (3)在【我的电脑】-【属性】-【高级系统设置】-【环境变量】中添加系统变量HADOOP_HOME。

 (4)Path中添加变量.

 三、java操作hdfs

(1)新建java项目Testhadoop,在项目中新建lib文件夹,将jar包拷贝到文件夹中。

(2)在Libraries中添加新的jar包:

 (3)在src中创建新的包a,创建TestHdfs类:

 (4)在TestHadoop类中输入运行代码:

public class TestHdfs {

    FileSystem fs;

    public void init() {

        try {

            URI uri = new URI("hdfs://hp1:9000");

            Configuration conf = new Configuration();

//            conf.set("dfs.replication", "2");

//            conf.set("dfs.block.size", "64m");

            conf.set("fs.hdfs.impl", "org.apache.hadoop.hdfs.DistributedFileSystem");

            fs = FileSystem.get(uri, conf, "root");

        } catch (IOException e) {

            e.printStackTrace();

        } catch (InterruptedException e) {

            e.printStackTrace();

        } catch (URISyntaxException e) {

            e.printStackTrace();

        }

    }

    public void put() {

        try {

//            fs.copyFromLocalFile(new Path("D://software/spring-tool-suite-3.9.0.RELEASE-e4.7.0-win32-x86_64.zip"),

//                    new Path("/test"));

            fs.copyFromLocalFile(new Path("/root/apps/e.zip"),

                    new Path("/ee"));

        } catch (IllegalArgumentException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

    //下载需要配置hadoop_home

    public void get() {

        try {

            fs.copyToLocalFile(new Path("/test"),

                    new Path("d://test/sts.zip"));

        } catch (IllegalArgumentException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

    public static void main(String[] args) {

        TestHdfs th = new TestHdfs();

        th.init();

        th.put();

        //th.get();

    }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/307256.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号