一、HDFS基本命令行操作:

1.HDFS集群修改SecondaryNameNode位置到hd09-2
    (1)修改hdfs-site.xml
        <configuration>
            //配置元数据存储位置
            <property>
                <name>dfs.namenode.name.dir</name>
                <value>/root/hd/dfs/name</value>
            </property>
            //配置数据存储位置
            <property>
                <name>dfs.datanode.data.dir</name>
                <value>/root/hd/dfs/data</value>
            </property>
            
            <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>hd09-2:50090</value>
            </property>    
        </configuration>
        
        注意上面的第三个<property>不是
            <property>
                <name>dfs.namenode.secondary.https-address</name>
                <value>hd09-2:50090</value>
            </property>    
        
    (2)分发hdfs-site.xml到其他服务器
        cd /root/hd/hadoop-2.8.4/etc/hadoop
        
        scp hdfs-site.xml hd09-2:$PWD
        scp hdfs-site.xml hd09-3:$PWD
    
    (3)hdfs启动命令
        start-dfs.sh
    
    (4)hdfs停止命令
        stop-dfs.sh

2.HDFS集群修改replication(副本数)
        修改hdfs-site.xml 在<configuration>中加入
            <property>
                <name>dfs.replication</name>
                <value>3</value>
            </property>
        其中<value>中的值就是副本数

3.HDFS集群修改blocksize(块大小)                
        修改hdfs-site.xml 在<configuration>中加入
            <property>
                <name>dfs.blocksize</name>
                <value>134217728</value>
            </property>
        其中<value>中的值就是块大小,单位是字节(byte)
        
4.hdfs命令行
    (1)查看帮助
        hdfs dfs -help 
        
    (2)查看当前目录信息
        hdfs dfs -ls /
        
    (3)上传文件
        hdfs dfs -put /本地路径 /hdfs路径
        
    (4)剪切文件
        hdfs dfs -moveFromLocal a.txt /aa.txt
        
    (5)下载文件到本地
        hdfs dfs -get /hdfs路径 /本地路径
        
    (6)合并下载
        hdfs dfs -getmerge /hdfs路径文件夹 /合并后的文件
        
    (7)创建文件夹
        hdfs dfs -mkdir /hello
        
    (8)创建多级文件夹
        hdfs dfs -mkdir -p /hello/world
        
    (9)移动hdfs文件
        hdfs dfs -mv /hdfs路径 /hdfs路径
        
    (10)复制hdfs文件
        hdfs dfs -cp /hdfs路径 /hdfs路径
        
    (11)删除hdfs文件
        hdfs dfs -rm /aa.txt
        
    (12)删除hdfs文件夹
        hdfs dfs -rm -r /hello
        
    (13)查看hdfs中的文件
        hdfs dfs -cat /文件
        hdfs dfs -tail -f /文件
        
    (14)查看文件夹中有多少个文件
        hdfs dfs -count /文件夹
        
    (15)查看hdfs的总空间
        hdfs dfs -df /
        hdfs dfs -df -h /
        
    (16)修改副本数    
        hdfs dfs -setrep 1 /a.txt
    

二、上传文件的简单API:

 
package com.css.hdfs01;

import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class HdfsClientDemo01 {
    public static void main(String[] args) throws IOException, InterruptedException, URISyntaxException {
        //1.客户端加载配置文件
        Configuration conf = new Configuration();
        
        //2.指定配置(设置成2个副本数)
        conf.set("dfs.replication", "2");
        
        //3.指定块大小
        conf.set("dfs.blocksize", "64m");
        
        //4.构造客户端
        FileSystem fs = FileSystem.get(new URI("hdfs://192.168.146.132:9000"), conf, "root");
        
        //5.上传文件
        fs.copyFromLocalFile(new Path("c:/words.txt"), new Path("/words.txt"));
        
        //6.关闭资源
        fs.close();
    }
}
 

版权声明:本文为sandea原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/sandea/p/11982292.html