Docker 上部署一主两从Hadoop集群 | [Centos8](下)

本文涉及的产品
云防火墙,500元 1000GB
简介: step4 关闭防火墙命令行关闭*** bug fix2.0 重启容器后,防火墙再次重启,影响集群正常工作step5 hadoop配置文件修改1. core-site.xml2. hdfs-site.xml3. mapred-site.xml:4. yarn-site.xml5. slaves6. 测试互联互通7. 传送到其他节点step6 格式化节点step7 开启集群查看状态开启集群查看运行状况Web UI查看集群状态***bug fix2.0 重启容器后,防火墙再次重启,影响集群正常工作

step4 关闭防火墙


命令行关闭


命令是systemctl stop iptables.service

在三个机器都需要进行操作:


DMaster315:

e0545f4702ce47a4a361370d9ccdb96e.png


DSlave01-315:

c83adaeb56044db3b97baa3cc4961e38.png


DSlave02-315:

39842bdd8d1c4e24bd48e85bf860af3d.png


*** bug fix2.0 重启容器后,防火墙再次重启,影响集群正常工作


step5 hadoop配置文件修改


在DMaster315操作:

cd /usr/local/hadoop/etc/hadoop


1. core-site.xml


vim core-site<Tab>

配置文件中的主机名端口等根据自己实际情况修改,切勿盲目CV

property标签对要放在configuration标签对中


<configuration><property>
              <name>fs.defaultFS</name>
              <value>hdfs://DMaster315:9000</value>
            </property>
        <property>
       <name>hadoop.tmp.dir</name>
                  <value>/home/data/hadoopdata</value>
        </property>
</configuration>


03a238fb42c2410eb891ae7ef36ec7fb.png


创建目录

mkdir -p /home/data

mkdir -p /home/data/hadoopdata


2. hdfs-site.xml


配置文件中的主机名端口等根据自己实际情况修改,切勿盲目CV

property标签对要放在configuration标签对中

<configuration>
    <property><!--配置存储namenode数据的目录-->
        <name>dfs.namenode.name.dir</name>
        <value>/home/data/hadoopdata/name</value>
    </property>
 <property><!--配置存储datanode数据的目录-->
        <name>dfs.datanode.data.dir</name>
        <value>/home/data/hadoopdata/data</value>
    </property>
  <property><!--配置副本数量-->
            <name>dfs.replication</name>
            <value>1</value>
        </property>  
  <property><!--配置第二名称节点,放到DMaster315 -->
      <name>dfs.secondary.http.address</name>
      <value>DMaster315:50090</value>
  </property>
</configuration>


54777948bf3a40e2bff71cd89b5430a7.png


3. mapred-site.xml:


配置文件中的主机名端口等根据自己实际情况修改,切勿盲目CV

property标签对要放在configuration标签对中

首先运行命令:

cp mapred-site.xml.template mapred-site.xml

然后vim mapred-site.xml


<configuration>
    <property>
      <name>mapreduce.Framework.name</name>
      <value>yarn</value>
  </property>
</configuration>


92797a47d69e4da78f2e68535877dc74.png


4. yarn-site.xml


配置文件中的主机名端口等根据自己实际情况修改,切勿盲目CV

property标签对要放在configuration标签对中

<configuration>
    <property> <!--配置yarn主节点-->
          <name>yarn.resourcemanager.hostname</name>
          <value>DMaster315</value>
    </property>
    <property><!--配置执行的计算框架-->
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
    </property>
</configuration>


71a91e5a07424c52b0c2cdcfd450a64a.png


5. slaves


配置文件中的主机名端口等根据自己实际情况修改,切勿盲目CV

property标签对要放在configuration标签对中

663d2c16067f41939baa9530dfb8c1c1.png


6. 测试互联互通


Dmaster ping dslave01-315 dslave02-315:

5de760dfd7d444c09532b9e036c89feb.png


Dslave01-315 ping dmaster315 dslave02-315:

388a0c0934b74094909bda63b2868c26.png


DSlave02-315 ping DMaster315 DSlave01-315:

7ef3abab7f5f4d668e23090256e9b1aa.png


可以互联互通,接下来传送文件


7. 传送到其他节点


切换到对应的目录:

cd /usr/local/hadoop/etc/hadoop

命令:

