HDFS的基本操作可以分为集群管理和文件系统操作两种类型:
HDFS中的命令主要在sbin和bin目录下[一般要进行环境变量的设置]:
主要有2种方式:
第一种方式缺点:
1.2.1 集群规划
hadoop系统的规模
组件和角色规划
配置规划:Datanode和Namenode一般都可以配置多个存储路径。
1.2.2 linux环境准备
HDFS作为hadoop的核心组件,随Hadoop一起整体部署。
安装hadoop前的环境准备:
//确保hadoop所需端口打开,通过命令禁用并停止防火墙服务
systemctl mask filewalld
systemctl stop fillwalld
1.2.3 Hadoop的软件包部署
PS:分布式的时候,hadoop软件包需要解压缩,并复制到所有节点上,并且在每个节点上的存储位置都是相同的,并给予足够的用户访问权限。其次,进行系统配置。
HDFS的配置文件:大多数默认是XML和TXT格式存在。配置文件默认存放在/etc/hadoop目录下。
HDFS中6个重要的配置文件:
//core-site.xml文件
dfs-site.xml:HDFS的重要配置文件,其Namenode节点和Datanode节点相关的配置项不同。
Namenode主要有3个配置项:dfs.namenode.name.dir、dfs.blocksize、dfs.replication。
Datanode主要有1个配置项:dfs.datanode.data.dir。
//Namenode主要有3个配置项dfs.namenode.name.dir、dfs.blocksize、dfs.replication。
//Datanode主要有1个配置项
dfs.datanode.data.dir
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/dfs/data</value>
<description>datanode的目录位置,对应的目录需要存在value里面的路径,可以是一个或多个用逗号分隔的本地路径</description>
</property>
<property>
<name>dfs.replication</name>
<value>2</value> <description>hdfs系统的副本数量
</description>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
<description>备份namenode的http地址,master是主机名</description>
</property>
slaves:在Namenode节点还需要建立一个名为slaves的文本文件,里面记录Datanode的子节点机名,用换行分割。
JAVA_HOME进行环境变量配置:export JAVA_HOME=/opt/java/jdk
需要实现机架感知的配置内容,在core-site.xml中实现两个配置项。
net.topology.node.switch.mapping.imp:org.apache.hadoop.net.TableMapping,表示采用映射文件的方式实现机架映射。
net.topology.table.file.name:内容为映射文件的路径和名称。
软件包sbin目录下的start-dfs.sh和stop-dfs.sh为HDFS的集群启动和停止命令。
单独启动或停止一个HDFS进程,或者对单独的角色进行控制命令:hadoop-daemon.sh start | stop namenode |datanode|secondarynamenode
其次可以通过查看http://namenode:50070/查看系统的状态,比如该系统的启动时间、版本、集群ID等信息。
作为文件系统,HDFS的使用主要指对文件的上传、下载和移动,以及查看内容、建立或删除目录等。
查看HDFS状态,主要指查看节点的健康状态,查看存储容量,查看分块信息等。
控制HDFS,主要指对系统进行初始化,增加或删除子节点,以及提高HDFS的可用性等。
hdfs的命令行操作用命令hdfs实现,即命令行敲入:hdfs.hdfs命令文件放在Hadoop目录下的bin子目录中,包含了HDFS绝大多数的用户命令,不带任何参数地执行hdfs,可以看到所有可用的指令。
hdfs namenode -format
当namenode启动时,需要将fsimage等信息读入内存,并且等待各个Datanode上报存储状态,在这个过程完成之前,叫安全模式。(safenode)
此时namenode为只读状态,只能读取不能写入,当足够数量的节点以及数据块处在健康状态时,系统会自动退出安全模式。
手动对安全模式进行管理:hdfs dfsadmin -safemode [enter | leave |get |wait]
由于secondary namenode在进行元数据合并时,保存了元数据的副本信息,当Namenode发生损坏时,可以利用secondary namenode中的数据进行恢复。
大数据业务要求数据被不断采集、不断积累,需要分布式存储和NoSQL数据库等实现方便的横向扩展(scale out)。HDFS可以很方便的进行Datanode节点添加和删除。
1.静态添加/删除Datanode的方法
2.动态添加Datanode的方法
3.动态删除Datanode的方法
添加/删除Datanode完成之后,可以通过两种手段查看结果。
可以通过执行hdfs dfs指令来进行各类操作,包括建立、删除目录、HDFS上的文件复制、移动和改名、本地文件系统和HDFS系统之间的文件相互复制等、文件的权限操作等。
//查看文件目录状态,-ls之后必须指明需要查看的目录
hdfs dfs -ls /hdfsdir/file1
hdfs dfs -ls hdfs://node1:8020/hdfsdir/file1
//建立新目录
hdfs dfs -mkdir /hdfsdir/dir1
//从本地文件系统向HDFS复制文件。-put、-copyFromLocal。
hdfs dfs -put localfile/hdfsdir/file1
hdfs dfs -put -f localfile1 localfile2/hadoopdir
//从HDFS向本地复制文件。-get、-copyToLocal。
hdfs dfs -get /hdfsdir/hdfsfile localfile
访问http://namenode:50070/explorer.html,选择"browse the file system"选项,可以对HDFS的目录结构进行查看。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章