- Hadoop基本组成及其作用(Doug cutting)
common:支持其他Hadoop模块的公共实用程序。
hdfs:提供对应用程序数据高吞吐量访问的分布式文件系统。
yarn:作业调度和集群资源管理框架。
mapreduce:一种基于yarn的大型数据集并行处理系统。 - Hadoop进程:(启动加载时处于安全模式,不允许操作Hadoop集群)
NameNode:文件系统的管理节点,用于存储HDFS的元数据。
元数据包括:(1)文件信息(2)文件块的信息和位置
(3)文件的访问权限(4)集群中文件的数量(5)集群中DataNode的数量
NameNode的功能:
(1)存储HDFS的元数据
(2)管理文件系统的命名空间
(3)执行文件系统的命名空间操作
(4)把HFDS的状态存储到镜像文件中
(5)把文件系统的变化追加存储到日志文件中
(6)将数据块副本保存在不同的机架上以提高容错性
DataNode:文件系统的工作节点,根据需要存储并检索数据块,并定期向NameNode发送它们所存储块的列表。
DataNode的功能:
(1)根据客户端或者是NameNode的调度存储和检索数据
(2)通过NameNode的指令对块进行创建、复制和删除
(3)在DataNode的复制过程中提供同步发送/接收的操作
SecondaryNameNode:帮助NameNode合并编辑日志,减少NameNode 启动时间(不是热备)
NameNode和SecondaryNameNode不在同一节点,有可能和ResourceManager在同一节点。 - Block概念
文件上传到HDFS,第一步是数据的划分,默认每块128MB(可更改),最后一个可能小于128MB。
为了保证数据的安全,上传文件被复制成3份,当一份数据宕掉,其余的可以补上。 - Block切分策略
(1)默认数据块大小为128MB; 若文件大小不到128MB,则单独存成一个block。
(2)大的数据块切分策略可以保证数据传输时间超过寻道时间,保证系统高吞吐率。
(3)按大小被切分成若干个block,存储到不同节点上。
(4)默认情况下每个block有三个副本,这个副本数量也是可以调整的。 - Hadoop目录结构(大数据处理的数据价值低)
(1)bin 存放对Hadoop相关服务进行操作的脚本
(2)etc Hadoop的配置文件目录,存放Hadoop的配置文件
(3)sbin 存放启动或停止Hadoop相关服务的脚本
(4)share 存放Hadoop的依赖jar包、文档、和官方案例
(5)logs 存放Hadoop运行的日志 - Writable——Hadoop序列化框架的顶级接口
Hdfs来源Google的一篇论文Gfs
Mapreduce来源Google的一篇论文Mapreduce
Hbase来源Google的一篇论文Bigtable - Setup方法(任务前调用一次),Clenup方法(任务后调用一次)
Map方法(有多少键值对调用多少次),三者通过Run方法实现调用。 - hdfs存储介绍-块的概念
普通存储方式存在的问题:磁盘容量不够;应对并发能力弱;硬盘数据容易丢失。 - HDFS写流程:(Hdfs不支持数据的随机读写,不能修改文件内容)
1.客户端请求 namenode 在文件系统的命名空间创建一个新文件
2.namenode 执行各种检查确定权限足够且文件不存在,如果通过则为新文件创建一条记录。 3.客户端将数据包写入数据队列
4.namenode 根据 datanode 提供的列表和副本数等参数分配适合的数据块
5.假设副本数为3,数据写入第一个 datanode,再从第一个写到第二个 datanode,再从第二个写到第三个datanode, 所有写入完成后才会确认写入成功。 - HDFS读流程(一次写入,多次读取)
1)跟namenode通信查询元数据,找到数据块所在的datanode的服务器。
2)就近挑选一台datanode服务器,请求建立socket流。
3)datanode开始发送数据
4)客户端以数据包为单位接收,先在本地缓存,然后写入目标文件中,后面的数据块附加到前面的数据块,最后合成最终需要的文件。 - HDFS基本命令操作(hdfs://node0:8020/a)
ls:查看指定目录下内容 mkdir:在hadoop指定目录内创建新目录
put将本地文件存储至Hadoop (hadoop fs -put 1.txt /a)
get:将Hadoop上某个文件down至本地 (hadoop fs -get /1.txt)
cp:hdfs一个路径拷贝到另一个路径 (hadoop fs -cp /a/1.txt /aa)
mv: 将本地文件存储至Hadoop (hadoop fs -mv /aa/a.txt /a)
cat:查看文件内容 (hadoop fs -cat /a/1.txt)
rm:删除Hadoop上指定文件 copyFromLocal:从本地复制文件到hdfs
movefromLocal: 从本地剪切文件到hdfs (hadoop fs -moveFromLocal ./file.txt /aaa/)
Hadoop dfsadmin-report: 用于管理HDFS集群( 不用于检测 HDFS损坏块)
Hdfs namenode- format:格式化NameNode - HDFS的javaAPI操作
(1)拷贝hdfs文件到本地
public class Demo1 {
Hadoop复习
最新推荐文章于 2023-08-08 21:24:25 发布