陈塘庄做网站公司,网页游戏设计培训学校,360优化大师安卓下载,自己的网站在哪里找HDFS 集群是建立在 Hadoop 集群之上的#xff0c;由于 HDFS 是 Hadoop 最主要的守护进程#xff0c;所以 HDFS 集群的配置过程是 Hadoop 集群配置过程的代表。
使用 Docker 可以更加方便地、高效地构建出一个集群环境。
每台计算机中的配置
Hadoop 如何配置集群、不同的计…HDFS 集群是建立在 Hadoop 集群之上的由于 HDFS 是 Hadoop 最主要的守护进程所以 HDFS 集群的配置过程是 Hadoop 集群配置过程的代表。
使用 Docker 可以更加方便地、高效地构建出一个集群环境。
每台计算机中的配置
Hadoop 如何配置集群、不同的计算机里又应该有怎样的配置这些问题是在学习中产生的。本章的配置中将会提供一个典型的示例但 Hadoop 复杂多样的配置项远超于此。
HDFS 命名节点对数据节点的远程控制是通过 SSH 来实现的因此关键的配置项应该在命名节点被配置非关键的节点配置要在各个数据节点配置。也就是说数据节点与命名节点的配置可以不同不同数据节点之间的配置也可以有所不同。
但是本章为了方便建立集群将使用相同的配置文件通过 Docker 镜像的形式同步到所有的集群节点特做解释。
具体步骤
总体思路是这样的我们先用一个包含 Hadoop 的镜像进行配置配置成集群中所有节点都可以共用的样子然后再以它为原型生成若干个容器构成一个集群。
配置原型
首先我们将使用之前准备的 hadoop_proto 镜像启动为容器
docker run -d --namehadoop_temp --privileged hadoop_proto /usr/sbin/init
进入 Hadoop 的配置文件目录
cd $HADOOP_HOME/etc/hadoop
现在对这里的文件的作用做简单的描述
文件作用workers记录所有的数据节点的主机名或 IP 地址core-site.xmlHadoop 核心配置hdfs-site.xmlHDFS 配置项mapred-site.xmlMapReduce 配置项yarn-site.xmlYARN 配置项
注YARN 的作用是为 MapReduce 提供资源管理服务此处暂时用不着。
我们现在设计这样一个简单的集群
1 个命名节点 nn2 个数据节点 dn1, dn2 首先编辑 workers 更改文件内容为
dn1
dn2
然后编辑 core-site.xml在 中添加以下配置项
!-- 配置 HDFS 主机地址与端口号 --
propertynamefs.defaultFS/namevaluehdfs://nn:9000/value
/property
!-- 配置 Hadoop 的临时文件目录 --
propertynamehadoop.tmp.dir/namevaluefile:///home/hadoop/tmp/value
/property
配置 hdfs-site.xml在 中添加以下配置项
!-- 每个数据块复制 2 份存储 --
propertynamedfs.replication/namevalue2/value
/property!-- 设置储存命名信息的目录 --
propertynamedfs.namenode.name.dir/namevaluefile:///home/hadoop/hdfs/name/value
/property
最后需要配置一下 SSH
ssh-keygen -t rsa -P -f ~/.ssh/id_rsa
ssh-copy-id -i ~/.ssh/id_rsa hadooplocalhost
到此为止集群的原型就配置完毕了可以退出容器并上传容器到新镜像 cluster_proto
docker stop hadoop_temp
docker commit hadoop_temp cluster_proto
此处如果有必要可以删除临时镜像 hadoop_temp 。
部署集群
接下来部署集群。
首先要为 Hadoop 集群建立专用网络 hnet
docker network create --subnet172.20.0.0/16 hnet
接下来创建集群容器
docker run -d --namenn --hostnamenn --networkhnet --ip172.20.1.0 --add-hostdn1:172.20.1.1 --add-hostdn2:172.20.1.2 --privileged cluster_proto /usr/sbin/init
docker run -d --namedn1 --hostnamedn1 --networkhnet --ip172.20.1.1 --add-hostnn:172.20.1.0 --add-hostdn2:172.20.1.2 --privileged cluster_proto /usr/sbin/init
docker run -d --namedn2 --hostnamedn2 --networkhnet --ip172.20.1.2 --add-hostnn:172.20.1.0 --add-hostdn1:172.20.1.1 --privileged cluster_proto /usr/sbin/init
进入命名节点
docker exec -it nn su hadoop
格式化 HDFS
hdfs namenode -format
如果没有出错那么下一步就可以启动 HDFS
start-dfs.sh
成功启动之后jps 命令应该能查到 NameNode 和 SecondaryNameNode 的存在。命名节点不存在 DataNode 进程因为这个进程在 dn1 和 dn2 中运行。
至此你可以像上一章中讲述伪集群模式时所说的方法检测 HDFS 的运行使用 HDFS 的方式也没有差别命名节点代表整个集群。
希望你也学会了更多编程源码模板请来二当家的素材网https://www.erdangjiade.com