一、概念
1、分布式文件系统:管理网络中,跨多台计算机存储的文件系统,被称为分布式文件系统。
2、HDFS用流式数据访问模式来存储超大文件。
3、namenode:管理者,管理文件系统的命名空间,在内存中保存文件系统中每个文件和数据块的引用关系。没有namenode,文件系统将无法使用,因此对namenode的容错非常重要。
容错方案:
1)备份那些组成文件系统元数据持久状态的文件。使namenode在多个文件系统上保存元数据的持久状态。
2)运行一个协助的namenode,但它不能用作namenode。它的主要作用是定期通过编辑日志合并命名空间镜像。
4、datanode:工作者,根据需要存储并检索数据块,并且定期向namenode发送它们所存储块的列表。
二、文件系统的基本操作
1、查看帮助文档
./hadoop fs -help
1、查看列表
./hdfs dfs -ls /
[root@osd01 bin]# ./hdfs dfs -ls /
Found 3 items
drwxr-xr-x - hadoop supergroup 0 2016-10-31 11:06 /hbase
drwxrwxr-x - hadoop supergroup 0 2016-10-31 19:44 /tmp
drwxr-xr-x - hadoop supergroup 0 2016-10-31 17:56 /user
2、新建目录
切换成hadoop用户 : su hadoop
./hdfs dfs -mkdir /data/spark
//查看新建的目录
[root@osd01 bin]# ./hdfs dfs -ls /
Found 4 items
drwxr-xr-x - hadoop supergroup 0 2016-11-08 16:50 /data
drwxr-xr-x - hadoop supergroup 0 2016-10-31 11:06 /hbase
drwxrwxr-x - hadoop supergroup 0 2016-10-31 19:44 /tmp
drwxr-xr-x - hadoop supergroup 0 2016-10-31 17:56 /user
[root@osd01 bin]# ./hdfs dfs -ls /data
Found 1 items
drwxr-xr-x - hadoop supergroup 0 2016-11-08 16:50 /data/spark
3、拷贝文件(从本地复制到HDF)
-copyFromLocal [-f] [-p] [-l] <localsrc> ... <dst>]
//从本地目录复制文件到hdfs目录上
./hdfs dfs -copyFromLocal /data/tools/one.txt /data/spark
[hadoop@osd01 bin]$ ./hdfs dfs -ls /data/spark
Found 1 items
-rw-r--r-- 1 hadoop supergroup 16 2016-11-09 09:22 /data/spark/one.txt
4、检查两个文件是否一致
[root@osd01 tools]# md5sum one.txt one1.txt
dda6a444d4951f1a3c30248fe02bd11f one.txt
dda6a444d4951f1a3c30248fe02bd11f one1.txt
md5一样,表示两个文件的内容是一样的。
5、在hdfs中访问本地文件系统的方法
[hadoop@osd01 bin]$ ./hdfs dfs -ls file:///data/
Found 2 items
drwxr-xr-x - root root 28 2016-05-20 16:20 file:///data/program
drwxr-xr-x - root root 4096 2016-11-09 10:21 file:///data/tools
6、删除目录
FileSystem.delete(Path f,boolean recursive);
//只有当recursive为true的时候,非空目录及其内容才会被删除。
@Test
public void testRm() throws IllegalArgumentException, IOException {
boolean res = fs.delete(new Path(
"hdfs://10.206.19.180:8020/test/hdfsTest/pengxiaochun"), true);
System.out.println("result=" + res);
}
三、Hadoop的I/O操作
1、检验数据完整性,可以通过checksum检验文件。