54.HDFS分布式文件系统

HDFS分布式文件系统

HDFS系统借助于一款hadoop工具进行部署,文件系统的主要优势是主要是提高客户端的读取效率,假如一块1TB的磁盘数据需要读取,读取速度为100MB/S,如果将1块磁盘中的数据分别存储到100块磁盘上,那么当用户读取时,它们并行运行,那么用户读取操作就可以瞬间完成。

一个HDFS群集由一个运行于master上的Namenode和多个运行于slave上的Datanode组成。

Namenode负责管理文件系统的命名空间和客户端对文件系统的访问操作。

Datanode负责管理存储的数据。

文件以块形式进行在datanode中存储,假设一个块20MB,块的副本数为3,设置块的副本数来达到冗余效果,防止单个datanode磁盘故障后数据丢失。将相同的副本块存储到不同的datanode中实现冗余,大文件将被切成小块存储。

DHFS文件系统搭建步骤:

Master和Slave服务器的先决环境:

关闭防火墙等基本操作

# iptables -F

# setenforce 0

# ifconfig

配置hosts解析

# vim /etc/hosts

修改内容:

192.168.0.133  master

192.168.0.134  slave1

192.168.0.135  slave2

修改主机名

# vim /etc/sysconfig/network

修改内容:

NETWORKING=yes

HOSTNAME=master

# hostname master

Master服务器上:

创建hadoop运行用户和密码

# useradd hadoop

# passwd hadoop

部署JAVA环境

# tar xzvf jdk-7u65-linux-x64.gz

# mv jdk1.7.0_65/   /usr/local/java

安装hadoop软件

# tar xzvf hadoop-2.4.0.tar.gz

# mv hadoop-2.4.0  /usr/local/hadoop

# chown -R  hadoop.hadoop  /usr/local/hadoop

设置环境变量

# vim /etc/profile

添加内容:

JAVA_HOME=/usr/local/java

HADOOP_HOME=/usr/local/hadoop

PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

# source /etc/profile

修改hadoop配置文件

# vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh    Hadoop的环境文件

添加内容:

JAVA_HOME=/usr/local/java

# vim /usr/local/hadoop/etc/hadoop/core-site.xml     核心配置文件

添加内容:

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>             <!--Namenode的IP:端口-->

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/usr/local/hadoop/tmp</value>       <!--Hadoop临时缓存目录-->

<description>hadoop</description>

</property>

</configuration>

# cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml

# vim /usr/local/hadoop/etc/hadoop/mapred-site.xml  Hadoop的进程配置文件

添加内容:

<configuration>

<property>

<name>mapred.job.tracker</name>              <!--服务器进程的配置项-->

<value>master:9001</value>                  <!--指定为Master端口号为9001-->

</property>

<property>

<name>mapred.local.dir</name>             <!--可以配置多块磁盘,逗号分隔-->

<value>/usr/local/hadoop/var</value>          <!--本地计算临时数据存放位置-->

</property>

</configuration>

# vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml    Namenode和Datanode配置文件

添加内容:

<configuration>

<property>

<name>dfs.namenode.name.dir</name>           <!--配置Namenode工作目录-->

<value>file:/usr/local/hadoop/name</value>

</property>

<property>

<name>dfs.datanade.data.dir</name>             <!--配置Datanode工作目录-->

<value>file:/usr/local/hadoop/data</value>        <!--存放块数据文件目录-->

</property>

<property>

<name>dfs.replication</name>        <!--配置文件块副本数根据slave的数量为单位-->

<value>3</value>

</property>

<property>

<name>dfs.webhdfs.enable</name>              <!--启用Web访问的HDFS-->

<value>true</value>

</property>

</configuration>

注:

Namenode负责管理文件系统的命名空间和客户端对文件系统的访问操作。

Datanode负责管理存储的数据。

# vim /usr/local/hadoop/etc/hadoop/masters

添加内容:

master

# vim /usr/local/hadoop/etc/hadoop/slaves

添加内容:

Slave1

Slave2

部署SSH配置免验证开启Hadoop

# su hadoop

$ ssh-keygen

$ ssh-copy-id  -i  ~/.ssh/id_rsa.pub   [email protected]1

