大数据之路系列之Hadoop核心理论(03)
提示:只涉及面试或者实际中核心的内容
Hadoop
- 大数据之路系列之Hadoop核心理论(03)
- 文章链接
- 一、初识Hadoop
- 二、hdfs命令
- 总结
文章链接
链接: link。
提示:以下是本篇文章正文内容,下面案例可供参考
一、初识Hadoop
1.Hadoop主要包含三大组件:HDFS+MapReduce+YARN
- HDFS负责海量数据的分布式存储
- MapReduce是一个计算模型,负责海量数据的分布式计算
- YARN主要负责集群资源的管理和调度
2.webui页面(hadoop3)
- HDFS webui界面:http://node01:9870
- YARN webui界面:http://node01:8088
3.集群节点之间时间同步
ntpdate -u ntp.sjtu.edu.cn
[root@bigdata01 ~]# vi /etc/crontab
[root@bigdata01 ~]# * * * * * root /usr/sbin/ntpdate -u ntp.sjtu.edu.cn
3.进程
NameNode、SecondaryNameNode、DataNode是HDFS服务的进程
ResourceManager、NodeManager是YARN服务的进程
4.副本数量设置
hdfs中根据从节点数量设置副本数量,文件副本的数量<=从节点数量
5.启动/停止命令
sbin/start-all.sh 、 sbin/stop-all.sh
6.读写文件流程
二、hdfs命令
- 查看目录下的文件:hdfs dfs -ls hdfs://bigdata01:9000/ 。其实后面hdfs的url这一串内容在使用时默认是可以省略的,因为hdfs在执行的时候会根据HDOOP_HOME自动识别配置文件中的fs.defaultFS属性,简写:hdfs dfs -ls /
- 上传文件:hdfs dfs -put xx.txt /
- 查看内容: hdfs dfs -cat /xx.txt
- 下载到本地当前目录:hdfs dfs -get /xx.txt .
- 创建目录: hdfs dfs -mkdir /xx
- 创建多级目录:hdfs dfs -mkdir -p /xx/xx.txt
- 递归查看所有的目录信息:hdfs dfs -ls -R /
- 删除文件:hdfs dfs -rm /xx.txt
- 删除文件夹:hdfs dfs -rm -r /xx
- 统计根目录下文件的个数:hdfs dfs -ls / |grep /| wc -l
- 统计根目录下每个文件的大小,最终把文件名称和大小打印出来: hdfs dfs -ls / |grep / | awk ‘{print $8,$5}’
7.HDFS体系结构
主节点称为 NameNode ,NameNode支持多个。
从节点称为 DataNode ,DataNode支持多个。
还有一个节点配置SecondaryNameNode 这个也可以配置在主节点上。
他们之间的关系:公司BOSS:NameNode(分配任务),秘书:SecondaryNameNode(辅助老板),员工:DataNode(执行任务)。
8.namenode介绍
namenode是整个文件系统的管理节点,主要维护目录信息,文件对应的数据块,接收用户的请求。
9.SecondaryNameNode介绍
SecondaryNameNode主要负责定期的把edits文件中的内容合并到fsimage中,这个操作称为checkpoint。注意:在NameNode的HA架构中没有SecondaryNameNode进程,文件合并操作会由standby NameNode负责实现,所以在Hadoop集群中,SecondaryNameNode进程并不是必须的。
10.DataNode介绍
DataNode负责数据的真实存储。重点两个概念:block、replication。
block:默认128MB
11.总结
每次启动都需要DataNode节点同步block信息到namenode,所以数据越多每次启动越慢。
namenode启动会加载元数据信息到内存,每份文件不论大小都恒定占用150B内存。所以不适合存储小文件。
11.高可用(HA)
指的是在一个集群中存在多个NameNode,分别运行在独立的物理节点上。在任何时间点,只有一个NameNode是处于Active状态,其它的是处于Standby状态。使用HA的时候,不能启动SecondaryNameNode,会出错。
之前是SecondaryNameNode负责合并edits到fsimage文件 那么现在这个工作被standby NN负责了。11.HDFS的高扩展(Federation)
这种设计可提供以下特性:
1:HDFS集群扩展性。多个NameNode分管一部分目录,使得一个集群可以扩展到更多节点,不再因内存的限制制约文件存储数目。
2:性能更高效。多个NameNode管理不同的数据,且同时对外提供服务,将为用户提供更高的读写吞吐率。
3:良好的隔离性。用户可根据需要将不同业务数据交由不同NameNode管理,这样不同业务之间影响很小。
总结
https://naotu.baidu.com/file/f66f857cb7f271b326ab5521a9030358?token=cac593a0998711d6