一、HDFS基本命令行操作:

1.HDFS集群修改SecondaryNameNode位置到hd09-21)修改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();
    }
}
03-28 13:56