Hadoop 部署

1 准备工作

  • 准备好集群环境
    详情参考博客:集群初始配置。
  • 安装 Java
    1. 输入javac可查看安装提示信息。

    2. 使用命令sudo apt install openjdk-8-jdk-headless安装JDK

    3. 配置环境变量。使用sudo vim /etc/profile打开profile文件,输入以下内容,保存并退出。然后输入命令source /etc/profile使修改生效。

      shell 复制代码
      export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
      export JRE_HOME=$JAVA_HOME/jre
      export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
      export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

2 获取文件

  • 去官网https://dlcdn.apache.org/hadoop/下载文件。比如下载hadoop-3.4.0.tar.gz。

  • 上传至某一个 Linux 设备上。

  • 创建目录/opt/hadoop/,或根据自己情况选择其他目录。使用以下命令解压:

    shell 复制代码
    sudo tar -zxvf hadoop-3.4.0.tar.gz -C /opt/hadoop/

3 修改配置

需要修改/opt/hadoop/etc/hadoop中的hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 和 workers。

3.1 hadoop-env.sh

如果是按照上面方法安装的Java,可添加如下内容:

shell 复制代码
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

export HADOOP_HOME=/opt/hadoop/hadoop-3.4.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

export HADOOP_PID_DIR=$HADOOP_HOME/tmp
export HADOOP_LOG_DIR=$HADOOP_HOME/logs

然后将该文件复制到/etc/profile.d,并运行source /etc/profile使其生效。

3.1 core-site.xml

添加配置如下:

xml 复制代码
<configuration>
    <!-- 配置指定HDFS的通信地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:8020</value>
    </property>
    <!-- 配置Hadoop的临时文件存储目录。需要手动创建及修改权限。 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>${HADOOP_PID_DIR}</value>
    </property>
    
    <!-- 配置网页登录使用的用户 -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>cluster</value>
    </property>
</configuration>

3.2 hdfs-site.xml

添加配置如下:

xml 复制代码
<configuration>
    <!-- 配置NameNode的http访问地址和端口号 -->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>node1:9870</value>
    </property>
    <!-- 配置SecondaryNameNode的http访问地址和端口号 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>node2:9868</value>
    </property>
    
    <!----------- 下面的可选择配置 ----------->
    
    <!-- 配置HDFS副本数量 -->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    
    <!-- 配置NameNode存放的路径 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/hadoop/hadoop-3.4.0/tmp/dfs/name</value>
    </property>
    <!-- 配置DataNode存放的路径 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/hadoop/hadoop-3.4.0/tmp/dfs/data</value>
    </property>
</configuration>

3.3 mapred-site.xml

添加配置如下:

xml 复制代码
<configuration>
    <!-- 配置MapReduce运行时的框架 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    
    <!----------- 下面的可选择配置 ----------->
    
    <!-- 配置MapReduce的历史服务器安装的位置及端口号 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node3:10020</value>
    </property>
    <!-- 设置历史服务器的web页面地址和端口 -->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>node3:19888</value>
    </property>
    
    <!-- 配置存放日志文件的临时目录 -->
    <property>
        <name>mapreduce.jobhistory.intermediate-done-dir</name>
        <value>/opt/hadoop/hadoop-3.4.0/tmp/mr-history/tmp</value>
    </property>
    <!-- 配置存放运行日志文件的最终目录 -->
    <property>
        <name>mapreduce.jobhistory.done-dir</name>
        <value>/opt/hadoop/hadoop-3.4.0/tmp/mr-history/done</value>
    </property>
</configuration>

3.4 yarn-site.xml

添加配置如下:

