Hadoop完全分布式部署(超详细)

Hadoop完全分布式部署


目录

集群规划

准备3台服务器,具体规划如下:
一、非高可用模式

服务器node1 服务器node2 服务器node3
HDFS NameNode DataNode DataNode DataNode SecondaryNameNode
Yarn NodeManager Resourcemanager NodeManager NodeManager

二、高可用模式

服务器node1 服务器node2 服务器node3
HDFS NameNode DataNode NameNode DataNode DataNode
Yarn NodeManager Resourcemanager NodeManager Resourcemanager NodeManager

官网

点击:Hadoop官网下载地址

非高可用模式部署

  1. 去官网下载对应版本,然后上传解压(我用的是3.1.3的版本)

  2. 配置环境变量:vi /etc/profile.d/my_env.sh

    shell 复制代码
    #hadoop
    export HADOOP_HOME=/opt/install/hadoop-3.1.3
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
  3. 配置etc/hadoop/core-site.xml文件

    xml 复制代码
    <!-- 指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop102:8020</value>
    </property>
    <!-- 指定hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/install/hadoop-3.1.3/data</value>
    </property>
    <!-- 配置HDFS网页登录使用的静态用户为jack -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>jack</value>
    </property>
    <!-- 以下配置主要是用hive操作hdfs的时候,当使用beeline客户端就会设计到用户的一个问题,要使用代理操作才能正常使用 -->
    <!-- 配置该jack允许通过代理访问的主机节点 -->
    <property>
        <name>hadoop.proxyuser.jack.hosts</name>
        <value>*</value>
    </property>
    <!-- 配置该jack允许通过代理用户所属组 -->
    <property>
        <name>hadoop.proxyuser.jack.groups</name>
        <value>*</value>
      </property>
    <!-- 配置该jack允许通过代理的用户-->
    <property>
        <name>hadoop.proxyuser.jack.users</name>
        <value>*</value>
    </property>
  4. 配置etc/hadoop/hdfs-site.xml文件

    xml 复制代码
    <!-- nn web端访问地址-->
      <property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop102:9870</value>
    </property>
      <!-- 2nn web端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop104:9868</value>
    </property>
    <!-- 测试环境指定HDFS副本的数量 -->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
  5. 配置etc/hadoop/yarn-site.xml文件

    xml 复制代码
    <!-- 指定MR走shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop103</value>
    </property>
    <!-- 环境变量的继承 -->
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
    <!-- yarn容器允许分配的最大最小内存 -->
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>512</value>
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>4096</value>
    </property>
    <!-- yarn容器允许管理的物理内存大小 -->
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>4096</value>
    </property>
    <!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
    <!-- 开启日志聚集功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!-- 设置日志聚集服务器地址 -->
    <property>  
    	<name>yarn.log.server.url</name>  
    	<value>http://hadoop102:19888/jobhistory/logs</value>
    </property>
    <!-- 设置日志保留时间为7天 -->
    <property>
    	<name>yarn.log-aggregation.retain-seconds</name>
    	<value>604800</value>
    </property>
  6. 配置etc/hadoop/mapred-site.xml文件

    xml 复制代码
    <!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- 历史服务器端地址 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop102:10020</value>
    </property>
    <!-- 历史服务器web端地址 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>hadoop102:19888</value>
    </property>
  7. 修改hadoop-env.sh配置文件

    shell 复制代码
    # pids路径:如果不修改,会存储在hadoop默认的临时存储路径tmp里面,这个目录过段时间hadoop会自动删除,如果pids被删除了,hadoop启动和停止会报错
    export HADOOP_PID_DIR=/opt/install/hadoop-3.1.3/pids
    # namenode/datanode-memory:增大namenode内存是因为默认的内存很少
    export HDFS_NAMENODE_OPTS="-Dhadoop.security.logger=INFO,RFAS -Xmx4096m"
    export HDFS_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,RFAS -Xmx8192m"
  8. 修改yarn-env.sh配置文件

    shell 复制代码
    # 新版本要求yarn的pid
    export HADOOP_PID_DIR=/opt/install/hadoop-3.1.3/pids
  9. 修改mapred-env.sh配置文件

    shell 复制代码
    export HADOOP_PID_DIR=/opt/install/hadoop-3.1.3/pids
  10. 配置workers

    shell 复制代码
    # 删除之前的localhost
    hadoop102
    hadoop103
    hadoop104
  11. 将hadoop3.1.3分发到hadoop103和hadoop104

    shell 复制代码
    scp -r /opt/install/hadoop-3.1.3 hadoop103:/opt/install/
    scp -r /opt/install/hadoop-3.1.3 hadoop104:/opt/install/
  12. 分发环境变量,记得source一下

  13. 第一次启动需要格式化namenode:hdfs namenode -format

  14. 启动hdfs:start-dfs.sh

  15. 启动yarn:start-yarn.sh

  16. 开启历史服务器:mapred --daemon start historyserver

  17. web访问hdfs:hadoop102:9870

  18. web访问yarn:hadoop102:8088

  19. web访问历史服务:hadoop102:19888

高可用模式部署

正在更新中,请耐心等待...

相关推荐
2501_941623328 小时前
人工智能赋能智慧农业互联网应用:智能种植、农业数据分析与产量优化实践探索》
大数据·人工智能
YangYang9YangYan9 小时前
网络安全专业职业能力认证发展路径指南
大数据·人工智能·安全·web安全
小五传输10 小时前
常用的文件摆渡系统:让数据安全高效跨越网络界限
大数据·运维·安全
数据科学小丫12 小时前
数据分析与FineBI介绍
大数据·数据分析·finebi
ALex_zry12 小时前
Git大型仓库推送失败问题完整解决方案
大数据·git·elasticsearch
二进制coder14 小时前
Git Fork 开发全流程教程
大数据·git·elasticsearch
天硕国产存储技术站17 小时前
DualPLP 双重掉电保护赋能 天硕工业级SSD筑牢关键领域安全存储方案
大数据·人工智能·安全·固态硬盘
雷文成.思泉软件18 小时前
以ERP为核心、企微为门户,实现一体化集成
大数据·低代码·创业创新
SuperHeroWu719 小时前
【HarmonyOS 6】UIAbility跨设备连接详解(分布式软总线运用)
分布式·华为·harmonyos·鸿蒙·连接·分布式协同·跨设备链接
杜子不疼.19 小时前
【探索实战】从0到1打造分布式云原生平台:Kurator全栈实践指南
分布式·云原生