Hadoop HDFS的一些操作

2019-03-28 13:05|来源: 网络

HDFS的文件操作

格式化HDFS

命令:user@namenode:Hadoop$ bin/hadoop namenode -format

启动HDFS

命令:user@namenode:hadoop$ bin/start-dfs.sh

列出HDFS上的文件

命令:user@namenode:hadoop$ bin/hadoop dfs -ls

使用hadoop API

public List<String[]> GetFileBolckHost(Configuration conf, String FileName) { 
        try { 
            List<String[]> list = new ArrayList<String[]>(); 
            FileSystem hdfs = FileSystem.get(conf); 
            Path path = new Path(FileName); 
            FileStatus fileStatus = hdfs.getFileStatus(path); 
 
            BlockLocation[] blkLocations = hdfs.getFileBlockLocations( 
                    fileStatus, 0, fileStatus.getLen()); 
 
            int blkCount = blkLocations.length; 
            for (int i = 0; i < blkCount; i++) { 
                String[] hosts = blkLocations[i].getHosts(); 
                list.add(hosts); 
            } 
            return list; 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
        return null; 
    }

在HDFS上创建目录

命令:user@namenode:hadoop$ bin/hadoop dfs -mkdir /文件名

使用hadoop API

// 在HDFS新建文件 
    public FSDataOutputStream CreateFile(Configuration conf, String FileName) { 
        try { 
            FileSystem hdfs = FileSystem.get(conf); 
            Path path = new Path(FileName); 
            FSDataOutputStream outputStream = hdfs.create(path); 
            return outputStream; 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
        return null; 
    }

相关问答

更多
  • 恭喜啊,学习hadoop需要先学好命令啊。 想学Linux命令就去www.linuxsky.cn,里面也可以学习脚本和svn的命令,哈哈
  • hadoop hdfs目录[2022-03-28]

    移动目录的命令很简单啊,跟Linux shell的命令差不多: hdfs dfs -mv 被移动的目录A 目标目录B 直接移动就行,不知道能否解决你的问题。
  • 不知道你说的“调用Filesystem命令”是什么意思;使用hadoop fs -rm可以正常执行,MapReduce也可以正常读写HDFS文件,说明HDFS文件系统没有问题。你不妨试一试hadoop fs -chmod a+rwx 设置rwx权限后,再试一次。
  • hadoop hdfs的问题[2021-10-30]

    最下面那张图里环境变量设置的那一行多了一个$符号 export JAVA_HOME=/usr/java/jdk1.6.0_35
  • 不知道你说的“调用Filesystem命令”是什么意思;使用hadoop fs -rm可以正常执行,MapReduce也可以正常读写HDFS文件,说明HDFS文件系统没有问题。你不妨试一试hadoop fs -chmod a+rwx 设置rwx权限后,再试一次。
  • HBase没有更新 。 当您在HBase中执行删除操作(整行或特定单元格)时,会将特殊删除标记添加到单元格中。 即将到来的扫描或获取操作不会看到该单元格。 当您执行插入操作时,只需使用当前时间戳创建一个新单元格。 扫描并获取操作将返回更新版本的单元格。 真正的物理删除是在HBase 主要压缩过程中执行的。 另外,减少了HFile的压缩次数以提供更快的读取操作。 There are no updates in HBase. When you perform a delete in HBase (the who ...
  • cloudera和root用户都无权在/solr上运行任何命令 运行您需要更改为hdfs的任何命令,然后发出如下命令: su - hdfs hadoop fs -mkdir /solr/test_core/ exit Found the answer: You should use these weird command. sudo -u hdfs hdfs dfs -mkdir /solr/test_core/
  • 实现自己的DFS接口并使其与hadoop一起使用相对简单。 您所需要的只是文件和目录的文件系统概念与您的存储之间的某种逻辑映射。 在NoSQL的情况下(如果我假设KeyValue),您应该决定如何表示目录。 您可以执行一些特殊节点,也可以将路径放入密钥。 另一个决策点 - 决定您是否关心数据位置 关于文档,我认为s3n DFS实现的来源最好从一开始。 我认为关闭的例子是由DataStax完成的Cassandra上的Hadoop http://www.datastax.com/ 另一个例子(我们稍后做的事情) ...
  • Apache Spark独立于Hadoop。 Spark允许您使用不同的数据源(包括HDFS),并且能够在独立群集中运行,或者使用现有的资源管理框架(例如,YARN,Mesos)。 因此,如果您只对Spark感兴趣,则无需安装Hadoop。 Apache Spark is independent from Hadoop. Spark allows you to use different sources of data (incl. HDFS) and is capable of running eithe ...
  • 绝对可能。 不要认为Hadoop是一个可安装的程序,它只是由一群在集群内不同节点上运行的java进程组成。 如果你使用hadoop tar ball,你可以只运行NameNode和DataNodes进程,如果你只想要HDFS。 如果您使用其他hadoop发行版(例如HDP),我认为HDFS和mapreduce来自不同的rpm软件包,但安装两个rpm软件包都有害。 如果您只需要HDFS,请再次运行NameNode和DataNodes。 Absolutely possible. Don't think Hado ...