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

高可用模式部署

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

相关推荐
BD_Marathon2 小时前
【Hadoop】hadoop3.3.1完全分布式配置
大数据·hadoop·分布式
Ryan ZX2 小时前
etcd 高可用分布式键值存储
数据库·分布式·etcd
大G的笔记本2 小时前
分布式答案解析
分布式
Ashlee_code3 小时前
BSS供应商:电信与金融领域的幕后支撑者
大数据·网络·金融·系统架构·跨境·金融机构·场外期权
Tadas-Gao3 小时前
MySQL存储架构解析:从数据无序到索引艺术的演进
数据库·分布式·mysql·微服务·云原生·架构
鸽鸽程序猿3 小时前
【RabbitMQ】工作模式实现
分布式·rabbitmq
Acrelhuang5 小时前
覆盖全场景需求:Acrel-1000 变电站综合自动化系统的技术亮点与应用
大数据·网络·人工智能·笔记·物联网
Luke Ewin6 小时前
内网私有化分布式集群部署语音识别接口
人工智能·分布式·语音识别·asr·funasr·通话语音质检·区分说话人
忙碌5446 小时前
智能应用开发指南:深度学习、大数据与微服务的融合之道
大数据·深度学习·微服务