大数据Hadoop入门——HDFS分布式文件系统基础

HDFS总结

在现代的企业环境中,海量数据超过单台物理计算机的存储能力,分布式文件系统应运而生,对数据分区存储于若干物理主机,管理网络中跨多台计算机存储的文件系统。

HDFS只是分布式文件管理系统中的一种。

HDFS命令

基础语法:【hadoop fs 具体命令 、hdfs dfs 具体命令】
两个是完全相同的。

显示文件列表
# hdfs dfs -ls URL
创建目录
# hdfs dfs -mkdir [-p] URL
使用-p参数可以递归创建目录
上传文件(到文件系统)
# hdfs dfs -put <本地路径> <服务器路径>
案例:put将当前/etc/passwd文件上传到文件系统中/usr/hdfs中
# hdfs dfs -put /etc/passwd /usr/hdfs
# hdfs dfs -moveFromLocal <本地路径> <服务器路径>
案例:将当前a.txt文件上传到文件系统中/user/hdfs中
# hdfs dfs -moveFromLocal a.txt /user/hdfs

区别:moveFromLocal和put命令类似,但是源文件【本地文件】拷贝之后自身被删除。

下载文件(从文件系统)
# hdfs dfs -get <文件系统中指定文件> <本地路径>
案例:将/user/hdfs/a.txt文件拷贝到本地
# hdfs dfs -get /user/hdfs/a.txt .
移动文件(该命令不能跨文件系统)
# hdfs dfs -mv <文件系统中源路径> <文件系统中目的路径>
案例:将/user/hdfs/a.txt文件移动到/input目录中
# hdfs dfs -mv /user/hdfs/a.txt /input
删除文件/非空目录
# hdfs dfs -rm [-r] p [目标路径]
使用-r参数将当前目录下的所有文件及目录都删除
将文件/目录拷贝到目标路径
# hdfs dfs -cp <文件路径/目录路径> <目标路径>
将文件内容输出到控制台
# hdfs dfs -cat <文件路径>

HDFS的API

获取FileSystem
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://172.16.0.4:9000");
FileSystem fs = FileSystem.get(conf);
读取文件
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://172.16.0.4:9000");
FileSystem fs = FileSystem.get(conf);
Path p = new Path("/user.huzl/a.txt");
FSDataInputStream fsi = fs.open(p);
BufferedReader br = new BufferedReader(new InputStreamReader(fsi));
String str = "";
while ((str = br.readLine()) != null) {
    System.out.println(str);
}

你可能感兴趣的:(大数据,大数据,hadoop,hdfs)