唐山做网站的电话,吉林城市建设学校网站,公司视频宣传片拍摄,网站开发都需要学什么1.HDFS简介 2.1 Hadoop分布式文件系统-HDFS架构 2.2 HDFS组成角色及其功能 #xff08;1#xff09;Client#xff1a;客户端 #xff08;2#xff09;NameNode (NN)#xff1a;元数据节点 管理文件系统的Namespace元数据 一个HDFS集群只有一个Active的NN #xff…1.HDFS简介 2.1 Hadoop分布式文件系统-HDFS架构 2.2 HDFS组成角色及其功能 1Client客户端 2NameNode (NN)元数据节点 管理文件系统的Namespace元数据 一个HDFS集群只有一个Active的NN 3DataNode (DN)数据节点 数据存储节点保存和检索Block 一个集群可以有多个数据节点 4Secondary NameNode (SNN)从元数据节点 合并NameNode的edit logs到fsimage文件中 辅助NN将内存中元数据信息持久化 2.3 HDFS副本机制 1Block数据块 HDFS最基本的存储单元默认块大小128M2.x 2副本机制 作用避免数据丢失 副本数默认为3 存放机制一个在本地机架节点一个在同一个机架不同节点一个在不同机架的节点 2.4 HDFS优缺点 1HDFS优点高容错性适合大数据处理流式数据访问可构建在廉价的机器上 2HDFS缺点不适合低延时数据访问场景不适合小文件存取场景不适合并发写入文件随机修改场景 2.HDFS基本文件操作命令 2.1 准备工作 1启动单机Hadoop 2-help输出这个命令参数 hdfs dfs -help rm 3创建/install文件夹 hdfs dfs -mkdir /sanguo 2.2 上传 1-moveFromLocal从本地剪切粘贴到HDFS 2-copyFromLocal从本地文件系统中拷贝文件到HDFS路径去 3-put等同于copyFromLocal生产环境更习惯用put 4-appendToFile追加一个文件到已经存在的文件末尾 2.3 HDFS直接操作 1-ls: 显示目录信息 hadoop fs -ls /sanguo 2-cat显示文件内容 hadoop fs -cat /install/shuguo.txt 3-chgrp、-chmod、-chownLinux文件系统中的用法一样修改文件所属权限 hadoop fs -chmod 666 /sanguo/shuguo.txt hadoop fs -chown atguigu:atguigu /sanguo/shuguo.txt 4-mkdir创建路径 hadoop fs -mkdir /jinguo 5-cp从HDFS的一个路径拷贝到HDFS的另一个路径 hadoop fs -cp /sanguo/shuguo.txt /jinguo 6-mv在HDFS目录中移动文件 hadoop fs -mv /sanguo/wuguo.txt /jinguo hadoop fs -mv /sanguo/weiguo.txt /jinguo 7-tail显示一个文件的末尾1kb的数据 hadoop fs -tail /jinguo/shuguo.txt 8-rm删除文件或文件夹 hadoop fs -rm /sanguo/shuguo.txt 9-rm -r递归删除目录及目录里面内容 hadoop fs -rm -r /sanguo 10-du统计文件夹的大小信息 hadoop fs -du -s -h /jinguo 27 81 /jinguo hadoop fs -du -h /jinguo 14 42 /jinguo/shuguo.txt 7 21 /jinguo/weiguo.txt 6 18 /jinguo/wuguo.tx 说明27表示文件大小81表示27*3个副本/jinguo表示查看的目录 11-setrep设置HDFS中文件的副本数量集群 hadoop fs -setrep 10 /jinguo/shuguo.txt 这里设置的副本数只是记录在NameNode的元数据中是否真的会有这么多副本还得看DataNode的数量。因为目前只有3台设备最多也就3个副本只有节点数的增加到10台时副本数才能达到10。 2.4 进入资源管理器web页面http://kb129:8088 2.5 查看历史服务器 1启动历史服务器mapred --daemon start historyserver 2进入历史服务器网页访问http://kb129:19888 3. windows中hadoop环境搭建 3.1 解压hadoop313至C盘server目录下配置环境变量HADOOP_HOME C:\server\hadoop313 将winutils.exe放至C:\server\hadoop-3.1.3\bin目录下 将hadoop.dll放至C:\Windows\System32目录下 4. Java实现HDFS文件读写 4.1 创建maven工程quickstart工程 1配置依赖 dependencygroupIdorg.apache.hadoop/groupIdartifactIdhadoop-common/artifactIdversion${hadoop.version}/version/dependencydependencygroupIdorg.apache.hadoop/groupIdartifactIdhadoop-hdfs/artifactIdversion${hadoop.version}/version/dependencydependencygroupIdorg.apache.hadoop/groupIdartifactIdhadoop-mapreduce-client-core/artifactIdversion${hadoop.version}/version/dependencydependencygroupIdorg.apache.hadoop/groupIdartifactIdhadoop-mapreduce-client-common/artifactIdversion${hadoop.version}/version/dependencydependencygroupIdorg.apache.hadoop/groupIdartifactIdhadoop-client/artifactIdversion${hadoop.version}/version/dependency 4.2 test包中重写AppTest package org.example;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;import java.io.IOException;/*** Unit test for simple App.*/
public class AppTest {//可操作hdfs文件系统的对象FileSystem hdfs null;Beforepublic void init() throws IOException {//构造一个配置参数对象设置参数 要访问的hdfs的urlConfiguration conf new Configuration();//指定使用hdfs访问conf.set(fs.defaultFS,hdfs://kb129:9000);System.setProperty(HADOOP_USER_NAME,root);hdfs FileSystem.get(conf);}//上传本地文件到hdfsTestpublic void shouldAnswerWithTrue() throws IOException {Path localFilePath new Path(C:\\Windows\\System32\\drivers\\etc\\services);Path hdfsPath new Path(/services.txt);//上传hdfs.copyFromLocalFile(localFilePath,hdfsPath);System.out.println(上传成功);}//从hdfs下载文件到本地Testpublic void downloadFile() throws IOException {Path localFilePath new Path(D:\\tttttmmmmmppppp);Path hdfsPath new Path(/services.txt);//下载hdfs.copyToLocalFile(hdfsPath,localFilePath);System.out.println(下载成功);}Afterpublic void close() throws IOException{hdfs.close();}
}