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

高可用模式部署

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

相关推荐
nvd114 小时前
Flink 批处理驱动的湖仓 AI 财务研报流水线:从双流广播汇聚到 Agent 智能决策与原生 Iceberg 落盘全景实战
大数据·人工智能·flink
计算机编程指导师6 小时前
【计算机毕设推荐】基于Hadoop+Spark的公共交通运营数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·数据分析·spark·交通
QYR_117 小时前
机械制造用固体润滑涂层市场分析:2032年全球市场规模预计达8.78亿元,CAGR为6.2%
大数据·人工智能·物联网
数字化顾问8 小时前
(144页PPT)数字化转型汽车企业数智化战略规划(附下载方式)
大数据
智慧物业老杨9 小时前
数字底座,重构小区治理秩序
大数据
计算机编程指导师9 小时前
【计算机毕设选题推荐】基于Hadoop的宫颈癌变进程光谱数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·spark·毕业设计·宫颈癌变
Pniubi10 小时前
分布式锁分类讲解
分布式
guhunyihan10 小时前
无代码系统搭建平台,探索恐象 AI 带来的开发新范式
大数据·人工智能
计算机编程指导师10 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的化妆品销售大数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·化妆品
benchmark_cc11 小时前
前复权数据每天可能变化,历史数据库应该覆盖还是保留原始价格?
大数据·python·pandas·量化交易·股票数据·quantdash