1.bin/hdfs namenode -format

** 注意事项

1.在配置好了配置文件之后,首次启动之前,做初始化操作

2.在后续启动的时候,不需要再初始化

3.初始化的一些影响

一.初始化操作

@_为什么要初始化,它到底做了哪些事情?

答:初始化的时候,会新建文件夹,dfs/name,文件夹的名字是dfs,在他下面会新建一个文件夹,名字是name

×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

初始化之前,建议先把之前的版本信息全部删除

[root@bigboss hadoop-2.6.0]# rm -rf data/tmp/*
[root@bigboss hadoop-2.6.0]# hdfs namenode -format

初始化成功:

Storage directory /opt/programs/hadoop-2.6.0/data/tmp/dfs/name has been successfully formatted.



×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

2.初始化的作用

1.生成namenode的文件目录结构

--------in_use.lock是在使用中才会生成

--------和edits相关的也是在开始使用之后,才会生成

2.确定了三个ID,namespaceIDclusterIDblockpoolID



3.生成了文件系统镜像fsimage_0000000000000000000

3.只启动namenode

$ sbin/hadoop-daemon.sh start namenode



1.会生成锁文件,in_use.lock

2.会生成edits相关文件edits_inprogress_0000000000000000001

并且seen_txid会改变成和edits_inprogress文件后面的编号id一样

[root@bigboss current]# cat seen_txid
1

4.启动datanode

$ sbin/hadoop-daemon.sh start datanode





@_图中tmp/finalized/,rbw/为空

1.会生成datanode的文件目录结构

current文件夹和锁文件in_user.lock是一起生成的

2.会生成块池id对应的文件夹和VERSION文件

为什么会自动配对?

答:slaves文件规定hadoop集群的所有从节点的主机,默认值是localhost,所以伪分布式可以配对成功

**hadoop的从节点类型不止一种

@hdfs的从节点 datanode

@yarn的从节点 nodemanager

为什么要这样设计?

3.三个配对id的位置

1.namespaceID在 BP…里面的current文件夹下的VERSION文件里面

2.blockpoolID 在BP…里面的current文件夹下的VERSION文件里面



3.clusterID 在BP…同级的VERSION文件里面

5.没有操作任何的hdfs的时候

/opt/programs/hadoop-2.6.0/data/tmp/dfs/data/current/BP-1003710699-192.168.1.211-1567039419296/current/finalized

下是空的,跟hdfs上保存数据相关的所有内容,都保存在这个文件夹下


二.hadoop的配置

1.伪分布式

2.分布式配置

------在伪分布式的基础上

1.所有节点都要安装jdk,ssh免密登录

2.确定各个节点上运行的服务

1个namenode

3个datanode

1个secondarynamenode

1个resourcemanager

3个nodemanager

3.修改配置文件

core-site.xml:

<property>
<name>fs.defaultFS</name>
<value>hdfs://bigboss:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/programs/hadoop-2.6.0/data/tmp</value>
</property>
</configuration>

hdfs-site.xml:

<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>bigboss_c:50090</value>
</property>
</configuration>

mapred-site.xml:

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>bigboss_b:19888</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>bigboss_b:10020</value>
</property>

yarn-site.xml:

注意

<value>192.168.1.24</value>写成<value>bigboss_b</value>可能会导致resourcemanager启动失败,原因未知,已确认ip与主机名映射的hosts文件无误,之前使用也没有任何问题,但是在这里出问题了。老师和其他同学用hadoop2主机名没有出现问题,我bigboss_b和同桌caixunkun2都出问题了。。。辣鸡玩意儿!!!

<name>yarn.resourcemanager.hostname</name>
<value>bigboss_b</value>

正文:

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>192.168.1.24</value>
</property>
<!-- 日志聚集功能开启 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志文件保存的时间,以秒为单位 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>640800</value>
</property>

4.把hadoop应用程序拷贝到其他节点

hadoop分布式系统,每个节点的配置要完全一样

