分布式存储:HDFS

HDFS详解与伪分布式搭建
部署运行你感兴趣的模型镜像

大数据技术

       大数据即为短时间内快速的产生海量多种多样有价值的数据。
       大数据技术包括分布式存储(HDFS适合储存大文件、Lustre适合储存小文件、……)、分布式计算(批处理:积攒一定数据后再处理数据、流处理:每产生一条数据,就进行处理)、机器学习等,以下篇幅主要讲HDFS数据上传、备份的过程以及如何在CentOS 6.5环境中HDFS伪分布式搭建。

HDFS包含层次的作用

NameNode

  1. 接受客户端的读写请求;
  2. 储存管理元数据(权限、上传时间、文件大小、属主……);
  3. 收集DataNode上传的Block列表信息;
  4. edits文件:用来存储操作;fsimage文件:用来存储持久化的元数据。

SecondaryNameNode

  1. 持久化(备份)NameNode中的元数据。

DataNode

  1. 以Block块的形式存储源数据;
  2. 接受客户端的读数据请求。

HDFS数据读取过程

具体过程

       因为在NameNode节点中存储着所有的BlockID和对应的DataNode地址,所以客户端Client在读取数据时先要根据选择的文件的BlockID从NameNode节点中获取存储该源数据的DataNode地址,再从DataNode中读取源数据,最后将所有Block进行拼接。

HDFS数据上传过程

       首先先设想你有大概10TB的文件需要存储,但是你自身并没有足够的空间,于是你就将文件拆分后存于不同的U盘或硬盘中,那么这些U盘和硬盘就相当于相同数量的DataNode。并且根据这些文件的类型不同,你需要将每个存储工具标号并将其中存入的信息类型记录到纸上,那么这张纸就相当于HDFS中的NameNode,以便需要时快速获取数据。而你自身就相当于客户端。

具体过程

       启动时:进入安全模式,加载fsimage,如果edits不为空,NameNode则会将edits文件合并、检查DataNode状态,如果DataNode挂掉了,则指挥进行数据备份;
注意:在处于安全模式时,如果fsimage加载完,可以看到文件目录,但不可以读取文件

  1. 集群启动时,DataNode会向NameNode发送Block位置、DataNode地址;
  2. 客户端Client根据 文件大小/128MB=Block数量和上传时间、权限等元数据汇报给NameNode,并请求一个存放Block的ID;
  3. 客户端Client获取了当前负载较低的DataNode地址后将每个Block拆分为一个个packet(每个packet最大为64KB),通过管道存入到DataNode中;
    注意:
           1.集群外提交:第一个DataNode为当前负载较低的服务器,第二个为其他机架上的随机一台服务器,第三个为第二台服务器机架上另外的一台服务器
           2.集群内提交:第一个DataNode为客户端的服务器,第二个和第三个同上
           3.HDFS属于集群外提交
           4.使用管道传输、将Block拆分为packet目的:可以实现并行传输,提高效率

NameNode元数据持久化(将内存中的元数据储存到磁盘中)

       1. 将操作写入到edits文件中;
       2. 在过去3600毫秒或者当edits文件大小超过64MB时SecondaryNameNode将会自动抓取edits文件并重演,将获取到的元数据存入到SecondaryNameNode中的fsimage文件中,最后与NameNode中的fsimage合并产生fsimageckpt,最后将fsimageckpt推给NameNode中的fsimage;
注意:SecondaryNameNode抓取edits文件时,NameNode将创建一个edits.new文件用来存储新的操作,持久化完成后edits.new文件将会改名为edits文件

DataNode备份

       1.集群外提交:第一个DataNode为当前负载较低的服务器,第二个为其他机架上的随机一台服务器,第三个为第二台服务器机架上另外的一台服务器
       2.集群内提交:第一个DataNode为客户端的服务器,第二个和第三个同上

HDFS伪分布式搭建

1.配置免密登录
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@用户名

2.配置jdk
下载并解压jdk.tar.gz 下载地址.
#vi /etc/profile
打开文件后按“i”在最后插入
export JAVA_HOME=jdk路径
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin

