HDFS完全分布式集群搭建与配置 |
您所在的位置:网站首页 › 大数据环境部署工作 › HDFS完全分布式集群搭建与配置 |
前言
首先hdfs 是Hadoop Distributed File System(简称HDFS),HDFS是hadoop兼容最好的标准级文件系统。Hdfs是一个分布式文件系统。Hadoop是分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架,是Hadoop中的一个核心部件,主要是对数据进行分布式储存和读取。HDFS 有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量来访问应用程序的数据,适合那些有着超大数据集的应用程序。HDFS 可以实现流的形式访问文件系统中的数据。 一 HDFS1.HDFS(Hadoop Distributed File System)是hadoop项目的核心子项目,是基于流数据模式访问和处理超大文件的需求而开发的。 1.1 HDFS的优点:处理百MB、设置数百TB大小的文件 流式的访问数据,响应"一次写入、 多次读写" 运行于廉价的商用集群上 1.2 HDFS的缺点:不适合低延迟数据访问 无法高效存储大量小文件 不支持多用户写入及任意修改文件 1.3 HDFS主要由三个组件构成:分别是NameNode、SecondaryNameNode和DataNode,其中NameNode和SecondaryNameNode运行在master节点上,DataNode运行在slave节点上。 1.3.1NameNodeNameNode管理HDFS文件系统的命名空间,它维护文件系统树及树中的所有文件和目录。同时NameNode也负责这些文件和目录的打开、关闭、移动和重命名等操作。而实际文件数据的操作是由DataNode负责。当Client端发起请求,该请求首先会到达NameNode,NameNode分析请求,然后告诉Client该去哪个DataNode上找什么位置的数据块。得到消息后的Client会直接和DataNode进行交互。 NameNode中元数据种类有: (1)文件名目录及它们的层级关系;(2)文件目录的所有者及其权限;(3)每个文件块的名称及文件有哪些块组成。 1.3.2 DataNodeDataNode运行在slave节点上,也称为工作节点。它负责存储数据块,也负责为Client端提供读写服务,同时还接收NameNode指令,进行创建、删除和复制等操作。DataNode还通过心跳机制定期向NameNode发送所存储文件块列表信息。并且DataNode还和其他DataNode节点通信,复制数据块已达到冗余的目的。 1.3.3 SecondaryNameNodeNameNode元数据信息存储在FsImage中,NameNode每次重启后会把FsImage读取到内存中,在运行过程中为了防止数据丢失,NameNode的操作会被不断的写入本地EditLog文件中。 二 hdfs完全分布式的搭建步骤以及解决方法 2.1 需要用到的软件及虚拟机虚拟软件VMware Xshell 7 虚拟机: 主机名:node01 ip地址192.168.67.110 主机名:node02 ip地址192.168.67.120 主机名:node03 ip地址192.168.67.130 2.2 集群搭建与配置前需要完成的步骤 2.2.1 网络配置ping www.baidu.com三个节点都要ping通 2.2.2 配置静态IP因为每次虚拟机重新启动,它原有的ip地址都有可能发生变化,因为我们要先固定集群中各个节点的ip防止以后无法解析对应的节点 cd /etc/sysconfig/network-scripts/ vi ifcfg-ens33 2.2.3 修改配置文件
(1)ssh-keygen -t rsa 三个回车 (2)ssh-copy-id node01(拷贝三台机器的公钥到第一台机器) (3)复制node01的认证到其他机器: scp /root/.ssh/authorized_keys node02:/root/.ssh scp /root/.ssh/authorized_keys node03:/root/.ssh(4)此时已经完成免密登录,使用ssh命令可以从任意一台机器访问其他机器 ssh node01 ssh node02 ssh node03 2.2.8 安装JDK java -version准备工作完成,现在开始搭建集群 2.3 开始hdfs完全分布式集群搭建与配置 2.3.1创建文件cd /opt/software/hadoop/hdfs mkdir software mkdir hadoop cd hadoop/ 创建文件hdfs mkdir hdfs cd hdfs/ 创建文件data name tmp 2.3.2 首先将hadoop-2.9.2文件上传到hadoop 目录并且解压上传文件 cd /opt/software/hadoop/ rz #上传hadoop-2.9.2.tar.gz
source /etc/profile 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添加以下配置export JAVA_HOME=/usr/local/java/jdk1.8 此配置需要把文件系统节点改成node01,添加以下 vi core-site.xml fs.defaultFS hdfs://node01:9000 hadoop.tmp.dir /opt/software/hadoop/hdfs/tmp第一个配置信息为节点备份数量 默认为3 dfs.replication 3 dfs.namenode.name.dir file:/opt/software/hadoop/hdfs/name dfs.datanode.data.dir file:/opt/software/hadoop/hdfs/data dfs.datanode.max.locked.memory 65536 dfs.permissions false需要把mapred-site.xml.template拷贝成mapred-site.xml文件进行配置 cp mapred-site.xml.template mapred-site.xml vi mapred-site.xml mapreduce.framework.name yarnvi yarn-site.xml yarn.resourcemanager.hostname node01 yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.vmem-check-enabledfalse
配置3台机器主机名,此配置表示三台机器都作为DataNode vi slaves node01 node02 node03 2.5 同步配置信息把node01上的配置同步到node02和node03 cd /opt/software/ scp -r hadoop/ ode02:$PWD scp -r hadoop/ node03:$PWD查看同步到node02 node03 的任意一个文件cat mapred-site.xml 就看到已经正常分发到了 2.5.1 配置环境变量node02和node03机器的/etc/profile环境变量中添加hadoop配置 export HADOOP_HOME=/opt/software/hadoop/hadoop-2.9.2 export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin添加配置以后记得加载配置文件,使得配置文件生效 source /etc/profile 2.5.2 在node01上格式化 hdfs namenode -format 2.5.3 启动集群 start-dfs.sh 2.6 执行完成后使用jps命令检查各个节点node01 (1)防火墙设置:为了防止发生一些奇奇怪怪的错误,请务必关闭所有节点的防火墙,他可能会导致浏览器无法获取集群信息和文件上传集群失败环境搭建,还有通过.start-dfs.sh命令启动集群失败的很大一个原因就是服务器防火墙未关闭的原因。 (2)hosts文件配置和主机名:因为这是完全分布式的集群,所以配置hosts文件至关重要,不然你的私钥配置和以后节点的格式化都会出错,他将会提示你无法解析主机名. (3)将配置好的HDFS拷贝到其他节点时注意路径问题 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |