项目案例:HDFS分布式文件系统


Hadoop的简介
Hadoopapache软件基金会的开源分布式计算平台hadoop集群包括两种角色MaterSlave。一个HDFS集群由一个运行于Master上的NameNode和若干个运行于Slave节点的DataNode组成。NameNode负责管理文件系统命名空间和客户端对文件系统的访问操作;DataNode管理存储的数据。文件以块形式在DataNode中存储,假如一个块大小设置为50MB,块的副本数为3(通过设置块的副本数来达到冗余效果,防止单个DataNode磁盘故障后数据丢失),一个40MB的文件将被存储在一个块中,然后将相同的3个块存储在3DataNode中实现冗余。大文件将被切成小块存储。

本实验的目的

搭建hadoopHDFS,通过DataNode节点的添加与删除实现HDFS空间动态增加与减少,以及HDFS文件系统的基本管理。

需要挂载hadoop光盘 hadoop.iso

blob.png 

将文件复制到脚本里的指定路径

blob.png 

脚本解释

blob.png 

安装完成,重启生效

blob.png 

验证

blob.png 

其他主机操作类似,需修改脚本的IP地址和主机名

slave-1配置

blob.png 

验证

blob.png 

slave-3配置

blob.png 

验证

blob.png 

slave-3配置

blob.png 

验证

blob.png 

master配置SSH密钥对要求master免密码登录各slave,用于开启相应服务。

Master无密码连接slave,先切换hadoop用户,用ssh-keygen按照默认配置直接按Enter键生成密钥对

通过ssh-copy-id将公钥复制至3slave主机中,复制过程需要输入slave主机的hadoop用户密码,作用是master远程启动slave

blob.png 

 blob.png

 

确定hadoop用户对文件的属主和属组权限

blob.png 

配置hadoop

blob.png 

复制文件,并给权限

blob.png 

如果是手动修改需要修改以下地方

blob.png 

blob.png 

blob.pngblob.png 

blob.png 

blob.png 

master通过SSH安全通道把刚才配置的6个文件复制给每个slave

blob.png 

slave需要对文件有755权限

blob.png 

blob.png 

初始化master

blob.png 

检查新生成的目录

 blob.png

启动hadoop群集(开机hadoop的冗余功能)

启停hadoopde的管理命令位于@HADOOP_HOME/sbin下,以start-*stop-*开头;单独启动HDFS分布式文件系统可使用start-dfs.sh,也可以使用以下命令启动整个hadoop集群。

blob.png 

通过jps查看各节点上的进程是否正常

blob.png 

验证访问

blob.png 

blob.png 

hadoop基本命令

使用hadoopfs”命令可以结合普通的文件管理命令实现很多操作,如查看、修改权限、统计、获取帮助、创建、删除、上传下载文件等,更多的用法可使用“hadoop fs -help”或“hadoop fs -usage”命令查看。

 

blob.png 

查看节点状态

blob.png 

HDFS高级命令

开机安全模式

blob.png 

将本地文件复制到HDFS

blob.png 

HDFS上的文件复制到本地

blob.png 

修改属组

blob.png 

修改权限

blob.png 

修改所有者

blob.png 

统计显示目录中文件大小

blob.png 

合并文件

blob.png 

blob.png 

HDFS集群添加节点

slave4节点安装jdkhadoop,配置环境变量

blob.png 

复制hosts文件到每台服务器

blob.png 

配置ssh无密码连接

blob.png 

master上修改hadoop后,复制到其他节点

blob.png 

新节点上启动并平衡节点以及存储的数据

blob.png 

查看集群信息

blob.png 

blob.png 

blob.png 

删除DataNode节点

blob.png 

添加要删除的节点

blob.png 

刷新配置

blob.png 

查看集群信息

blob.png 

blob.png 

blob.png

hadoop集群搭建完成!


总结:需要懂得原理加强自身不断完善自己!