xml 复制代码
<configuration>
    <!-- 配置ResourceManager运行位置 -->
    <property>
        <name>yarn.resourcemanager.hostsname</name>
        <value>node3</value>
    </property>
    <!-- 配置NodeManager启动时加载server的方式 -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <!----------- 下面的可选择配置 ----------->
    
    <!-- 配置使用mapreduce_shuffle中的类 -->
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <!-- 配置ResourceManager服务器的web地址和端口 -->
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>node3:8088</value>
    </property>
    <!-- 配置配置是否启用日志聚集功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    <!-- 配置聚集的日志在HDFS上保存的最长时间 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>106800</value>
    </property>
    <!-- 配置日志聚合目录 -->
    <property>
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/opt/hadoop/hadoop-3.4.0/logs</value>
    </property>
</configuration>

namenode、secondary namenode 和 ResourceManager 建议放在不一设备上。

3.5 workers

设置为你的设备地址。如

复制代码
node1
node2
node3

4 分发文件

经过上面的配置已经配置好文件,接下来需要把文件分发给其他设备。为了方便分发,我编写了脚本,以供使用。可参考:https://blog.csdn.net/White_Ink_/article/details/139909769。

5 启动集群

在 Hadoop 根目录运行以下命令。

  • 在启动 Hadoop 集群前,需要先格式化 NameNode,在 Master 主机下操作。在下一次格式化之前,需要停止所有的 NameNode和 DateNode,并删除所有机器的 tmp 和 logs 中的文件。

    shell 复制代码
    ./bin/hdfs namenode -format
  • 启动和停止HDFS:

    shell 复制代码
    ./sbin/start-dfs.sh        #启动HDFS
    ./sbin/stop-dfs.sh         #停止HDFS
  • 启动和停止YARN:

    shell 复制代码
    ./sbin/start-yarn.sh       #启动YARN
    ./sbin/stop-yarn.sh        #停止YARN
  • 全部启动和停止:

    shell 复制代码
    ./sbin/start-all.sh        #启动HDFS和YARN
    ./sbin/stop-all.sh         #停止HDFS和YARN
  • 启动和停止历史(日志)服务器:

    shell 复制代码
    ./sbin/mr-jobhistory-daemon.sh start historyserver     #启动historyserver
    ./sbin/mr-jobhistory-daemon.sh start historyserver     #停止historyserver

6 访问

  • 访问HDFS:node1:9870。
  • 访问YARN:node3:8088。
相关推荐
我不是阵雨23 分钟前
如何拿捏分布式四大模式?
分布式
计算机编程指导师31 分钟前
【计算机毕设选题】基于Hadoop的全球企业邮件安全合规数据可视化分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·毕业设计·课程设计·企业邮件
计算机编程指导师41 分钟前
【计算机毕设选题】基于Spark的零售交易者行为特征与生存状况数据分析系统源码 毕业设计 选题推荐 数据分析 机器学习
大数据·计算机·数据分析·spark·毕业设计·课程设计·零售
天远Date Lab1 小时前
零信任架构实战:基于天远风控经营异常预警构建自动化商业园区租户巡检网关
大数据·人工智能·架构·自动化
计算机编程指导师2 小时前
计算机毕设怎么做?基于Hadoop+Spark的商场商铺数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·商场商铺
Q26433650232 小时前
【有源码】基于Hadoop+Spark的低能见度易雾站点识别与可视化分析系统-面向气象保障的低能见度监测数据挖掘与风险画像系统
大数据·hadoop·数据挖掘·spark·毕业设计·课程设计·数据可视化
鱼宵2 小时前
LangChain4j RAG 流水线:手写问答全流程,给 AI 开卷考试
大数据·人工智能·机器学习·langchain4j
蝶依斓(湖南)全案整装2 小时前
整装企业环保健康交付内容写作方法:空气健康、环保材料与检测标准的非空泛表达
大数据·人工智能
计算机编程指导师2 小时前
【大数据毕设】基于Hadoop+Django乳腺癌数据分析与可视化系统选题推荐 源码 毕业设计 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·毕业设计·课程设计·乳腺癌
计算机编程指导师3 小时前
Python毕设怎么做?基于hadoop的商家优惠券营销效果数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·优惠券