一、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();
}
}