$ ssh-copy-id  -i  ~/.ssh/id_rsa.pub   [email protected]2

$ cat ~/.ssh/id_rsa.pub  >>  ~/.ssh/authorized_keys

通过SSH将JAVA,HADOOP配置文件同步到Slave服务器

# scp -r /usr/local/hadoop   slave1:/usr/local/

# scp -r /usr/local/java   slave1:/usr/local/

# scp -r /etc/profile   slave1:/etc/

# scp -r /usr/local/hadoop   slave2:/usr/local/

# scp -r /usr/local/java   slave2:/usr/local/

# scp -r /etc/profile   slave2:/etc/

Slave服务器上:

#source /etc/profile

#chown -R hadoop.hadoop /usr/local/hadoop

部署完后HDFS群集的操作:

Master服务器上操作:

格式化HDFS文件系统

#su hadoop

$hdfs namenode -format

看到下面的日志信息则成功格式化:

16/10/13 10:50:22 INFO common.Storage: Storage directory /usr/local/hadoop/name has been successfully formatted.

检查新生成的目录

$ ll    /usr/local/hadoop/name/

看到:

drwxr-xr-x. 2 root root 4096 10月 13 10:50 current

启动hadoop群集

$ /usr/local/hadoop/sbin/start-all.sh

验证HDFS节点各进程是否正常

Master上显示:

[[email protected] Desktop]$ jps

6114 NameNode

6438 ResourceManager

6579 Jps

6304 SecondaryNameNode

Slaves上显示:[[email protected] 桌面]# jps

5387 Jps

5303 NodeManager

5191 DataNode

验证访问

访问https://192.168.0.133:50070 可以看到视图系统

为DHFS群集添加节点:

关闭防火墙等基本操作

配置host解析

修改主机名

部署JAVA环境

设置环境变量

安装hadoop软件

Master服务器通过SSH同步配置文件到节点服务器

新节点启动并平衡节点已经存储的数据

$hadoop-daemon.sh start datanode

$hadoop-daemon.sh start tasktracker

$jps

$hadoop dfsadmin -report             查看群集信息

为DHFS群集删除节点:

$ vim /usr/local/hadoop/etc/hadoop/core-site.xml

添加内容:

<property>

<name>dfs.hosts.exclude</name>

<value>/usr/localhadoop/etc/hadoop/exclude</value>     <!--建立排除的节点-->

</property>

$vim /usr/local/hadoop/etc/hadoop/excludes

添加内容:

slave4                              要删除的节点名

$hdfs dfsadmin  -refreshnodes         刷新配置

$jps

$hadoop dfsadmin -report             查看群集信息

Hadoop基本命令的使用


命令


作用


Hadoop  fs  -help


帮助


Hadoop  fs  -usage


帮助


Hadoop  fs  -ls


显示


Hadoop  fs  -mkdir


创建


Hadoop  fs  -put


上传


Hadoop  fs  -report


查看节点状态信息


Hadoop  dfsadmin  -safemode  enter


开启安全模式


Hadoop  dfsadmin  -safemode  leave


开启安全模式


Hadoop  fs  -copyfromlocal  本地源文件 HDFS目标目录


将本地文件复制到HDFS上


Hadoop  fs  -copylocal  HDFS文件   本地


将HDFS中的文件复制到本地


Hadoop  fs  -chgrp  组名  DHFS文件或目录


修改属组


Hadoop  fs  -chmode  755  DHFS文件或目录


修改权限


Hadoop  fs  -chown  属主.属组  DHFS文件或目录


修改所有者


Hadoop  fs  -du  DHFS文件或目录


统计显示目录中文件大小


Hadoop  fs  -getmerge  -nl  DHFS文件  本地文件


合并文件

时间: 2025-01-07 08:55:01

54.HDFS分布式文件系统的相关文章

Hadoop系列之hdfs(分布式文件系统)安装配置

Hadoop系列之hdfs(分布式文件系统)安装配置环境介绍:     ip                        节点192.168.3.10      hdfs-master192.168.3.11      hdfs-slave1192.168.3.12      hdfs-slave21.在所有机器添加hosts192.168.3.10      hdfs-master192.168.3.11      hdfs-slave1192.168.3.12      hdfs-slav

