资讯

展开

HDFS完全分布式集群搭建与配置及常见问题总结

作者:快盘下载 人气:

文章目录

前言一、分布式文件系统的优点二、HDFS的架构三、配置过程配置准备工作三台虚拟机都已经完成的步骤 开始配置启动集群 四、 常见问题及总结主观问题客观问题 总结


声明;本人使用的linux版本为centos7

前言

Hadoop Distributed File System;简称 HDFS;是一个分布式文件系统。它解决了海量数据存储的问题。
  (1)Namenode;nn;;存储文件的元数据;如文件名;文件目录结构;文件属性;生成时间、副本数、文件权限;;以及每个文件的块列表和块所在的DataNode等。
  (2)DataNode(dn);在本地文件系统存储文件块数据;以及块数据的校验和。
  (3)Secondary NameNode(2nn);每隔一段时间对NameNode元数据备份。

一、分布式文件系统的优点

分布式文件系统的产生是解决传统文件系统容量和吞吐量的限制的问题多用户多应用的并行读写的思想  
分布式文件系统是基于Master/Slave规式;通常一个分布式文件系统提供多个用户访问的服务器  
分布式文件系统管理的物理资源不一定直接连接在本地节点上;而是通过计算机网络与节点相连  
分布式文件系统一般都会基于操作系统的本地文件系统 
分布式文件系统一般都会提供备份和容错的功能   
扩充存储空间的成本低廉  
为分布式计算提供基础

二、HDFS的架构

HDFS完全分布式集群搭建与配置及常见问题总结
(1)Client;就是客户端。
<>文件切分。文件上传 HDFS 的时候;Client 将文件切分成 一个一个的Block;然后进行存储。
与 NameNode 交互;获取文件的位置信息。
与 DataNode 交互;读取或者写入数据。
Client 提供一些命令来管理 HDFS;比如启动或者关闭HDFS。
Client 可以通过一些命令来访问 HDFS。
(2)NameNode;就是 master;它是一个主管、管理者。
管理 HDFS 的名称空间
管理数据块;Block;映射信息
配置副本策略
处理客户端读写请求。
(3)DataNode;就是Slave。NameNode 下达命令;DataNode 执行实际的操作。
存储实际的数据块。
执行数据块的读/写操作。
(4)Secondary NameNode;并非 NameNode 的热备。当NameNode 挂掉的时候;它并不能马上替换 NameNode 并提供服务。
辅助 NameNode;分担其工作量。
定期合并 fsimage和fsedits;并推送给NameNode。
在紧急情况下;可辅助恢复 NameNode。

三、配置过程

 前提;Hadoop的安装版本为2.9.2

配置准备工作

三台虚拟机都已经完成的步骤

网络配置 ping www.baidu.com,检查每台虚拟机是否连通

主机名配置 cat /etc/hostname  检查每台虚拟机的主机名

HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结

主机域名映射 cat /etc/hosts 检查每台虚拟机的域名映射

HDFS完全分布式集群搭建与配置及常见问题总结

防火墙和selinux关闭 systemctl status firewalld 查看每台虚拟机防火墙状态

HDFS完全分布式集群搭建与配置及常见问题总结

ssh免密 ssh node02 ssh node01 … 检查每台虚拟机之间是否能进行免密登录

HDFS完全分布式集群搭建与配置及常见问题总结

安装JDK   Java  -version在每台虚拟机上检查Java的版本信息

HDFS完全分布式集群搭建与配置及常见问题总结

开始配置

创建安装目录

cd /opt
mkdir software
cd software/
mkdir hadoop
cd hadoop/
mkdir hdfs
cd hdfs/
mkdir data
mkdir name
mkdir tmp

HDFS完全分布式集群搭建与配置及常见问题总结
回到hadoop目录上传文件

–/opt/software/hadoop/hadoop-2.9.2
cd /opt/software/hadoop/
yum -y install lrzsz
rz #上传hadoop-2.9.2.tar.gz

HDFS完全分布式集群搭建与配置及常见问题总结
解压缩文件

tar -xvzf hadoop-2.9.2.tar.gz 

HDFS完全分布式集群搭建与配置及常见问题总结
配置HADOOP_HOME环境变量

vi /etc/profile
export HADOOP_HOME=/opt/software/hadoop/hadoop-2.9.2
export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
source /etc/profile

HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结
测试hadoop是否安装成功

hadoop version

HDFS完全分布式集群搭建与配置及常见问题总结
配置hadoop-env.sh
保持配置不变;原来的配置是修改里面的JAVAHOME值和HADOOPCONF_DIR的值

配置值;
export JAVA_HOME=/usr/local/java/jdk1.8
export HADOOP_CONF_DIR=/opt/software/hadoop/hadoop-2.9.2/etc/Hadoop

HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结
配置 yarn-env.sh
保持配置不变;新增JAVA_HOME值。
找到# export JAVAHOME=/home/y/libexec/jdk1.6.0/;在这行下添加JAVAHOME配置

export JAVA_HOME=/usr/local/java/jdk1.8

HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结
配置 core-site.xml
保持系统配置不变,把文件系统节点改成node01
•fs.defaultFS表示指定集群的文件系统类型是分布式文件系统;HDFS;;datanode心跳发送到namenode的地址
•hadoop.tmp.dir表示hadoop临时文件目录

<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/software/hadoop/hdfs/tmp</value>
</property>

HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结
配置 hdfs-site.xml
•dfs.replication原本配置是1;修改为3;三副本策略;表示副本数是3
•dfs.name.dir和dfs.data.dir配置不变
•dfs.datanode.max.locked.memory配置添加;开启缓存;配置值根据自己机器情况配置
•dfs.permissions配置添加;值配置false;不开启文件权限

  <property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/software/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/software/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.datanode.max.locked.memory</name>
<value>65536</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结
dfs.datanode.max.locked.memory为什么value是65536?
•不一定是65536;需要根据自己机器的实际情况确定
•使用ulimit -l参数查询;得到的数值是64;表示是64K大小
•value是字节数;Byte;;那么64*1024=65536 Byte

配置mapred-site.xml
需要把mapred-site.xml.template拷贝成mapred-site.xml文件进行配置
•在configuration标签中间添加以下配置
•mapreduce.Framework.name指定资源分配使用yarn

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结
配置 yarn-site.xml
在configuration标签中间添加以下配置
•yarn.resourcemanager.hostname:yarn相关资源服务器的主机名;使用node01
•yarn.nodemanager.aux-services和MapReduce计算相关
•yarn.nodemanager.vmem-check-enabled 关闭虚拟内存检查

<property>
<name>yarn.resourcemanager.hostname</name>
<value>node01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>

HDFS完全分布式集群搭建与配置及常见问题总结

配置 slaves
•配置3台机器主机名;此配置表示三台机器都作为DataNode
HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结
同步配置信息
•在node02上创建/opt/software目录

cd /opt/
mkdir software

HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结
•把node01上的配置同步到node02和node03
•使用scp命令进行同步

cd /opt/software/

scp -r hadoop/ node02:$PWD
scp -r hadoop/ node03:$PWD

HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结
配置环境变量
•之前只在node01上配置了hadoop环境变量;现在需要在node03和node02上添加hadoop环境变量
•在node02和node03机器的/etc/profile环境变量中添加hadoop配置

vi /etc/profile

export HADOOP_HOME=/opt/software/hadoop/hadoop-2.9.2
export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

HDFS完全分布式集群搭建与配置及常见问题总结
•添加配置以后记得加载配置文件;使得配置文件生效

source /etc/profile

启动集群

1.格式化
•在node01上格式化

hdfs namenode -format

HDFS完全分布式集群搭建与配置及常见问题总结
2.启动集群
•不需要3台机器都启动;只需要在node01上启动

start-dfs.sh 

HDFS完全分布式集群搭建与配置及常见问题总结
3.查看启动情况
服务器IP 192.168.xxx.110 192.168.xxx.120 192.168.xxx.130
主机名 node01 node02 node03
NameNode 是 否 否
SecondaryNameNode 是 否 否
DataNode 是 是 是

•node01上查看是否有3个进程启动

jps

HDFS完全分布式集群搭建与配置及常见问题总结
node02、node03上分别有1个进程
HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结
•访问web管理台
•url;http://192.168.67.110:50070/
HDFS完全分布式集群搭建与配置及常见问题总结
4. 上传文件测试
•创建目录

hdfs dfs -mkdir /test

HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结
•上传文件
上传文件到node01

