大数据之路系列之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.读写文件流程

hadoop2优化 hadoop ui_Hadoop

二、hdfs命令

  1. 查看目录下的文件:hdfs dfs -ls hdfs://bigdata01:9000/ 。其实后面hdfs的url这一串内容在使用时默认是可以省略的,因为hdfs在执行的时候会根据HDOOP_HOME自动识别配置文件中的fs.defaultFS属性,简写:hdfs dfs -ls /
  2. 上传文件:hdfs dfs -put xx.txt /
  3. 查看内容: hdfs dfs -cat /xx.txt
  4. 下载到本地当前目录:hdfs dfs -get /xx.txt .
  5. 创建目录: hdfs dfs -mkdir /xx
  6. 创建多级目录:hdfs dfs -mkdir -p /xx/xx.txt
  7. 递归查看所有的目录信息:hdfs dfs -ls -R /
  8. 删除文件:hdfs dfs -rm /xx.txt
  9. 删除文件夹:hdfs dfs -rm -r /xx
  10. 统计根目录下文件的个数:hdfs dfs -ls / |grep /| wc -l
  11. 统计根目录下每个文件的大小,最终把文件名称和大小打印出来: 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)

hadoop2优化 hadoop ui_Hadoop_02


指的是在一个集群中存在多个NameNode,分别运行在独立的物理节点上。在任何时间点,只有一个NameNode是处于Active状态,其它的是处于Standby状态。使用HA的时候,不能启动SecondaryNameNode,会出错。

之前是SecondaryNameNode负责合并edits到fsimage文件 那么现在这个工作被standby NN负责了。11.HDFS的高扩展(Federation)

hadoop2优化 hadoop ui_hdfs_03


这种设计可提供以下特性:

1:HDFS集群扩展性。多个NameNode分管一部分目录,使得一个集群可以扩展到更多节点,不再因内存的限制制约文件存储数目。

2:性能更高效。多个NameNode管理不同的数据,且同时对外提供服务,将为用户提供更高的读写吞吐率。

3:良好的隔离性。用户可根据需要将不同业务数据交由不同NameNode管理,这样不同业务之间影响很小。


总结

https://naotu.baidu.com/file/f66f857cb7f271b326ab5521a9030358?token=cac593a0998711d6