[1]Hadoop 2.x-hadoop fs常用命令、hadoop目录结构简介

环境

  • 宿主机:Windows 10 64_bit

  • 虚拟机:VMware pro 12

    • CentOS 7.5 64_bit(3台:1个master、2个slave)
    • Hadoop-2.6.5
  • ssh工具:SecureCRT 7.3

目录

1、hadoop常用命令:FS Shell命令

2、hadoop目录结构简介

正文

启动集群:sbin/start-all.sh,包括启动HDFS和Map/Reduce;
停止集群:sbin/stop-all.sh

1、hadoop常用命令:FS Shell命令

主要包括:

  • 1、hadoop namenode -format
  • 2、文件上传、下载
  • 3、各种基本操作命令

所有的hadoop命令均由bin/hadoop脚本引发。

命令 说明
hadoop namenode -format 格式化一个新的分布式文件系统。这条命令小心使用,不要在子节点使用。
hadoop version 查看hadoop版本 。在终端即可,无论在哪个路径下
cd $HADOOP_HOME/lib/nativefile libhadoop.so.1.0.0 查看集群位数
jps 查看hadoop集群的进程 。(Java Process Status)。Hadoop jps各个进程的功能解析
hadoop fs -mkdir -p /data/input 在HDFS上创建一个目录/data/input-p会创建路径中各级父目录(如果没有的话)
hadoop fs -put aaa.txt /data/input 将当前目录(本地文件系统)下的aaa.txt 文件复制(上传)到HDFS上。源路径可以是多个
hadoop fs -ls /data/input 查看HDFS中/data/input目录下的文件 。加上-R递归显示。hadoop2.x现在直接使用hadoop fs命令,hadoop dfs、hdfs dfs弃用。
hadoop fs -cp {源路径,可以是多个} {目标路径} (HDFS之间)复制文件到指定目录
hadoop fs -cat {URI} | [head head/tail -n] 将HDFS路径指定文件的内容stdout(标准输出)
hadoop fs -get {源路径} {本地路径} HDFS上复制文件到本地文件系统-put的逆操作)
hadoop fs -mv {源路径,可以多个} {目标路径} (HDFS之间)将文件从源路径移动/重命名到目标路径(两者都是HDFS中)
hadoop fs -rm {路径} HDFS中删除指定的文件。只删除非空目录和文件(递归删除用-rm -r
hadoop fs -tail [-f] URI 将文件尾部1K字节的内容输出到stdout
hadoop fs -touchz URI [URI …] 创建一个0字节的空文件
hadoop fs -text [URI] | [head head/tail -n] 将源文件输出为文本格式
hadoop fs -test -[ezd] URI 检测文件-e 检查文件是否存在;-z 检查文件是否是0字节;-d 如果路径是个目录

2、hadoop目录结构简介

[root@master hadoop-2.6.5]# tree -L 1
.
├── bin                 存放Hadoop相关服务(HDFS,YARN)进行操作的脚本,用于执行hadoop脚本命令,被hadoop-daemon.sh调用执行,也可单独执行,一切命令的核心。
├── dfs                 分布式文件系统,
├── etc                 配置文件,其中hadoop目录是最重要的
├── include         本地库的头文件
├── lib                  本地的库,存放的是Hadoop运行时依赖的jar包,Hadoop在执行时会把lib目录下面的jar全部加到classpath中。hadoop编译时需要它,例如编译c++等
├── libexec          各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息
├── LICENSE.txt         
├── logs               hadoop运行的log日志所在
├── NOTICE.txt
├── README.txt
├── sbin               启动/停止Hadoop相关服务的脚本
├── share             Hadoop各个模块编译后的jar包所在的目录,还有文档和官方案例
└── tmp                临时文件夹
10 directories, 3 files

1)、/etc/hadoop/下最重要的配置文件有:

  • core-site.xml:Hadoop核心全局配置文件,其他配置文件中可以引用该文件中定义的属性;
  • hadoop-env.sh:Hadoop环境变量;
  • hdfs-site.xml:HDFS配置文件,该模板的属性继承于core-site.xml;namenode在这里配置
  • mapred-site.xml:MapReduce的配置文件,该模板的属性继承于core-site.xml
  • slaves:用于设置所有的slave的名称或IP,每行存放一个。

2)、/dfs:分布式系统

[root@master dfs]# tree
.
├── data  【主节点】该文件夹无具体内容、从节点有。一个标准的dfs.datanode.data.dir目录结构
└── name
    └── current  一个标准的dfs.namenode.name.dir目录结构
        ├── edits_0000000000000000001-0000000000000000008
        ├── edits_0000000000000000009-0000000000000000009
		....
        ├── edits_0000000000000000030-0000000000000000030
        ├── edits_0000000000000000031-0000000000000000032
        ├── edits_inprogress_0000000000000000033
        ├── fsimage_0000000000000000029
        ├── fsimage_0000000000000000029.md5
        ├── fsimage_0000000000000000032
        ├── fsimage_0000000000000000032.md5
        ├── seen_txid
        └── VERSION

3 directories, 18 files

HDFS metadata以树状结构存储整个HDFS上的文件和目录,以及相应的权限、配额和副本因子(replication factor)等。

其中,/name下主要存储两种类型的文件:

  • fsimage:元数据镜像文件,记录某一永久性检查点(Checkpoint)时整个HDFS的元信息
    edits:元数据的操作日志,所有对HDFS的写操作都会记录在此文件中

3)、3种Node

  • NameNode:是Master节点,是大领导。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间;
  • SecondaryNameNode:是一个小弟,分担大哥namenode的工作量;是NameNode的冷备份;合并fsimage和fsedits然后再发给namenode。
  • DataNode:Slave节点,奴隶,干活的。负责存储client发来的数据块block;执行数据块的读写操作。

你可能感兴趣的:(Hadoop大数据)