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.hostsname>
<value>/soft/hadoop/etc/dfs.include.txtvalue>
property>
3.在nn上刷新节点(当要添加新节点的时候,而又不能停止集群运行,只能通过黑白名单的方式来维护3个副本的存在)
$>hdfs dfsadmin -refreshNodes
4.在slaves文件中添加新节点ip(主机名)(以便后面重新启动集群的时候自动寻找新服役的节点)
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.excludename>
<value>/soft/hadoop/etc/dfs.hosts.exclude.txtvalue>
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-pathname>
<value>/soft/hadoop/etc/dfs.include.txtvalue>
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-pathname>
<value>/soft/hadoop/etc/dfs.hosts.exclude.txtvalue>
property>
3.刷新rm节点
$>yarn rmadmin -refreshNodes
4.查看webui
,节点状态在decommisstion in progress.
5.当所有的要退役的节点都报告为Decommissioned
,数据转移工作已经完成。
6.从白名单删除节点,并刷新节点
$>yarn rmadmin -refreshNodes
7.从slaves文件中删除退役节点