Hdfs 分布式文件系统
交互: 1客户端发送 请求数据 ,2.文件系统返回所需数据存储的所在节点
3客户端根据返回的节点信息到对应的节点上获取信息
hdfs不适合小文件的存储,原因后面讲
Hdfs shell 介绍
Bin/hdfs dfs -xxx schema://authority/path
命令 分布式文件系统 具体的操作参数 hdfs ip:port 具体路径
hdfs文件操作
Hdfs dfs -ls /
Hdfs dfs -put NOTICE.TXT /
Hdfs dfs -ls / |grep /|wc -l
Hdfs dfs -ls / |awk '{print $8 , $5}' >> /count.txt
java操作HDFS:
win和linux都有装hadoop
建maven项目 记得配置log4j
面向对象的思想:hdfs的配置对象 -》core-site.xml中的内容
Configuration conf = new Configuration();
Conf.set("fs.defaultFS","http://bigdata01:9000"); <!--set是一个键值对的数据结构-->
FileSystem fs = FileSystem.get(conf);
输入流对象 输出流对象 本地文件系统:FileInputStream or FileOutputStream
hdfs文件系统: FSDataInputStream FSDataOutputStream
//本地上传文件到hdfs:FileInputStream fis = new FileInputStream(new Path("C:\\")); <!--注意\\转义-->
FSDataOutputStream fos = fs.create(new Path(""));
//工具类实现输入流到输出流的转换
IOUtils.copyBytes(fis,fos,1024,true); //最后一个参数表示是否关闭流
HDFS体系结构:
NameNode 老板
SecondaryNameNode 老板的秘书
DataNode 员工