Hadoop

一、前述

分享一篇hadoop的常用命令的总结,将常用的Hadoop命令总结如下。

二、具体

1、启动hadoop所有进程
start-all.sh等价于start-dfs.sh + start-yarn.sh

但是一般不推荐使用start-all.sh(因为开源框架中内部命令启动有很多问题)。

2、单进程启动。

sbin/start-dfs.sh

—————

    sbin/hadoop-daemons.sh –config .. –hostname .. start namenode …
    sbin/hadoop-daemons.sh –config .. –hostname .. start datanode …
    sbin/hadoop-daemons.sh –config .. –hostname .. start sescondarynamenode …
    sbin/hadoop-daemons.sh –config .. –hostname .. start zkfc …         //

 

sbin/start-yarn.sh
————–  
    libexec/yarn-config.sh
    sbin/yarn-daemon.sh –config $YARN_CONF_DIR  start resourcemanager
    sbin/yarn-daemons.sh  –config $YARN_CONF_DIR  start nodemanager

3、常用命令

    1、查看指定目录下内容

   hdfs dfs –ls [文件目录]

    hdfs dfs -ls -R   /                   //显式目录结构

    eg: hdfs dfs –ls /user/wangkai.pt

   2、打开某个已存在文件

    hdfs dfs –cat [file_path]

   eg:hdfs dfs -cat /user/wangkai.pt/data.txt

  3、将本地文件存储至hadoop

     hdfs dfs –put [本地地址] [hadoop目录]

     hdfs dfs –put /home/t/file.txt  /user/t  

  4、将本地文件夹存储至hadoop

    hdfs dfs –put [本地目录] [hadoop目录] 
    hdfs dfs –put /home/t/dir_name /user/t

   (dir_name是文件夹名)

  5、将hadoop上某个文件down至本地已有目录下

     hadoop dfs -get [文件目录] [本地目录]

     hadoop dfs –get /user/t/ok.txt /home/t

  6、删除hadoop上指定文件

     hdfs  dfs –rm [文件地址]

     hdfs dfs –rm /user/t/ok.txt

  7、删除hadoop上指定文件夹(包含子目录等)

     hdfs dfs –rm [目录地址]

     hdfs dfs –rmr /user/t

  8、在hadoop指定目录内创建新目录

      hdfs dfs –mkdir /user/t

      hdfs  dfs -mkdir – p /user/centos/hadoop 

  9、在hadoop指定目录下新建一个空文件

    使用touchz命令:

    hdfs dfs  -touchz  /user/new.txt

  10、将hadoop上某个文件重命名

   使用mv命令:

   hdfs dfs –mv  /user/test.txt  /user/ok.txt   (将test.txt重命名为ok.txt)

  11、将hadoop指定目录下所有内容保存为一个文件,同时down至本地

   hdfs dfs –getmerge /user /home/t

  12、将正在运行的hadoop作业kill掉

   hadoop job –kill  [job-id]

  13.查看帮助

  hdfs dfs -help        

4、安全模式

  (1)退出安全模式

      NameNode在启动时会自动进入安全模式。安全模式是NameNode的一种状态,在这个阶段,文件系统不允许有任何修改。

      系统显示Name node in safe mode,说明系统正处于安全模式,这时只需要等待十几秒即可,也可通过下面的命令退出安全模式:/usr/local/hadoop$bin/hadoop dfsadmin -safemode leave

  (2) 进入安全模式
    在必要情况下,可以通过以下命令把HDFS置于安全模式:/usr/local/hadoop$bin/hadoop dfsadmin -safemode enter

 

5、节点添加

添加一个新的DataNode节点,先在新加节点上安装好Hadoop,要和NameNode使用相同的配置(可以直接从NameNode复制),修改HADOOPHOME/conf/masterNameNodeNameNodeHADOOPHOME/conf/master文件,加入NameNode主机名。然后在NameNode节点上修改HADOOP_HOME/conf/slaves文件,加入新节点名,再建立新加节点无密码的SSH连接,运行启动命令为:/usr/local/hadoop$bin/start-all.sh

 

6、负载均衡

HDFS的数据在各个DataNode中的分布可能很不均匀,尤其是在DataNode节点出现故障或新增DataNode节点时。新增数据块时NameNode对DataNode节点的选择策略也有可能导致数据块分布不均匀。用户可以使用命令重新平衡DataNode上的数据块的分布:/usr/local/hadoop$bin/start-balancer.sh

