• 常用的HDFS操作


      首先,把Hadoop命令加入到PATH环境变量中,直接通过start-dfs.sh开启Hadoop,也可以直接通过hdfs命令访问HDFS中的内容,方便平时的操作。

    配置PATH环境变量

      vim  ~/.bashrc,进入编辑,在最前面加入如下单独一行

      export  PATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin

      source  ~/.bashrc 使设置生效,现在可以在任意目录中直接使用 hdfs 等命令了

    启动Hadoop:start-dfs.sh

      Hadoop系统安装好以后,第一次使用HDFS时,需要首先在HDFS中创建用户目录 : 

      hdfs  dfs  -mkdir  -p  /user/hadoop,由于采用的是hadoop用户登录,所以在HDFS中创建一个“/user/hadoop”用户目录,本地上传的文件都会被保存在/user/hadoop下。

    上传文件: -put 

      本地 /home/Hadoop/temp 文件目录下的file上传到HDFS中的/user/hadoop目录下

        hdfs  dfs  -put  /home/Hadoop/temp/file  ./(“./”表示当前目录,即/user/hadoop目录)

      -appendToFile:若文件存在,则追加到file文件末尾

        hdfs  dfs  -appendToFile  /Home/hadoop/temp/file  ./

      -copyFromLocal:若HDFS中文件已存在,则覆盖file原有文件

        hdfs  dfs  -copyFromLocal  -f  /home/Hadoop/temp/file  ./

    下载文件 -get

      HDFS中的file文件下载到本地的temp目录下

        hdfs  dfs  -get  ./file  /home/Hadoop/temp 

      -copyToLocal:若本地存在该文件,对文件重命名

        hdfs  dfs  -copyToLocal  ./file  /home/Hadoop/temp/file1

    显示文件相关信息:-ls

      显示HDFS中指定的文件的读写权限、大小、创建时间等信息

        hdfs  dfs  -ls  ./file

      输出test目录下所有文件相关信息

        hdfs  dfs  -ls  -R  ./test

    显示文件内容:-cat

      hdfs  dfs  -cat  ./file

    在HDFS中移动文件:-mv

      hdfs  dfs  -mv  ./file  ./test :将file移动到test文件夹下

    删除HDFS中的指定文件:-rm

      hdfs  dfs  -rm  ./file:删除指定文件

      hdfs  dfs  -rm  -r  ./test:删除test目录

    关闭Hadoop:stop-dfs.sh

    通过Java API操作HDFS(要先启动Hadoop)

    写入到HDFS(会自动在HDFS中创建一个文件)

    import java.io.IOException;
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FSDataOutputStream;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    
    public class Write 
    {
        public static void main(String[] args) 
        {
            Configuration conf =new Configuration();
            conf.set("fs.defaultFS", "hdfs://localhost:9000");
             conf.set("fs.hdfs.impl","org.apache.hadoop.hdfs.DistributedFileSystem");
            String filename="test";//要写入的文件名
            byte[] buff="hello World!hh
    ".getBytes();//要写入的内容
            try 
            {
                FileSystem fs=FileSystem.get(conf);
                FSDataOutputStream os=fs.create(new Path(filename));
                os.write(buff, 0, buff.length);
                System.out.println("内容成功写入到"+filename);
                os.close();
                fs.close();
            } catch (IOException e) 
            {
                e.printStackTrace();
            }
        }
    }
    Write

    读取HDFS中的文件内容

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FSDataInputStream;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    
    public class Read 
    {
        public static void main(String[] args) 
        {
            Configuration conf =new Configuration();
            conf.set("fs.defaultFS", "hdfs://localhost:9000");
            conf.set("fs.hdfs.impl","org.apache.hadoop.hdfs.DistributedFileSystem");
            Path filename=new Path("test");//要读取的文件名
            try
            {
                FileSystem fs=FileSystem.get(conf);
                FSDataInputStream getIt=fs.open(filename);
                BufferedReader r=new BufferedReader(new InputStreamReader(getIt));
                String content=null;
                while((content=r.readLine())!=null)//一行一行的读,直到为空
                {
                    System.out.println(content);
                }
                r.close();//关闭文件
                fs.close();//关闭HDFS
            }catch(Exception e)
            {
                e.printStackTrace();
                System.out.println(filename+"文件不存在");
            }
        }
    }
    Read
  • 相关阅读:
    数据结构>堆栈的使用 小强斋
    数据结构>图的存储结构 小强斋
    数据结构>图的基本术语 小强斋
    java使用JNDI 获取weblogic配置的数据源 连接数据库 小强斋
    java使用JNDI 获取weblogic配置的数据源 连接数据库 小强斋
    数据结构>队列 小强斋
    C++实现平方的安全方法(redis的实现)
    jmeter性能测试使用示例
    redis学习总结1
    java NIO使用示例
  • 原文地址:https://www.cnblogs.com/ZJdiem/p/11306567.html
Copyright © 2020-2023  润新知