Hadoop一些常用的命令以及DataNode、Yarn节点服役、退役

1、hadoop常用命令

hadoop verion       //版本
hadoop fs       //文件系统客户端.
hadoop jar      //
hadoop classpath    //查看hadoop类路径
hadoop checknative  //检查压缩库本地安装情况

hadoop启动命令
$>start-all.sh     //start-dfs.sh + start-yarn.sh

$>start-dfs.sh 相当于后面两个 //hadoop-daemon.sh start namenode
            //hadoop-daemons.sh start datanode

$>start-yarn.sh        //yarn-daemon.sh start resourcemanager
            //yarn-daemons.sh start nodemanager

2、HDFS常用命令

hdfs常用命令
--------------------
$>hdfs dfs -mkdir /user/centos/hadoop   //创建目录
$>hdfs dfs -ls -R /user/centos/hadoop  //递归查看目录中的文件
$>hdfs dfs -lsr /user/centos/hadoop    //递归查看目录中的文件
$>hdfs dfs -put index.html /user/centos/hadoop //上传文件到HDFS中
$>hdfs dfs -get /user/centos/hadoop/index.html a.html  //下载文件到本地
$>hdfs dfs -rm -r -f /user/centos/hadoop   //递归删除目录

注意:hdfs dfs  相当于 Hadoop dfs即操作文件系统
——————————————————————————————————————————————————
对hadoop中name中的镜像文件、编辑日志文件的相关操作

使用oiv命令查询hadoop中name中的镜像文件
hdfs oiv -i fsimage -o a.xml -p XML //查看镜像文件,将其转化为xml格式查看

hdfs dfsadmin管理命令
$>hdfs dfsadmin            //查看帮助
$>hdfs dfsadmin    -help rollEdits //查看指定命令的帮助
$>hdfs dfsadmin -rollEdits //滚动编辑日志
启动hdfs时,镜像文件编辑日志会进行融合,编辑日志滚动

查看hdfs是否在安全模式,安全模式不能对日志文件等进行删除和修改
$>hdfs dfsadmin -safemode  enter       //进入
$>hdfs dfsadmin -safemode  get         //查看
$>hdfs dfsadmin -safemode  leave       //退出
$>hdfs dfsadmin -safemode  wait            //等待

保存名字空间(一般用来创建检查点),需要进入安全模式,启动完成自动进入安全模式
$>hdfs dfsamdin -saveNamespace
——————————————————————————————————————
配额管理(quota)
[目录配额]使得目录下的存储文件总数得到一定的控制
计算目录下的所有文件的总个数。如果1,表示空目录。
$>hdfs dfsadmin -setQuota 1 dir1 dir2      //设置目录配额
$>hdfs dfsadmin -clrQuota 1 dir1 dir2      //清除配额管理

[空间配额]
计算目录下的所有文件的总大小.包括副本数.
空间配置至少消耗3倍的空间大小(目录本身会占用3倍的空间)。
$>hdfs dfsadmin -setSpaceQuota 3 data
$>hdfs dfsadmin -clrSpaceQuota dir1        //清除配额管理

————————————————————————————————————————
快照管理
1.描述
迅速对文件(夹)进行备份。不产生新文件,使用差值存储。
默认是禁用快照,先启用。

2.命令
$>hdfs dfsadmin -allowSnapShot dir1    //在dir1启用快照
$>hdfs dfsadmin -disallowSnapShot dir1 //在dir1禁用快照
$>hdfs dfs -createSnapshot dir ss1 //创建快照
$>hdfs dfs -renameSnapshot dir ss1 ss2 //重命名
$>hdfs dfs -deleteSnapshot dir ss1 //删除快照

3、HDFS默认为64M,一般设置为128M 
之所以设置为128M是为了提高效率,让寻址时间占用读取时间的1%,寻址时间大概为10ms左右,而磁盘的读取时间一般为100M/s,所以为了满足寻址时间占用读取时间的1%,一般设置为128M。当文件切割得太小会使得寻址大于读取时间的1%,不利于效率的提升。

HDFS不适合存储大量的小文件,因为小文件会使得namenode增大,namenode只负责datanode的归档管理,存储的是datanode块中文件的索引,每个文件大概索引字节为152个,不管大小,都一样,所以当文件过小,存储的数据少但是耗费的资源却一样,存储的性价比高。并且namenode是运行在内存中的,内存资源相对宝贵,理应让它发挥最大的效益。

