HDFS,它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
产生原因:迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统。HDFS 只是分布式文件管理系统中的一种。
HDFS总体的组成架构:
我使用的是hadoop fs 这种格式的指令比较多。
创建文件夹
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -mkdir /sanguo
从本地上传文件到HDFS上。我习惯使用-put这个指令比较多
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -put ./wuguo.txt /sanguo
把一个文件追加到另一个文件尾部,因为HDFS只适合文件的追加。
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -appendToFile liubei.txt /sanguo/shuguo.txt
把一个文件从HDFS复制到本地
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -get /sanguo/shuguo.txt ./shuguo2.txt
显示目录信息
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -ls /sanguo
显示文件内容
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -cat /sanguo/shuguo.txt
创建文件夹
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -mkdir /jinguo
从HDFS的一个路径拷贝到HDFS的另外一个路径
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -cp /sanguo/shuguo.txt /jinguo
在 HDFS 目录中移动文件
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -mv /sanguo/weiguo.txt /jinguo
显示一个文件的末尾 1kb 的数据
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -tail /jinguo/shuguo.txt
删除文件或文件夹
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -rm /sanguo/shuguo.txt
递归删除目录及目录里面内容
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -rm -r /sanguo
-du 统计文件夹的大小信息
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -du -s -h /jinguo
27 81 /jinguo
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -du -h /jinguo
14 42 /jinguo/shuguo.txt
7 21 /jinguo/weiguo.txt
6 18 /jinguo/wuguo.tx
设置 HDFS 中文件的副本数量
[atguigu@hadoop102 hadoop-3.1.3]$ hadoop fs -setrep 10 /jinguo/shuguo.txt
节点距离就是NameNode通过计算要将数据存储到哪几个DataNode当中,选择最优的DataNode。
节点距离:两个节点到达最近的共同祖先的距离总和。
这个就是副本存储数据的选择,在很多的DataNode当中,选择较合适的DataNode存储副本。
第一个副本在Client所处的节点上。如果客户端在集群外,随机选一个。
第二个副本在另一个机架的随机一个节点。
第三个副本在第二个副本所在机架的随机节点。
(1)客户端通过 DistributedFileSystem 向 NameNode 请求下载文件,NameNode 通过查询元数据,找到文件块所在的 DataNode 地址。
(2)挑选一台 DataNode(就近原则,然后随机)服务器,请求读取数据。
(3)DataNode 开始传输数据给客户端(从磁盘里面读取数据输入流,以 Packet 为单位来做校验)。串行传输的。
(4)客户端以 Packet 为单位接收,先在本地缓存,然后写入目标文件。
第一 阶段:NameNode 启动
(1)第一次启动 NameNode 格式化后,创建 Fsimage 和 Edits 文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。
(2)客户端对元数据进行增删改的请求。
(3)NameNode 记录操作日志,更新滚动日志。
(4)NameNode 在内存中对元数据进行增删改
第二 阶段:Secondary NameNode 工作
(1)Secondary NameNode 询问 NameNode 是否需要 CheckPoint。直接带回 NameNode是否检查结果。
(2)Secondary NameNode 请求执行 CheckPoint。
(3)NameNode 滚动正在写的 Edits 日志。
(4)将滚动前的编辑日志和镜像文件拷贝到 Secondary NameNode。
(5)Secondary NameNode 加载编辑日志和镜像文件到内存,并合并。
(6)生成新的镜像文件 fsimage.chkpoint。
(7)拷贝 fsimage.chkpoint 到 NameNode。
(8)NameNode 将 fsimage.chkpoint 重新命名成 fsimage。
(1)一个数据块在 DataNode 上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。
(2)DataNode 启动后向 NameNode 注册,通过后,周期性(6 小时)的向 NameNode 上报所有的块信息
(3)心跳是每 3 秒一次,心跳返回结果带有 NameNode 给该 DataNode 的命令如复制块数据到另一台机器,或删除某个数据块。如果超过 10 分钟没有收到某个 DataNode 的心跳,则认为该节点不可用。
(4)集群运行中可以安全加入和退出一些机器。
在搭建hadoop集群的时候,遇到问题的解决方案。
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3</value>
</property>
python读写excel文件有很多种方法:用xlrd和xlwt进行excel读写用openpyxl进行excel读写用pandas进行excel读写本文使用xlrd读取excel文件(xls,sxls格式),使用xlwt向excel写入数据一、xlrd和xlwt的安装安装很简单,windos+r调出运行窗口,输入cmd,进入命令行窗口,输入以下命令。安装xlrd: pip install xlrd安装xlwt: pip install xlwtxlrd的API(applica_python 读取excel数据绘制曲线图
在linux上格式化一个磁盘分区时,出现如下错误 root@d:~# mkfs.ext4 /dev/sdb1 mke2fs 1.41.12 (11-May-2015) mkfs.ext4: inode_size (128) * inodes_count (0) too big for a filesystem with 0 blocks, spec...
判断 [男, 女 ,保密] 三种状态 {$v['sex']==0 ? '女' : ($v['sex'] == 1 ? '男' : '保密') }
2019独角兽企业重金招聘Python工程师标准>>> ..._golang winform
由于芯片受阻,华为手机业务不断萎缩,不仅丢掉了国内市场老大哥的位置,在全球市场排名中更是沦为了“其他”,令消费者无奈的是,芯片稀缺直接影响了华为手机的出货量,为了买到华为手机不得不多花钱在第三方购买。也就是说,5G芯片缺货问题一天不解决,这些情况都不会改善,不过4G手机或许一大突破口!近日,华为官方网站悄悄上架三款新手机,这里的新手机并非常规的新手机,而是华为MateX2折叠屏手机、华为Mate4..._华为不支持鸿蒙系统的手机
算子实际上是用来对图像进行卷积处理,其本质是用变分法来处理梯度问题,用途就是边缘检测。45度和135度效果一般,水平检测加垂直检测效果还可以。function Sobel(name,Threshold) f = imread(name); f = rgb2gray(f); f = im2double(f); subplot(231);...
1.在官网下载Node.js2.配置webstrom支持node.js语法检测 在file-->settings-->languages&frameworks-->node.js and NPM重新添加Node.js的路径就好了3.重新启动Webstorm完美解决...
企业欠帐、业务员手机下单收款 管理软件试用18092778127王肖华为云+速达天耀S3:给您稳定的软件使用环境,24小时的随时使用,极速的扫码出货速度,严谨的客户权限控制;让您的移动营销、办公,管理不再是梦想安卓手机(百度手机助手搜索下载安装:天耀云进销存)苹果手机(苹果商店下载:天耀S3)3系进销存手机端 单据有:销售机会 销售报价 销售订单 销售开单..._安卓手机用adb,ios手机用什么
论文信息:Exploring The Limits Of Data Augmentation For Retinal Vessel Segmentation | Papers With Code在我们的研究中,我们使用U-Net架构,我们依靠大量的数据增强来获得更好的性能。数据扩充的成功与否取决于能否成功地解决输入图像的问题。通过分析输入图像并进行相应的增强,我们表明U-Net模型的性能可以显著提高。报告的结果使用了最广泛使用的视网膜数据集DRIVE。血管的边缘非常薄,很难分割,输入图像的质量也有问题。此外
对java基础面试题进行总结,将面试题分类型,分重点,以及提供了答题的思路文章目录1.java语言基础1.java 语言有什么特点2. java和c++区别3. Oracle JDK 和 OpenJDK 的对⽐4. 关于 JVM JDK 和 JRE 最详细通俗的解答5. 八种数据类型字节大小6. 自动拆箱自动装箱️7.java中方法的参数传递机制️8. == 和equals 以及HashCode8.1 == 和 equals 区别8.2 hashCode的作用8.3 **hashCode() 和 ._java基础总结大全笔记
Flink 是一个默认就有状态的分析引擎,前面的 WordCount 案例可以做到单词的数量的累加,其实是因为在内存中保证了每个单词的出现的次数,这些数据其实就是状态数据。但是如果一个 Task 在处理过程中挂掉了,那么它在内存中的状态都会丢失,所有的数据都需要重新计算。从容错和消息处理的语义(At -least-once 和 Exactly-once)上来说,Flink引入了 State 和 CheckPoint。State 一般指一个具体的 Task/Operator 的状态,State 数据默认_flink state 恢复
目标:字符缓冲输入流的使用结构: 字节流 字符流 字节输入流 字节输出流 字符输入流 字符输出流 InputStream OutputStream Reader Writ..._14、获取列表元素,15、将元素写入到缓冲流