3.下载并解压hadoop.tar.gz 下载地址.

4.修改hdfs-site.xml配置文件
将以下数据添加到hadoop/etc中的hdfs-site.xml中的<configuration>标签中
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>用户名:50090</value>
</property>

5.修改core-site.xml配置文件
将以下数据添加到hadoop/etc中的core-site.xml中的<configuration>标签中
<property>
<name>fs.defaultFS</name>
<value>hdfs://用户名:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/abc/hadoop/local</value>
</property>

6.修改slaves配置文件,在其中添加用户名

7.格式化NameNode(创建目录以及文件)
#hdfs namenode -format
注意:hdfs命令行需要将hadoop/bin加入到/etc/profile中才能使用
vi /etc/profile
在最后插入:export PATH=hadoop路径/bin

8.启动HDFS
#sh start-dfs.sh
如提示找不到sh为无效的命令行时可以cd到hadoop/sbin中执行该命令
如提示找不到JAVA_HOME则将hadoop/etc中的hadoop-env.sh中的JAVA_HOME地址手动输入

9.通过命令行操作HDFS文件系统

10.浏览器中输入用户名:50070查看hadoop网页(50070为NameNode默认端口)

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究(Matlab代码实现)内容概要:本文围绕“基于数据驱动的 Koopman 算子的递归神经网络模型线性化,用于纳米定位系统的预测控制研究”展开,提出了一种结合数据驱动方法与Koopman算子理论的递归神经网络(RNN)模型线性化方法,旨在提升纳米定位系统的预测控制精度与动态响应能力。研究通过构建数据驱动的线性化模型,克服了传统非线性系统建模复杂、计算开销大的问题,并在Matlab平台上实现了完整的算法仿真与验证,展示了该方法在高精度定位控制中的有效性与实用性。; 适合人群:具备一定自动化、控制理论或机器学习背景的科研人员与工程技术人员,尤其是从事精密定位、智能控制、非线性系统建模与预测控制相关领域的研究生与研究人员。; 使用场景及目标:①应用于纳米级精密定位系统(如原子力显微镜、半导体制造设备)中的高性能预测控制;②为复杂非线性系统的数据驱动建模与线性化提供新思路;③结合深度学习与经典控制理论,推动智能控制算法的实际落地。; 阅读建议:建议读者结合Matlab代码实现部分,深入理解Koopman算子与RNN结合的建模范式,重点关注数据预处理、模型训练与控制系统集成等关键环节,并可通过替换实际系统数据进行迁移验证,以掌握该方法的核心思想与工程应用技巧。
基于粒子群算法优化Kmeans聚类的居民用电行为分析研究(Matlb代码实现)内容概要:本文围绕基于粒子群算法(PSO)优化Kmeans聚类的居民用电行为分析展开研究,提出了一种结合智能优化算法与传统聚类方法的技术路径。通过使用粒子群算法优化Kmeans聚类的初始聚类中心,有效克服了传统Kmeans算法易陷入局部最优、对初始值敏感的问题,提升了聚类的稳定性和准确性。研究利用Matlab实现了该算法,并应用于居民用电数据的行为模式识别与分类,有助于精细化电力需求管理、用户画像构建及个性化用电服务设计。文档还提及相关应用场景如负荷预测、电力系统优化等,并提供了配套代码资源。; 适合人群:具备一定Matlab编程基础,从事电力系统、智能优化算法、数据分析等相关领域的研究人员或工程技术人员,尤其适合研究生及科研人员。; 使用场景及目标:①用于居民用电行为的高效聚类分析,挖掘典型用电模式;②提升Kmeans聚类算法的性能,避免局部最优问题;③为电力公司开展需求响应、负荷预测和用户分群管理提供技术支持;④作为智能优化算法与机器学习结合应用的教学与科研案例。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,深入理解PSO优化Kmeans的核心机制,关注参数设置对聚类效果的影响,并尝试将其应用于其他相似的数据聚类问题中,以加深理解和拓展应用能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值