赞
踩
要启动 Hadoop 集群,需要启动 HDFS 和 YARN 两个集群。
注意:首次启动 HDFS 时,必须对其进行格式化操作。本质上是一些清理和准备工作,因为此时的 HDFS 在物理上还是不存在的。
使用命令:
hdfs namenode -format 或者 hadoop namenode -format
关于hdfs的格式化:
首次启动需要进行格式化
在主节点上使用以下命令启动 HDFS NameNode:
hadoop-daemon.sh start namenode
在每个从节点上使用以下命令启动 HDFS DataNode:
hadoop-daemon.sh start datanode
在主节点上使用以下命令启动 YARN ResourceManager:
yarn-daemon.sh start resourcemanager
在每个从节点上使用以下命令启动 YARN nodemanager:
yarn-daemon.sh start nodemanager
以上脚本位于$HADOOP_PREFIX/sbin/目录下。如果想要停止某个节点上某个角色,只需要把命令中的 start 改成 stop 即可。
如果配置了 etc/hadoop/slaves 和 ssh 免密登录,则可以使用程序脚本启动所有 Hadoop两个集群的相关进程,在主节点所设定的机器上执行。
hdfs:$HADOOP_PREFIX/sbin/start-dfs.sh
yarn:$HADOOP_PREFIX/sbin/start-yarn.sh
停止集群:
stop_dfs.sh、stop-yarn.sh
HDFS是 Hadoop Distribute File System 的简称,意为:Hadoop 分布式文件系统。是Hadoop核心组件之一,作为最底层的分布式存储服务而存在。分布式文件系统解决的问题就是大数据存储。它们是横跨在多台计算机上的存储系统。分布
式文件系统在大数据时代有着广泛的应用前景,它们为存储和处理超大规模数据提供所需的扩展能力。
首先,它是一个文件系统,用于存储文件,通过统一的命名空间目录树来定位文件;
其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。
HDFS 采用 master/slave 架构。一般一个 HDFS 集群是有一个 Namenode 和一定数目的 Datanode 组成。Namenode 是 HDFS 集群主节点,Datanode 是 HDFS 集群从节点,两种角色各司其职,共同协调完成分布式的文件存储服务。
HDFS 中的文件在物理上是分块存储 (bolock)的,块的大小可以通过配置参数来规定,默认大小在 hadoop2.x版本中是128M。
HDFS 支持传统的层次型文件组织结构。用户或者应用程序可以创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和大多数现有的文件系统类似,用户可以创建、删除、移动或重命名文件。
Namenode 负责维护文件系统的名字空间,任何对文件系统名字空间或属性的修改都将被 Namenode 记录下来。
HDFS 会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,形如:
hdfs://namenode:port/dir-a/dir-b/dir-c/file.data
我们把目录结构及文件分块位置信息叫做元数据。
Namenode 负责维护整个hdfs 文件系统的目录树结构,以及每一个文件所对应的 block 块信息(block 的 id,以及现在的datanode 服务器)。
文件的各个 block 的具体存储管理由 datanode 节点承担。每一个 block 都可以再多个
datanode 上。Datanode 需要定时向 Namenode 汇报自己持有的 block 信息。存储多个副本(副本数量也可以通过参数设置dfs.replication,默认是3)
为了容错,文件的所有 block 都会有副本。每个文件的 block 大小和副本系数都是可配置的。应用程序可以指定某个文件的副本数目。副本系数可以再文件创建的时候指定。也可以再之后改变。
HDFS 是设计成适应“一次写入,多次读出”的场景,且不支持文件的修改。正因为如此,HDFS 适合用来做大数据分析的底层存储服务,并不适合用来做网盘等应用,因为,修改不方便,延迟大,网络开销大,成本太高。
Hadoop提供了文件系统的 shell 命令行客户端,使用方法如下:
hadoop fs <args> 文件系统 shell 包括与 Hadoop 分布式文件系统(HDFS)以及Hadoop支持的其他文件系统(如本地FS,HFTP FS,S3 FS 等)直接交互的各种类似 shell 的命令。所有FS shell 命令都将路径URI作为参数。URI格式为 scheme://authority/path。对于 HDFS,该 scheme 是hdfs,对于本地 FS,该 scheme 是 file 。scheme 和 authority 是可选的。如果未指定,则使用配置中指定的默认方案。
对于 HDFS ,命令示例如下:
hadoop fs -ls hdfs://namenode:host/parent/child
hadoop fs -ls /parent/child fs.defaultFS 中有配置
对于本地文件系统,命令示例如下:
hadoop fs -ls file:///root/
如果使用的文件系统是 HDFS ,则使用 hdfs dfs 也是可以的,此时
hadoop fs \<args\> = hdfs dfs \<args\>
hadoop fs -ls /user/hadoop/file1
hadoop fs -mkdir -p /user/hadoop/dir1
hadoop fs -put -f localfile1 localfile2 /user/hadoop/hadoopdir
hadoop fs -get hdfs://host:port/user/hadoop/file localfile
hadoop fs -appendToFile localfile /hadoop/hadoopfile
hadoop fs tail /hadoop/hadoopfile
hadoop fs -chmod 666 /hadoop/hadoopfile
hadoop fs -chown someuser:somegrp /hadoop/hadoopfile
hadoop fs -copyFromLocal /root/1.txt /
hadoop fs -copyToLocal /aaa/jdk.jar.gz
hadoop fs -cp /aaa/jdk.tar.gz /bbb/jdk.tar.gz.2
hadoop fs -mv /aaa/jdk.tar.gz
hadoop fs -getmerge /aaa/log.* ./log.sum
hadoop fs -rm -r /aaa/bbb/
hadoop fs -df -h /
hadoop fs -du /user/hadoop/dirl
hadoop fs -setrep -w 3 -R /user/hadoop/dirl
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。