传送到DSlave01-315
scp slaves root@DSlave01-315:/usr/local/hadoop/etc/hadoop/
scp mapred-site.xml root@DSlave01-315:/usr/local/hadoop/etc/hadoop 
scp yarn-site.xml root@DSlave01-315:/usr/local/hadoop/etc/hadoop/  
scp hdfs-site.xml root@DSlave01-315:/usr/local/hadoop/etc/hadoop
scp core-site.xml root@DSlave01-315:/usr/local/hadoop/etc/hadoop
scp -r /home/data/hadoopdata root@DSlave01-315:/home/
传送到DSlave02-315
scp slaves root@DSlave02-315:/usr/local/hadoop/etc/hadoop/
scp mapred-site.xml root@DSlave02-315:/usr/local/hadoop/etc/hadoop 
scp yarn-site.xml root@DSlave02-315:/usr/local/hadoop/etc/hadoop/  
scp hdfs-site.xml root@DSlave02-315:/usr/local/hadoop/etc/hadoop
scp core-site.xml root@DSlave02-315:/usr/local/hadoop/etc/hadoop
scp -r /home/data/hadoopdata root@DSlave02-315:/home/


传送给DSlave01-315:

38e2b196664a47a7a6a9cd0110acf255.png


传送给DSlave02-315:

576bf9d9753540e4870c47d09f3b376c.png


step6 格式化节点


在三台机器分别执行:

hadoop namenode -format

DMaster315:

39fad04a766d4090841b7adda1ce5167.png


DMaster315格式化成功:

1de8b738ba6b432c9a3d27e2050e849d.png


DSlave01-315 格式化成功:

c2bb4ee8e939467ba551778440eb5944.png


DSlave02-315 格式化成功:

ac4a8157d4c5475eb9b0b033b5eae8ba.png


step7 开启集群查看状态


开启集群


经典命令(应该记住的):

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

现在切换到Dmaster315开启集群:

在中途输入了一个yes,应该是首次没有确认的原因


3ed6c665a305429fb6569974d59fc678.png


Jps信息查看:

DMaster315:

2f5d9d0d59574bc1946a87e81b951f58.png


DSlave01-315:

15c5728fb7c84760971d0ccf0a0dd9cb.png


DSlave02-315:

00edd610c3724a5abdaa36d0fa40517c.png


与预期设计一致~

3a8f005014974b018678811c5e140ebf.png


查看运行状况


hadoop dfsadmin -report

d4e10d96063544c0b0e576a9e8a7e90d.png


e8c5509407b14a60b726a37f97c20d4d.png


datanode三个节点全有,配置齐全~

到DSlave01-315查看:

95f73b93694b4d1e8a9b5b2d1b2eb877.png


datanode三个节点全有,配置齐全~

到DSlave02-315查看:

32705efb01d84130b5dde975b327a0a3.png


datanode三个节点全有,配置齐全~


Web UI查看集群状态


进入虚拟机主机名的50070端口:

master315:50070

c0239c60cd2b46c38b7de3d3c8e30a55.png


d2988138d27c46788ace674e4295d490.png


三个节点都有,配置齐全~


27a432aa44c24924b4c2591a923c617e.png


a21723c2a0954f6dbbdfe18b845ca18f.png


到这里,Docker上配置Hadoop集群配置完成,下面运行WordCount测试一下


***bug fix2.0 重启容器后,防火墙再次重启,影响集群正常工作


在博主重启完虚拟机之后(意味着容器也重启了),这个时候当博主再次启动集群之后,发现live datanode显示为1,当在两个DSlave01-315,DSlave02-315上进行操作的时候,发现从机无法与主机通过9000端口进行信息传输

错误如下:


3746de06f01a4dab92411229c8ea972e.png


发现Live datanodes为1不正常,到其他节点也出了问题:

4bbc204553eb4a94b85cf42f7af64a3b.png


76b27c0f0ade4f1cbb35e02acf8de09e.png


原因是因为容器重启导致的之前防火墙设置的失效,所以我们要进行修改~/.bashrc,使得一旦开启容器,便将防火墙关闭,解决方式如下:

DMaster315、DSlave01-315、DSlave02-315中的~/.bashrc添加:

vi ~/.bashrc


systemctl stop iptables.service


step8 运行wordCount


在DMaster315 运行:

hadoop fs -mkdir /input

hadoop fs -ls /

