Hadoop HDFS:
HDFS在hadoop中是一个分布式文件存储系统,hdfs非常重要,它是大数据的基石,像hbase,hive等都是依赖于它。
2. HDFS系统有两种服务
2.1 Namenode:
这个服务管理着文件的元数据,
2.2 Datanode:
这个服务是存储文件的数据的服务,一般在多个节点开启这个服务
读文件:
1. 向Namenode查询文件的存储位置
2. 根据第一步获取的文件位置,向datanode获取数据
写文件与读文件流程类似
Hadoop HDFS HA:
Namenode 中主要由两部分构成 Edits, FSimage, Edits存放在时时的元数据,在做HA时,需要开启两个Namenode服务
一个Namenode 是active状态,另一Namenode是standby状态,如果active状态的Namenode出现故障,不能对外提供服务,
HA 能自动将 另一台standby状态的Namenode服务,切换成active状态,并对外提供服务,这个状态的自动切换时通过zookeeper来完成的(两个namenode开启zkfc服务)。这时必须保证两个namenode的数据时同步的,保证两个namenode的数据同步,是开启多个journalnode 服务,namenode 会时时同步数据到journalnode(active namenode 会在写入的同时,也会写入到journalnode,standby namenode会时时同步journalnode的数据)
所以我们在开始启动服务时:
首先要启动journalnode服务
2. 格式化namenode,并开启namenode 服务
3. standby namenode,首先同步namenode节点数据,再开启namenode服务
4. 你可以先停掉hdfs服务,初始化zkfc
5. 可以调用dfs-start.sh 开启hdfs相关的服务,但是两个namenode节点上的zkfc是需要自己手动启动的。
参考配置文件: https://github.com/wujianqiangwjq/hadoop_cluster_configuration/hadoop