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

高可用模式部署

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

相关推荐
NailiConveyor12 小时前
柔性物流方案如何适配工厂升级?自动化输送流水线定制要点
大数据·运维·自动化·制造·业界资讯
梦影_12 小时前
MySQL进阶教程(五)—— SQL调优(下)
android·大数据·数据库·后端·sql·mysql·database
没落之王13 小时前
三易五行看宋朝的三界确立
大数据·人工智能·算法
samLi062015 小时前
【数据集】水星逆行及相关日期窗口数据(1973-2025年)
大数据
updayday85415 小时前
客户附件不该发往旧邮箱,如何在发送前拦截 - Ping64 邮件安全管控
大数据·网络·数据库·安全·智能路由器
注塑机数据采集联网15 小时前
数据采集网关入门:ZK-D1/D3从零开始构建你的数据运用
大数据·数据仓库·人工智能·物联网·数据库架构·注塑机网关
演艺大赏15 小时前
20000 个文件跑了 11500 秒:你压的是 YARN 调度器,不是 HDFS
大数据
wtblszn16 小时前
农村供水站远程监控智能管理方案
大数据
aixingkong92117 小时前
华为灵衢超节点参考架构白皮书深度解读
大数据·人工智能·华为