HDFS分布式文件系统资源管理器开发总结

  HDFS,全称Hadoop分布式文件系统,作为Hadoop生态技术圈底层的关键技术之一,被设计成适合运行在通用硬件上的分布式文件系统.它和现有的分布式文件系统有很多共同点,但同时,它和其他的分布式文件系统的区别也是很明显的.HDFS是一个高度容错性的系统,适合部署在连接的机器上.HDFS能够提供高吞吐量的数据访问,非常适合大规模数据集上的应用. 笔者本人接触研究HDFS也有半年之久了,了解了HDFS Java API接口后,就一直设想着设计一个类似于Windows操作系统上的资源管理器一样的

Hadoop之HDFS分布式文件系统具有哪些优点?

随着互联网数据规模的不断增大,对文件存储系统提出了更高的要求,需要更大的容量.更好的性能以及更高安全性的文件存储系统,与传统分布式文件系统一样,HDFS分布式文件系统也是通过计算机网络与节点相连,但也有优于传统分布式文件系统的优点. 1. 支持超大文件 HDFS分布式文件系统具有很大的数据集,可以存储TB或PB级别的超大数据文件,能够提供比较高的数据传输带宽与数据访问吞吐量,相应的,HDFS开放了一些POSIX的必须接口,容许流式访问文件系统的数据. 2. 高容错性能 HDFS面向的是成百上千的

Spark环境搭建(一)-----------HDFS分布式文件系统搭建

spark 环境搭建 下载的压缩文件放在~/software/    解压安装在~/app/ 一:分布式文件系统搭建HDFS 1,下载Hadoop HDFS环境搭建    使用版本:hadoop-2.6.0-cdh5.7.0 下载:wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0.tar.gz 解压:tar http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cd

hadoop[4]-hdfs分布式文件系统的基本工作机制

一.Namenode 和 Datanode HDFS采用master/slave架构.一个HDFS集群是由一个Namenode和一定数目的Datanodes组成.Namenode是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问.集群中的Datanode一般是一个节点一个,负责管理它所在节点上的存储.HDFS暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据.从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组Datanode上.Name

Hadoop学习之路(2)Hdfs分布式文件系统

@[TOC] 1.Hadoop架构 Hadoop由三个模块组成:分布式存储HDFS.分布式计算MapReduce.资源调度引擎Yarn 2.HDFS体系架构 2.1NameNode    NameNode负责:文件元数据信息的操作以及处理客户端的请求   NameNode管理:HDFS文件系统的命名空间NameSpace.   NameNode维护:文件系统树(FileSystem)以及文件树中所有的文件和文件夹的元数据信息(matedata)维护文件到块的对应关系和块到节点的对应关系   Na

HDFS分布式文件系统

参考资料:http://os.51cto.com/art/201211/364374.htm 上边这是个结构概览吧.默认情况下,一个file被分成很多个block,每个block被分配到两个rack(机架)的共3个DataNode上,也就是有两个备份.在NameNode保存了每个block对应的DataNode标号,可以快速的定位.主要是读写操作以及同步操作,还有某个机架故障后的备份操作.这也是分布式文件系统的精髓吧.

HDFS分布式文件系统(The Hadoop Distributed File System)

The Hadoop Distributed File System (HDFS) is designed to store very large data sets reliably, and to stream those data sets at high bandwidth to user applications. In a large cluster, thousands of servers both host directly attached storage and execu

大数据技术原理与应用——分布式文件系统HDFS

分布式文件系统HDFS 分布式文件系统 分布式文件系统把文件分布存储到多个计算机节点上,成千上万的计算机节点构成计算机集群. 分布式文件系统在物理结构上是由计算机集群中的多个节点构成的,一类叫主节点(Master Node)或被称为名称节点(NameNode) 另一类叫从节点(Slave Node)或被称为数据节点(DataNode) HDFS简介 HDFS要实现以下目标: 兼容廉价的硬件设备 流数据读写 支持大数据集 简单的文件模式 强大的跨平台兼容性 HDFS的局限性 不适合低延迟数据访问(