5.删除data/tmp/*

6.启动服务

为什么不能用start-all.sh?

答:使用这个命令,需要hdfs和yarn的主节点都在当前节点上,才可以统一启动

使用start-dfs.sh和start-yarn.sh来代替它

start-dfs.sh 这个命令要在namenode所在的节点执行,才能正常启动hdfs服务

start-yarn.sh 这个命令要在resourcemanager所在的节点执行,才能正常启动yarn服务

7.测试是否能正常运行

1.webui

2.能使用服务的功能

1.hdfs上面新建文件夹

主要是集群内部的节点,都可以使用hdfs的shell命令

bin/hdfs dfs -mkdir /datanode

2.yarn的测试

配置好了hadoop的默认文件系统是hdfs之后,会把相关的操作都默认为是基于hdfs的操作

1.在hdfs上创建文件夹

2.上传文件

3.运行任务

8.添加配置项

上面配置文件中已经设置了~

日志聚集和任务历史服务


三.hdfs的细节

1.fsimage到底是干嘛的

文件系统镜像,把文件系统的某一时刻的状态持久化到磁盘

某一时刻的状态:namenode某一时刻内存中存在的hdfs相关的信息,元数据

secondarynamenode帮助namenode进行更新fsimage

2.edits是干嘛的

edits 编辑操作记录

根据操作记录,可以推断出namenode内存保存的元数据信息


四.fsimage里面保存的信息是完整的内存结构吗?

答:fsimage是内存信息镜像,包括所有的元数据信息,除了每个块所在的节点信息

所以每次启动之后,namenode再重构了元数据之后,他会接受每个datanode的汇报信息

汇报的信息就是自己上面有哪些块

需要时间把块和节点的映射补充完整,在补充完整之前,namenode不会对外提供服务,这一段时间就是安全模式

在安全模式下,只能做查询的操作,不能增删改

退出安全模式的条件:所有hdfs上的块的信息,跟主机的映射达到了99.999%之后会退出安全模式

五.安全模式

1.不是只有在启动的时候才可以有安全模式

可以手动开启或结束安全模式

2.一般手动进入安全模式的场景

不能提供服务,不会修改元数据,namenode直接保存元数据到磁盘,形成fsimage

3.下一次checkpoint的时候,sn会怎么做

1.会拷贝fsimage和edits

会造成sn上的edits的缺失

2.只会拷贝edits,会造成sn上面没有namenode紧急保存的fsimage

sn会造成fsimage的缺失

六.md5加密的必要性

在传输结束之后,验证文件的完整性和正确性

【Hadoop】hdfs的秘密,namenode,datanode,yarn,安全模式,fsimage,edits...的更多相关文章

  1. Hadoop 2.7.4 HDFS+YRAN HA删除datanode和nodemanager

    当前集群 主机名称 IP地址 角色 统一安装目录 统一安装用户 sht-sgmhadoopnn-01 172.16.101.55 namenode,resourcemanager /usr/local ...

  2. FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to controller/192.168.1.183:9000. Exiting. java.io.IOExcep

    2018-01-09 09:47:38,297 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed ...

  3. Hadoop问题:启动hadoop 2.6遇到的datanode启动不了

    问题描述:第一次启动输入jps都有,第二次没有datanode 日志如下: 查看日志如下: -- ::, INFO org.mortbay.log: Started HttpServer2$Selec ...

  4. 启动hadoop 2.6遇到的datanode启动不了

    转自 http://blog.csdn.net/zhangt85/article/details/42078347 查看日志如下: 2014-12-22 12:08:27,264 INFO org.m ...

  5. namenode datanode理解

        HDFS是以NameNode和DataNode管理者和工作者模式运行的.          NameNode管理着整个HDFS文件系统的元数据.从架构设计上看,元数据大致分成两个层次:Name ...

  6. 启动HDFS之后一直处于安全模式org.apache.hadoop.hdfs.server.namenode.SafeModeException: Log not rolled. Name node is in safe mode.

    一.现象 三台机器 crxy99,crxy98,crxy97(crxy99是NameNode+DataNode,crxy98和crxy97是DataNode) 按正常命令启动HDFS之后,HDFS一直 ...

  7. Hadoop HDFS, YARN ,MAPREDUCE,MAPREDUCE ON YARN

    HDFS 系统架构图 NameNode 是主节点,存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和块所在的DataNode等.NameNode将 ...

  8. hadoop 的HDFS 的 standby namenode无法启动事故处理

    standby namenode无法启动 现象:线上使用的2.5.0-cdh5.3.2版本Hadoop,开启了了NameNode HA,HA采用QJM方式.hadoop的集群的namenode的sta ...

  9. Apache Hadoop集群安装(NameNode HA + YARN HA + SPARK + 机架感知)

    1.主机规划 序号 主机名 IP地址 角色 1 nn-1 192.168.9.21 NameNode.mr-jobhistory.zookeeper.JournalNode 2 nn-2 192.16 ...

随机推荐

  1. 第3章:关系数据库标准语言 SQL

    目录 第3章:关系数据库标准语言 SQL 3.1.SQL概述 3.1.1.历史 3.3.2.SQL语言的功能 3.3.3.SQL的特点 3.3.4.基本概念 3.2.学生-课程数据库 3.3.数据定义 ...

  2. Spring Cloud学习 之 Spring Cloud Ribbon(负载均衡器源码分析)

    文章目录 AbstractLoadBalancer: BaseLoadBalancer: DynamicServerListLoadBalancer: ServerList: ServerListUp ...

  3. 王颖奇 20171010129《面向对象程序设计(java)》第十七周学习总结

    实验十七  线程同步控制 实验时间 2018-12-10 学习总结: 1.Java通过多线程的并发运行提高系统资源利用 率,改善系统性能. 2.假设有两个或两个以上的线程共享 某个对象,每个线程都调用 ...

  4. 读源码之Spring 核心内容

    为什么有这篇文档 工作两三年之后,总感觉什么东西都懂,但是什么东西又都不会.所以日常学习是很有必要的,俗话说学而不思则罔 ,思而不学则殆.所以我们要学思结合,学习的方法有很多,但是思考的深度或者说有没 ...

  5. 环境篇:Kylin3.0.1集成CDH6.2.0

    环境篇:Kylin3.0.1集成CDH6.2.0 Kylin是什么? Apache Kylin™是一个开源的.分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析( ...

  6. mongodb cluster

    假设三台机器,ip分别为192.168.1.10,192.168.1.11,192.168.1.12,分别在每台电脑上下载并解压mongodb,关闭防火墙或者开放防火墙端口 一.安装shard 配置文 ...

  7. Excel+Python:分组名单

    各部门的社保.公积金.全勤奖.工衣.工龄奖.罚款等名单,要统计出来,A4纸横向排版.要么发群里通知,要么打印给相应主管.部门放一列,相应部门名单放一个cell里面. 公开透明后,人头不对.人名不对,各 ...

  8. python3语法学习第五天--函数(1)

    函数:函数能提高应用的模块性,和代码的重复利用率,是一段可重复使用的代码块 自定义函数: 1.函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). 2.任何传入参数和自变量必须放在圆括 ...

  9. 今天玩一下python得邮件解析吧,查看邮件内容小儿科,我们下载邮件的附件

    直男,直接上代码. 自己看打印的内容 主要功能如下: #如果邮件内容存在链接则返回链接,若不存在则直接下载邮件附件 import imapclient,re import pyzmail #提取邮件里 ...

  10. 将微服务运行在docker上遇到的问题一

    按照类似这样的流程: 但是去访问本机的 localhost:92 localhost:80 都没有任何的内容..... 这是什么原因? 重新再来一次 新写了一个微服务demo jar包: 相应的Doc ...