配置hadoop的最小blocksize,必须是512的倍数。
 

[hdfs-site.xml]
dfs.namenode.fs-limits.min-block-size=1024
write,进行校验,512进行一次校验。

默认最小块是1M,当我们通过API进行设置时也要大于1M,除非手动修改hadoop的默认配置文件,即hdfs-default.xml,一般不建议这么做。

单独配置辅助名称节点

[hdfs-site.xml]
dfs.namenode.secondary.http-address=s206:50090

4、DataNode、Yarn节点服役、退役

DataNode的服役:当某个DataNode节点挂掉之后,需要有个新节点自动补上,以达到设置的节点副本数(一般设置为3个副本)。通过黑白名单以及Slaves文件来对它进行控制,Slaves文件只是在集群启动的时候,集群会通过读取Slaves文件来启动相应的DataNode,而并非直接由Slaves控制。

黑白名单的组合情况,不需要分发到其他节点上,只要存储在namenode节点上即可。
 

include     //dfs.hosts    白名单
exclude     //dfs.hosts.exclude 黑名单

include     exclude     Interpretation
No          No          不能连接
No          Yes         不能连接
Yes         No          可以连接
Yes         Yes         可以连接,将会退役状态。

节点的服役和退役(hdfs)

[服役]

[添加新节点] 
1.在dfs.include文件中包含新节点名称,该文件在nn的本地目录。

[白名单]
[s201:/soft/hadoop/etc/dfs.include.txt]
s202
s203
s204
s205

2.在hdfs-site.xml文件中添加属性.(这个是早就配置好了的)

<property>
    <name>dfs.hosts</name>
    <value>/soft/hadoop/etc/dfs.include.txt</value>
</property>

3.在nn上刷新节点(当要添加新节点的时候,而又不能停止集群运行,只能通过黑白名单的方式来维护3个副本的存在)

$>hdfs dfsadmin -refreshNodes
s202
s203
s204
s205   

5.单独在新节点的机器上启动新的节点中的datanode

[s205]
$>hadoop-daemon.sh start datanode

[退役] 
1.添加退役节点的ip到黑名单,不要更新白名单.

[/soft/hadoop/etc/dfs.hosts.exclude.txt]
s205

2.配置hdfs-site.xml

<property>
    <name>dfs.hosts.exclude</name>
    <value>/soft/hadoop/etc/dfs.hosts.exclude.txt</value>
</property>

3.刷新nn节点

$>hdfs dfsadmin -refreshNodes

4.查看webui,节点状态在decommisstion in progress. 
5.当所有的要退役的节点都报告为Decommissioned,数据转移工作已经完成。 
6.从白名单删除节点,并刷新节点

[s201:/soft/hadoop/etc/dfs.include.txt]
        ...

$>hdfs dfsadmin -refreshNodes

7.从slaves文件中删除退役节点

节点的服役和退役(yarn) 
[添加新节点] 
1.在dfs.include文件中包含新节点名称,该文件在nn的本地目录。

[白名单]
[s201:/soft/hadoop/etc/yarn.include.txt]
s202
s203
s204
s205

2.在yarn-site.xml文件中添加属性.

<property>      <name>yarn.resourcemanager.nodes.include-path</name>
    <value>/soft/hadoop/etc/dfs.include.txt</value>
</property>

3.在nn上刷新节点

$>yarn rmadmin -refreshNodes

4.在slaves文件中添加新节点ip(主机名)

s202
s203
s204
s205        //新添加的

5.单独启动新的节点中的nodemananger

[s205]
$>yarn-daemon.sh start nodemananger

[退役] 
1.添加退役节点的ip到黑名单,不要更新白名单.

[/soft/hadoop/etc/yarn.exclude.txt]
s205

2.配置yarn-site.xml

<property>
    <name>yarn.resourcemanager.nodes.exclude-path</name>
    <value>/soft/hadoop/etc/dfs.hosts.exclude.txt</value>
</property>

3.刷新rm节点

$>yarn rmadmin -refreshNodes

4.查看webui,节点状态在decommisstion in progress.

5.当所有的要退役的节点都报告为Decommissioned,数据转移工作已经完成。

6.从白名单删除节点,并刷新节点

$>yarn rmadmin -refreshNodes

7.从slaves文件中删除退役节点

原文: https://blog.csdn.net/Jorocco/article/details/80623082

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

Hadoop一些常用的命令以及DataNode、Yarn节点服役、退役