当前位置:   article > 正文

Centos7安装部署Hadoop集群_centos7部署hadoop

centos7部署hadoop

简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算
优势
1)Hadoop是一个能够对大量数据进行分布式处理的软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理
2)Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理
3)Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。
4)Hadoop 还是可伸缩的,能够处理 PB 级数据
5)Hadoop 依赖于社区服务,因此它的成本比较低,任何人都可以使用
6)Hadoop是一个能够让用户轻松架构和使用的分布式计算平台,用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序
它主要有以下几个优点:
1.高可靠性:Hadoop按位存储和处理数据的能力值得人们信赖
2.高扩展性:Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中
3.高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快
4.高容错性:Hadoop能够自动保存数据的多个副本,也能够自动将失败的任务重新分配
5.低成本:hadoop是开源的,项目的软件成本因此会大大降低
6:Hadoop带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非常理想的,Hadoop 上的应用程序也可以使用其他语言编写,如 C++
Hadoop大数据处理的意义
Hadoop得以在大数据处理应用中广泛应用得益于其自身在数据提取、变形和加载(ETL)方面上的天然优势。Hadoop的分布式架构,将大数据处理引擎尽可能的靠近存储,对例如像ETL这样的批处理操作相对合适,因为类似这样操作的批处理结果可以直接走向存储。Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里

前期准备

准备三台Centos7虚拟机作为Hadoop集群的结点,配置IP地址和Hostname,关闭防火墙和selinux,同步时间,配置IP地址和hostname的映射

hostnameip
192.168.29.143node1
192.168.29.142node2
192.168.29.144node3

配置ssh免密登录

  1. [root@node1 ~]#ssh-keygen
  2. [root@node2 ~]#ssh-keygen
  3. [root@node3 ~]#ssh-keygen
  4. [root@node1 ~]#ssh-copy-id root@192.168.29.142
  5. [root@node1 ~]#ssh-copy-id root@192.168.29.143
  6. [root@node1 ~]#ssh-copy-id root@192.168.29.144
  7. [root@node2 ~]#ssh-copy-id root@192.168.29.142
  8. [root@node2 ~]#ssh-copy-id root@192.168.29.143
  9. [root@node2 ~]#ssh-copy-id root@192.168.29.144
  10. [root@node3 ~]#ssh-copy-id root@192.168.29.143
  11. [root@node3 ~]#ssh-copy-id root@192.168.29.144
  12. [root@node3 ~]#ssh-copy-id root@192.168.29.142
  13. #验证免密登录
  14. [root@node1 ~]#ssh root@ip
  15. [root@node2 ~]#ssh root@ip
  16. [root@node3 ~]#ssh root@ip

安装Java环境
从官网下载jdk压缩包并解压
三个结点均要安装java环境

  1. #添加环境变量
  2. [root@node1 ~]# vi /etc/profile
  3. JAVA_HOME=/usr/local/java
  4. CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  5. PATH=$PATH:$JAVA_HOME/bin
  6. export PATH JAVA_HOME CLASS_PATH
  7. #重新读取环境变量
  8. [root@node1 ~]# source /etc/profile
  9. #查看java环境配置情况
  10. [root@node1 ~]# java -version
  11. java version "1.8.0_241"
  12. Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
  13. Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

安装部署Hadoop

从Hadoop官网下载Hadoop二进制压缩包并解压

  1. #解压
  2. [root@node1 ~]# tar -zxvf hadoop-3.1.3.tar.gz -C /usr/local/hadoop
  3. #添加环境变量方便启动Hadoop集群
  4. [root@node1 ~]# vi /etc/profile
  5. PATH=$PATH:/usr/local/hadoop/bin:$JAVA_HOME/bin:/usr/local/hadoop/sbin
  6. export PATH JAVA_HOME CLASS_PATH
  7. #重新加载环境变量
  8. [root@node1 ~]# source /etc/profile

node1配置Hadoop
配置hadoop-env.sh

  1. #添加JAVA环境变量
  2. [root@node1 ~]# vi /usr/local/hadoop/etc/hadoop/hadoop-env.sh
  3. export JAVA_HOME=/usr/local/java

配置yarn-env.sh

  1. #添加JAVA环境变量
  2. [root@node1 ~]# vi /usr/local/hadoop/etc/hadoop/yarn-env.sh
  3. export JAVA_HOME=/usr/local/java

配置core-site.xml

  1. [root@node1 ~]# vi /usr/local/hadoop/etc/hadoop/core-site.xml
  2. <configuration>
  3. <property>
  4. <name>fs.defaultFS</name>
  5. <value>hdfs://192.168.29.143:9000</value>
  6. </property>
  7. <property>
  8. <name>hadoop.tmp.dir</name>
  9. #需要提前创建文件夹
  10. <value>/usr/local/hadoop/tmp</value>
  11. </property>
  12. </configuration>

配置hdfs-site.xml

  1. [root@node1 ~]# vi /usr/local/hadoop/etc/hadoop/hdfs-site.xml
  2. <configuration>
  3. <property>
  4. <name>dfs.replication</name>
  5. <value>2</value>
  6. </property>
  7. <property>
  8. <name>dfs.namenode.http-address</name>
  9. <value>192.168.29.143:50070</value>
  10. </property>
  11. <property>
  12. <name>dfs.namenode.secondary.http-address</name>
  13. #设置秘书结点
  14. <value>192.168.29.142:50090</value>
  15. </property>
  16. </configuration>

