Hadoop集群整体概述 :
    Hadoop集群包括两个集群: HDFS集群、 YARN集群
    两个集群逻辑上分离、通常物理上在一起
    两个集群都是标准的主从架构集群

    HDFS集群(分布式存储)
    主角色: NameNode
    从角色: DataNode
    主角色辅助角色:SecondaryNameNode

    YARN集群(资源管理、调度)
    主角色:ResourceManager
    从角色:NodeManager


    如何理解两个集群逻辑上分离?
    逻辑上分离
    两个集群互相之间没有依赖、互不影响
    物理上在一起
    某些角色进程往往部署在同一台物理服务器上
    MapReduce集群呢?
    MapReduce是计算框架、代码层面的组件 没有集群之说

    image.png

    集群安装
    hadoop安装包准备,jdk环境准备
    E:\文档\大数据\hadoop\02_Apache Hadoop、HDFS\2、课程资料 jdk环境和hadoop都在这

    1. 192.168.88.151 node1.itcast.cn node1
    2. 192.168.88.152 node2.itcast.cn node2
    3. 192.168.88.153 node3.itcast.cn node3
    4. #修改主机名:
    5. vim /etc/hosts
    6. 自己的主机命名:
    7. 172.31.10.23 node1
    8. 172.31.10.24 node2
    9. 172.31.10.25 node3
    10. # 集群时间同步
    11. ntpdate ntp5.aliyun.com
    12. # 防火墙关闭
    13. firewall-cmd --state #查看防火墙状态
    14. systemctl stop firewalld.service #停止firewalld服务
    15. systemctl disable firewalld.service #开机禁用firewalld服务
    16. # ssh免密登录(只需要配置node1至node1、node2、node3即可)
    17. #node1生成公钥私钥 (一路回车)
    18. ssh-keygen
    19. #node1配置免密登录到node1 node2 node3
    20. ssh-copy-id node1
    21. ssh-copy-id node2
    22. ssh-copy-id node3
    23. # 创建统一工作目录:
    24. mkdir -p /export/server
    25. mkdir -p /export/data
    26. mkdir -p /export/software
    27. #上传hadoop然后解压,注意先在node1节点解压,配置
    28. tar -zxvf /export/server/hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
    29. #修改配置 hadoop.env #文件最后添加 /export/server/hadoop-3.3.0/etc/hadoop/hadoop-env.sh
    30. export JAVA_HOME=/export/server/jdk1.8.0_241
    31. export HDFS_NAMENODE_USER=root
    32. export HDFS_DATANODE_USER=root
    33. export HDFS_SECONDARYNAMENODE_USER=root
    34. export YARN_RESOURCEMANAGER_USER=root
    35. export YARN_NODEMANAGER_USER=root
    36. #继续下面的配置
    1. <!-- 设置默认使用的文件系统 Hadoop支持file、 HDFS、 GFS、 ali|Amazon云等文件系统 -->
    2. <property>
    3. <name>fs.defaultFS</name>
    4. <value>hdfs://node1:8020</value>
    5. </property>
    6. <!-- 设置Hadoop本地保存数据路径 -->
    7. <property>
    8. <name>hadoop.tmp.dir</name>
    9. <value>/export/data/hadoop-3.3.0</value>
    10. </property>
    11. <!-- 设置HDFS web UI用户身份 -->
    12. <property>
    13. <name>hadoop.http.staticuser.user</name>
    14. <value>root</value>
    15. </property>
    1. <!-- 设置SNN进程运行机器位置信息 -->
    2. <property>
    3. <name>dfs.namenode.secondary.http-address</name>
    4. <value>node2:9868</value>
    5. </property>
    6. <property>
    7. <name>dfs.webhdfs.enabled</name>
    8. <value>true</value>
    9. </property>
    1. <!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
    2. <property>
    3. <name>mapreduce.framework.name</name>
    4. <value>yarn</value>
    5. </property>
    6. <!-- MR程序历史服务地址 -->
    7. <property>
    8. <name>mapreduce.jobhistory.address</name>
    9. <value>node1:10020</value>
    10. </property>
    11. <!-- MR程序历史服务器web端地址 -->
    12. <property>
    13. <name>mapreduce.jobhistory.webapp.address</name>
    14. <value>node1:19888</value>
    15. </property>
    16. <property>
    17. <name>yarn.app.mapreduce.am.env</name>
    18. <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    19. </property>
    20. <property>
    21. <name>mapreduce.map.env</name>
    22. <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    23. </property>
    24. <property>
    25. <name>mapreduce.reduce.env</name>
    26. <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    27. </property>
    1. <!-- 设置YARN集群主角色运行机器位置 -->
    2. <property>
    3. <name>yarn.resourcemanager.hostname</name>
    4. <value>node1</value>
    5. </property>
    6. <property>
    7. <name>yarn.nodemanager.aux-services</name>
    8. <value>mapreduce_shuffle</value>
    9. </property>
    10. <!-- 是否将对容器实施物理内存限制 虚机改成false,真实机器不需要-->
    11. <property>
    12. <name>yarn.nodemanager.pmem-check-enabled</name>
    13. <value>false</value>
    14. </property>
    15. <!-- 是否将对容器实施虚拟内存限制。 -->
    16. <property>
    17. <name>yarn.nodemanager.vmem-check-enabled</name>
    18. <value>false</value>
    19. </property>
    20. <!-- 开启日志聚集 -->
    21. <property>
    22. <name>yarn.log-aggregation-enable</name>
    23. <value>true</value>
    24. </property>
    25. <!-- 设置yarn历史服务器地址 -->
    26. <property>
    27. <name>yarn.log.server.url</name>
    28. <value>http://node1:19888/jobhistory/logs</value>
    29. </property>
    30. <!-- 历史日志保存的时间 7天 -->
    31. <property>
    32. <name>yarn.log-aggregation.retain-seconds</name>
    33. <value>604800</value>
    34. </property>
    1. vim workers
    2. node1
    3. node2
    4. node3
    5. 保存退出
    1. 第一台机器执行
    2. cd /export/server
    3. scp -r hadoop-3.3.0 root@node2:$PWD
    4. scp -r hadoop-3.3.0 root@node3:$PWD
    1. vim /etc/profile
    2. export HADOOP_HOME=/export/server/hadoop-3.3.0
    3. export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    4. source /etc/profile
    5. scp -r /etc/profile root@node2:/etc/profile
    6. scp -r /etc/profile root@node3:/etc/profile
    7. #别忘了scp给其他两台机器哦

    输入 hadoop 验证三台机器安装情况
    重点

    1. # 主节点执行,node1节点
    2. # 首次启动HDFS时,必须对其进行格式化操作
    3. # format本质上是初始化工作,进行HDFS清理和准备工作
    4. hdfs namenode -format

    查看是否初始化成功:
    image.png

    配置文件修改后需要同步到其他机器

    修改的配置文件介绍:
    官网文档: https://hadoop.apache.org/docs/r3.3.0/
    第一类1个: hadoop-env.sh
    第二类4个: xxxx-site.xml ,site表示的是用户定义的配置,会覆盖default中的默认配置。
    core-site.xml 核心模块配置
    hdfs-site.xml hdfs文件系统模块配置
    mapred-site.xml MapReduce模块配置
    yarn-site.xml yarn模块配置
    第三类1个: workers
    所有的配置文件目录: /export/server/hadoop-3.3.0/etc/hadoop


    Hadoop-3.3.0-Centos7-64bit_编译安装详解.md

    目录 说明
    bin Hadoop最基本的管理脚本和使用脚本的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop。
    etc Hadoop配置文件所在的目录
    include 对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序。
    lib 该目录包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用。
    libexec 各个服务对用的shell配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息。
    sbin Hadoop管理脚本所在的目录,主要包含HDFS和YARN中各类服务的启动/关闭脚本。
    share Hadoop各个模块编译后的jar包所在的目录, 官方自带示例。