我的Hadoop笔记
起源于google的3篇论文中的GFS和MapReduce,作者是Doug cutting,截止到2021-04-07为止,最新的正式版本为3.2.2,本笔记还是基于Hadoop2.x的内容
狭义的Hadoop包括HDFS(Hadoop Distributed File System)和MapReduce,本篇笔记只包括狭义的Hadoop
HDFS是一个分布式文件存储系统,MapReduce是计算框架
广义的Hadoop可以理解为Hadoop生态(hdfs,mapreduce,hive,hbase,yarn,oozie,sqoop,flume,phoenix,kafka,spark)
是一个分布式文件系统,从用户角度看就是个存文件的地方,可以创建目录,创建文件,上传文件,下载文件等等。
支持Java API、RestFul API操作HDFS。
NameNode 管理结点
职责:
存储元数据,数据存储在内存中
元数据包括三类:
1.文件与目录的属性,包括文件名、创建时间、修改时间等
2.数据所在DataNode、偏移量,block副本位置(由DataNode上报)
3.记录所有DataNode的信息,管理DataNode
接收客户端的读写服务
DataNode 数据结点
存储数据
职责:
1.存储数据和block元数据
2.向NameNode汇报block信息
3.向NameNode保持心跳
如果NameNode10分钟未收到DataNode心跳认为该DataNode已经无效
将会拷贝无效DataNode上的block到其他DataNode
JournalNode 存储数据变动记录
职责:
保存editlog(数据变化记录)
Client 客户端
职责:
切分数据文件
从NameNode读取文件元数据
从DataNode读取数据
FailoverController
职责:
检测NameNode的健康状况
选举Active NameNode
架构示意图:
元数据分为两个文件,其一是fsimage,是内存中元数据的一个快照;其二是editslog,记录了快照之后的所有编辑操作。
集群重启后,通过合并fsimage和editslog来恢复元数据。
# 退出安全模式
hdfs dfsadmin -safemode leave;
# 强制退出安全模式,上面命令不生效可使用下面的命令
hdfs dfsadmin -safemode forceExit;
1 当Active NameNode挂掉
2 当FailoverController挂掉
常用的一些shell命令,命令和linux shell命令很相似
# 创建目录
hdfs dfs -mkdir /test_mkdir
# 查看制定目录内容,类似shell命令里的ls
hdfs dfs -ls /
# 删除目录
hdfs dfs -rm -R /test_mkdir
命令的官方参考文档:
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/FileSystemShell.html
MapReduce思想认为所有的数据计算都可以通过map和reduce的组合实现。
一段数据的处理过程:
map完全执行完毕才会执行reduce
一组数据调用一次reduce,reduce迭代计算的单位是一条,所以需要的内存很少
yarn资源分配过程
常用命令
# 查看所有已缓存的包
yarn cache list
# 查看缓存位置
yarn cache dir
# 查看应用列表
yarn application -list
# 查看指定应用程序id或应用名的程序的状态
yarn application -status <ApplicationId or ApplicationName>
# 杀死指定Application ID的程序
yarn application -kill <Application ID>
# 查看指定Application ID的程序的日志
yarn logs -applicationId <application ID> [options]
Yarn命令 官方参考手册:
https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YarnCommands.html
https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html
https://blog.csdn.net/zpf_940810653842/article/details/106569759
Elasticsearch 是通过 Lucene 的倒排索引技术实现比关系型数据库更快的过滤。特...
本文实例讲述了Laravel框架源码解析之反射的使用。分享给大家供大家参考,具体如...
DELETEFROMTablesWHEREIDNOTIN(SELECTMin(ID)FROMTablesGROUPBYName) Min的话保...
工具:Eclipse,Oracle,smartupload.jar;语言:jsp,Java;数据存储:Oracle。...
错误描述: 在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报...
正则忽略大小写 – RegexOptions.IgnoreCase 例如: 复制代码 代码如下: Str = R...
4月11日20:30~22:00通过腾讯会议进行了第二次在线学习讨论我把学习笔记整理一下...
项目中用到的一些特殊字符和图标 html代码 XML/HTML Code 复制内容到剪贴板 div ...
上篇文章给大家介绍了 Java正则表达式匹配,替换,查找,切割的方法 ,接下来,...
复制代码 代码如下: % URL="http://news.163.com/special/00011K6L/rss_newstop....