配置mapred-site.xml

  1. [root@node1 ~]# vi /usr/local/hadoop/etc/hadoop/mapred-site.xml
  2. <configuration>
  3. <property>
  4. <name>mapreduce.framework.name</name>
  5. <value>yarn</value>
  6. </property>
  7. <property>
  8. <name>mapreduce.map.memory.mb</name>
  9. <value>1500</value>
  10. </property>
  11. <property>
  12. <name>mapreduce.reduce.memory.mb</name>
  13. <value>3000</value>
  14. </property>
  15. <property>
  16. <name>mapreduce.map.java.opts</name>
  17. <value>-Xmx1200m</value>
  18. </property>
  19. <property>
  20. <name>mapreduce.reduce.java.opts</name>
  21. <value>-Xmx2600m</value>
  22. </property>
  23. <property>
  24. <name>mapreduce.framework.name</name>
  25. <value>yarn</value>
  26. </property>
  27. </configuration>

配置yarn-site.xml

  1. [root@node1 ~]# vi /usr/local/hadoop/etc/hadoop/yarn-site.xml
  2. <configuration>
  3. <property>
  4. <name>yarn.resourcemanager.hostname</name>
  5. <value>192.168.29.143</value>
  6. </property>
  7. <property>
  8. <name>yarn.nodemanager.aux-services</name>
  9. <value>mapreduce_shuffle</value>
  10. </property>
  11. <property>
  12. <name>yarn.application.classpath</name>
  13. <value>/usr/local/hadoop/etc/hadoop:/usr/local/hadoop/share/hadoop/common/lib/*:/usr/local/hadoop/share/hadoop/common/*:/usr/local/hadoop/share/hadoop/hdfs:/usr/local/hadoop/share/hadoop/hdfs/lib/*:/usr/local/hadoop/share/hadoop/hdfs/*:/usr/local/hadoop/share/hadoop/mapreduce/lib/*:/usr/local/hadoop/share/hadoop/mapreduce/*:/usr/local/hadoop/share/hadoop/yarn:/usr/local/hadoop/share/hadoop/yarn/lib/*:/usr/local/hadoop/share/hadoop/yarn/*</value>
  14. </property>
  15. <property>
  16. <name>yarn.nodemanager.resource.memory-mb</name>
  17. <value>22528</value>
  18. </property>
  19. <property>
  20. <name>yarn.scheduler.minimum-allocation-mb</name>
  21. <value>1500</value>
  22. </property>
  23. <property>
  24. <name>yarn.scheduler.maximum-allocation-mb</name>
  25. <value>16384</value>
  26. </property>
  27. </configuration>

配置workers
注:hadoop-2.x为slaves

  1. [root@node1 ~]# vi /usr/local/hadoop/etc/hadoop/workers
  2. 192.168.29.143
  3. 192.168.29.142
  4. 192.168.29.144

把配置好的Hadoop直接传到node2和node3上

  1. [root@node1 ~]# scp -r /usr/local/hadoop root@192.168.29.142:/usr/local/hadoop
  2. [root@node1 ~]# scp -r /usr/local/hadoop root@192.168.29.144:/usr/local/hadoop

启动Hadoop集群

  1. #在node1结点启动集群
  2. [root@node1 ~]# start-all.sh
  3. #查看集群启动状态
  4. #node1结点
  5. [root@node1 ~]# jps
  6. 3154 ResourceManager
  7. 3651 Jps
  8. 2586 NameNode
  9. 3293 NodeManager
  10. 2718 DataNode
  11. #node2结点
  12. [root@node2 ~]# jps
  13. 2203 NodeManager
  14. 2315 Jps
  15. 2013 DataNode
  16. 2109 SecondaryNameNode
  17. #node3结点
  18. [root@node3 ~]# jps
  19. 2126 NodeManager
  20. 2015 DataNode
  21. 2239 Jps
  22. #结点分布情况和配置文件一致,集群部署成功
  23. #关闭集群
  24. [root@node1 ~]# stop-all.sh

可视化Hadoop集群

访问node1:8088查看集群状态
在这里插入图片描述
访问node1:50070可查看集群的概况和hdfs的存储内容
Centos7安装部署Hadoop集群
点击Browse the file system可查看文件系统存储内容,也可上传文件到文件系统以及从文件系统下载文件
在这里插入图片描述

测试验证

Hadoop官方提供了计算π值的测试模板

  1. #执行hadoop程序
  2. [root@node1 ~]# hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar pi 20 50
  3. #通过命令行查看运行程序结果
  4. Job Finished in 172.314 seconds
  5. 2020-06-06 20:13:54,426 INFO sasl.SaslDataTransferClient: SASL encryption trust check: localHostTrusted = false, remoteHostTrusted = false
  6. Estimated value of Pi is 3.14800000000000000000

web页面查看执行过程
在这里插入图片描述
web页面查看执行结果
在这里插入图片描述
自此Hadoop集群环境部署成功

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/1002444
推荐阅读
相关标签
  

闽ICP备14008679号