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 人正在系统学习中

目录
相关文章
|
5天前
|
消息中间件 监控 RocketMQ
Docker部署RocketMQ5.2.0集群
本文详细介绍了如何使用Docker和Docker Compose部署RocketMQ 5.2.0集群。通过创建配置文件、启动集群和验证容器状态,您可以快速搭建起一个RocketMQ集群环境。希望本文能够帮助您更好地理解和应用RocketMQ,提高消息中间件的部署和管理效率。
149 91
|
6天前
|
存储 NoSQL Redis
Docker 部署 Redis
在使用 Docker 部署 Redis 时,为实现数据持久化,需正确挂载容器内的数据目录到宿主机。推荐命令如下: ``` docker run -d --name redis -v /mnt/data/redis:/data -p 6379:6379 redis ``` 该命令将宿主机的 `/mnt/data/redis` 目录挂载到容器的 `/data` 目录,确保 Redis 数据持久化。此路径更通用,适合大多数场景。避免使用不匹配的挂载路径,如 `/var/lib/redis` 或 `/mnt/data/redis` 到非默认目录,以防止数据无法正确持久化。
|
13天前
|
JavaScript 前端开发 Docker
如何通过pm2以cluster模式多进程部署next.js(包括docker下的部署)
通过这些步骤,可以确保您的Next.js应用在多核服务器上高效运行,并且在Docker环境中实现高效的容器化管理。
72 44
|
21天前
|
存储 关系型数据库 MySQL
美团面试:MySQL为什么 不用 Docker部署?
45岁老架构师尼恩在读者交流群中分享了关于“MySQL为什么不推荐使用Docker部署”的深入分析。通过系统化的梳理,尼恩帮助读者理解为何大型MySQL数据库通常不使用Docker部署,主要涉及性能、管理复杂度和稳定性等方面的考量。文章详细解释了有状态容器的特点、Docker的资源隔离问题以及磁盘IO性能损耗,并提供了小型MySQL使用Docker的最佳实践。此外,尼恩还介绍了Share Nothing架构的优势及其应用场景,强调了配置管理和数据持久化的挑战。最后,尼恩建议读者参考《尼恩Java面试宝典PDF》以提升技术能力,更好地应对面试中的难题。
|
24天前
|
SQL Java Maven
docker部署apollo
docker部署apollo步骤
|
1月前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
58 23
|
1月前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
49 22
|
1月前
|
监控 Java 应用服务中间件
tomcat相关概念与部署tomcat多实例-zabbix监控(docker部署)
通过上述步骤,您可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使您能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
66 25
|
1月前
|
SQL 关系型数据库 MySQL
docker-compose部署mysql8
使用docker-compose容器化部署mysql8
|
2月前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
96 8
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