b70e923ced634b2e9c9cd3d2cb3de45a.png


cd /usr/local/hadoop

touch in.txt

vim in.txt

写点东西进去

1063dc774c604edd8b1c92a5a662f658.png


in.txt文件添加到hdfs /input/下:

hadoop fs -put in.txt /input/


4a72d559e8a54877abb964367218ed3b.png


提交:

注意切换到和博主同样的目录具体可见下图:

cd share/hadoop/mapreduce


12f95b47cc4f41f6b1fa9cd400aec8ba.png


提交命令:

hadoop jar hadoop-mapreduce-examples-2.7.6.jar \
wordcount  /input  /output 


提交之后:

0c7b8de69bde45c58b61e1e144177ed6.png


查看结果:

e3a29e5b3d4b43b7a2603d54d2195588.png


状态显示成功

命令查看:

hadoop fs -cat /output/part-r-00000

d6a95e3d740049919f9a1223aa2b6173.png


结果正确!

关闭集群

0aed0d9104ff4d9f91448ea1e05ce417.png


如果有的地方不对,请及时联系/评论/私信博主进行修改

更文不易,麻烦点个赞


分享下一篇文章:

阿里云镜像服务关联Github上传Docker容器制作的镜像 链接


文章知识点与官方知识档案匹配,可进一步学习相关知识

云原生入门技能树容器(docker)安装docker1151 人正在系统学习中

目录
相关文章
|
11天前
|
Prometheus 监控 Cloud Native
如何使用Prometheus监控Docker Swarm集群的资源使用情况?
还可以根据实际需求进行进一步的配置和优化,如设置告警规则,当资源使用超出阈值时及时发出警报。通过这些步骤,能够有效地使用 Prometheus 对 Docker Swarm 集群的资源进行监控和管理。
33 8
|
11天前
|
Prometheus 监控 Cloud Native
如何监控Docker Swarm集群的性能?
如何监控Docker Swarm集群的性能?
48 8
|
11天前
|
监控 Docker 容器
Docker Swarm集群的扩展与缩容策略,涵盖其意义、方法、步骤及注意事项
本文深入探讨了Docker Swarm集群的扩展与缩容策略,涵盖其意义、方法、步骤及注意事项,旨在帮助用户高效管理集群资源,适应业务变化,确保服务稳定性和资源优化。
32 6
|
28天前
|
API Docker 容器
【赵渝强老师】构建Docker Swarm集群
本文介绍了如何使用三台虚拟主机构建Docker Swarm集群。首先在master节点上初始化集群,然后通过特定命令将node1和node2作为worker节点加入集群。最后,在master节点上查看集群的节点信息,确认集群构建成功。文中还提供了相关图片和视频教程,帮助读者更好地理解和操作。
|
28天前
|
调度 Docker 容器
【赵渝强老师】Docker Swarm集群的体系架构
Docker Swarm自1.12.0版本起集成至Docker引擎,无需单独安装。它内置服务发现功能,支持跨多服务器或宿主机创建容器,形成集群提供服务。相比之下,Docker Compose仅限于单个宿主机。Docker Swarm采用主从架构,Swarm Manager负责管理和调度集群中的容器资源,用户通过其接口发送指令,Swarm Node根据指令创建容器运行应用。
|
JSON 数据格式 Docker
【Docker 基础教程】Centos7.5安装Docker并配置阿里云镜像
【Docker 基础教程】Centos7.5安装Docker并配置阿里云镜像
【Docker 基础教程】Centos7.5安装Docker并配置阿里云镜像
|
2月前
|
NoSQL Linux Redis
Docker学习二(Centos):Docker安装并运行redis(成功运行)
这篇文章介绍了在CentOS系统上使用Docker安装并运行Redis数据库的详细步骤,包括拉取Redis镜像、创建挂载目录、下载配置文件、修改配置以及使用Docker命令运行Redis容器,并检查运行状态和使用Navicat连接Redis。
306 3
|
4月前
|
Linux 测试技术 Docker
Docker CE for CentOS 安装教程
Docker CE for CentOS 安装教程
143 1
|
4月前
|
Docker 容器
Docker——Centos8.2安装Docker
Docker——Centos8.2安装Docker
93 0
|
5月前
|
Linux Docker 索引
docker(二):Centos安装docker
docker(二):Centos安装docker
208 0