7、补充

1.对hdfs操作的命令格式是hdfs dfs  
1.1 -ls 表示对hdfs下一级目录的查看
1.2 -lsr 表示对hdfs目录的递归查看
1.3 -mkdir 创建目录
1.4 -put 从Linux上传文件到hdfs
1.5 -get 从hdfs下载文件到linux
1.6 -text 查看文件内容
1.7 -rm 表示删除文件
1.7 -rmr 表示递归删除文件
2.hdfs在对数据存储进行block划分时,如果文件大小超过block,那么按照block大小进行划分;不如block size的,划分为一个块,是实际数据大小。
*****PermissionDenyException  权限不足**********  
hadoop常用命令:  
hdfs dfs  查看Hadoop HDFS支持的所有命令   
hdfs dfs –ls  列出目录及文件信息   
hdfs dfs –lsr  循环列出目录、子目录及文件信息   
hdfs dfs –put test.txt /user/sunlightcs  将本地文件系统的test.txt复制到HDFS文件系统的/user/sunlightcs目录下   
hdfs dfs –get /user/sunlightcs/test.txt .  将HDFS中的test.txt复制到本地文件系统中,与-put命令相反   
hdfs dfs –cat /user/sunlightcs/test.txt  查看HDFS文件系统里test.txt的内容   
hdfs dfs –tail /user/sunlightcs/test.txt  查看最后1KB的内容   
hdfs dfs –rm /user/sunlightcs/test.txt  从HDFS文件系统删除test.txt文件,rm命令也可以删除空目录   
hdfs dfs –rmr /user/sunlightcs  删除/user/sunlightcs目录以及所有子目录   
hdfs dfs –copyFromLocal test.txt /user/sunlightcs/test.txt  从本地文件系统复制文件到HDFS文件系统,等同于put命令   
hdfs dfs –copyToLocal /user/sunlightcs/test.txt test.txt  从HDFS文件系统复制文件到本地文件系统,等同于get命令   
hdfs dfs –chgrp [-R] /user/sunlightcs  修改HDFS系统中/user/sunlightcs目录所属群组,选项-R递归执行,跟linux命令一样   
hdfs dfs –chown [-R] /user/sunlightcs  修改HDFS系统中/user/sunlightcs目录拥有者,选项-R递归执行   
hdfs dfs –chmod [-R] MODE /user/sunlightcs  修改HDFS系统中/user/sunlightcs目录权限,MODE可以为相应权限的3位数或+/-{rwx},选项-R递归执行
hdfs dfs –count [-q] PATH  查看PATH目录下,子目录数、文件数、文件大小、文件名/目录名   
hdfs dfs –cp SRC [SRC …] DST       将文件从SRC复制到DST,如果指定了多个SRC,则DST必须为一个目录   
hdfs dfs –du PATH  显示该目录中每个文件或目录的大小   
hdfs dfs –dus PATH  类似于du,PATH为目录时,会显示该目录的总大小   
hdfs dfs –expunge  清空回收站,文件被删除时,它首先会移到临时目录.Trash/中,当超过延迟时间之后,文件才会被永久删除   
hdfs dfs –getmerge SRC [SRC …] LOCALDST [addnl]      获取由SRC指定的所有文件,将它们合并为单个文件,并写入本地文件系统中的LOCALDST,选项addnl将在每个文件的末尾处加上一个换行符   
hdfs dfs –touchz PATH   创建长度为0的空文件   
hdfs dfs –test –[ezd] PATH     对PATH进行如下类型的检查:  -e PATH是否存在,如果PATH存在,返回0,否则返回1  -z 文件是否为空,如果长度为0,返回0,否则返回1  -d 是否为目录,如果PATH为目录,返回0,否则返回1   
hdfs dfs –text PATH  显示文件的内容,当文件为文本文件时,等同于cat,文件为压缩格式(gzip以及hadoop的二进制序列文件格式)时,会先解压缩    hdfs dfs –help ls  查看某个[ls]命令的帮助文档

转发至:https://www.cnblogs.com/LHWorldBlog/p/8514994.html

版权声明:本文为yifeiyu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/yifeiyu/p/11044290.html