cd /opt/
mkdir testData
cd testData/
mkdir hdfs
cd hdfs
rz #上传hadoop-2.9.2.tar.gz

把hadoop-2.9.2.tar.gz上传到分布式文件系统

hdfs dfs -put hadoop-2.9.2.tar.gz  /test

HDFS完全分布式集群搭建与配置及常见问题总结

文件上传成功以后检查datanode节点情况
HDFS完全分布式集群搭建与配置及常见问题总结

四、 常见问题及总结

主观问题

1.路径错误问题
HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结
路径应进入大路径;进入小路径里的hadoop导致出现错误;呈现空白。那么就需要退回到大路径下重新配置。正确路径

 /opt/software/hadoop/hadoop-2.9.2/etc/hadoop

HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结
2.格式化问题
有的时候我们HDFS出了问题;无法解决;可以通过重新格式化NameNode来搞定
停止集群的HDFS和Yarn进程;然后删除hadoop目录下的logs以及data文件
HDFS完全分布式集群搭建与配置及常见问题总结
删除命令;

rm -rf data以及rm -rf logs

HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结
102和103以及104上面都需要删除;删除完成后
我们再进行namenode的格式化;在102上面进行;;再进行HDFS和Yarn的启动;只要配置文件没有写错;一定可以成功启动;;
HDFS完全分布式集群搭建与配置及常见问题总结
3.slaves配置文件问题
在配置slaves文件中;在node1节点里修改;修改为“node1 node2 node3”
但是;要竖着写;并且行后不允许留空格;否则会出现识别错误。
4、将配置好的安装包分发到其他节点上
在分发之前;进到需要分发的文件的父目录进行分发。分发到的目录需要和现有目录完全一致。

scp -r hadoop-2.6.5 root;node2:;pwd;
scp -r hadoop-2.6.5 root;node3:;pwd;

5、启动HDFS

start-dfs.sh

如果格式化没报错但是运行的时候显示找不到文件;有可能配置文件没生效。那么需要重启虚拟机重新配之后再试试。

客观问题

1.网速问题
在进行配置同步问题时;使用scp命令进行同步;使用

scp -r hadoop/ node02:$PWD
scp -r hadoop/ node03:$PWD

命令时;可能由于网速问题;导致node01的配置需要较长时间同步到node02和node03中;建议更换更快的网。
2.过度复制问题
在进行HDFS分布式系统搭建过程中;有些同学可能在进行实操的过程中;由于配置较多;出现厌烦心理;故进行复制粘贴;从而导致复制错误;例如在进行配置HADOOP_HOME环境变量的时候;

export HADOOP_HOME=/opt/software/hadoop/hadoop-2.9.2
export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin;

配置完成后需要进行刷新;有些同学直接将source /etc/profile复制到环境变量中;导致出现
HDFS完全分布式集群搭建与配置及常见问题总结
问题;建议将node01删除;node02复制一遍;改为node01;进行重新配置。
3.书写错误问题
在启动集群时;查看启动情况时;在xshell中使用jps,可能出现错误;例如node01中只出现两个HDFS;可能是因为前文书写错误;建议进行重新检查。
HDFS完全分布式集群搭建与配置及常见问题总结
HDFS完全分布式集群搭建与配置及常见问题总结


总结

随着人类生活的智能化;社会信息技术的发展;全球数据量面临着无限制地扩展和增加。传统的已满足不了市场的需求;虽然有技术成熟、性能良好、可用性高等优点;但面对海量数据;缺点也越来越明显;如扩展性差、成本高等。
HDFS首创了下闲置硬件资源共享的经济模式;HDFS出了技术上的优势;本身的经济模式也是一大亮点;HDFS首创了将闲置的跟人硬盘存储空间共享的经济模式;这种模式很好的解决硬件冗余的问题;或许能够开启一个基于互联网条件下的个人计算机硬件资源共享的新行业。 HDFS将开启全民数字化的时代;HDFS提供了一个终生唯一对应并且可以随时随地上个人数据的平台;这是全面数字化时代的起点通过HDFS用户可以实现对自己全部数据的收集汇总、调用实现数字化的生活。 HDFS的是一个窗口;透过这个窗口我们看见了下一个互联网的雏形也看见了生活在下一代互联网世界中个人数据的重要性;让更多用户通过HDFS走向一个全新的互联网新纪元。

加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!