美文网首页
Hadoop3.x单机安装教程

Hadoop3.x单机安装教程

作者: 文景大大 | 来源:发表于2023-03-09 13:52 被阅读0次

    为什么要搭建单机环境的Hadoop?

    • 以最小化的成本学习和测试Hadoop;
    • 搭建基于Hadoop的上层应用,比如单机Spark环境需要先拥有单机的Hadoop;

    如果需要搭建分布式集群环境的Hadoop环境,请参考另外一篇:Hadoop3.x集群安装教程 - 简书 (jianshu.com)

    一、准备工作

    首先从官网下载好Linux的JDK和Hadoop,Apache的软件可以从国内镜像下载,比较快。

    然后在阿里云上购买一台1C2G Linux CentOS7.5 X64系统的云服务器(172.23.24.28),然后在其上安装好JDK,假设存放和解压目录都在/root/soft目录下。

    #进入JDK所在目录
    cd /root/soft
    
    #解压
    tar -zxvf jdk-8u65-linux-x64.tar.gz
    
    #配置环境变量
    vim /etc/profile
    export JAVA_HOME=/root/soft/jdk1.8.0_241
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    source /etc/profile
    
    #验证
    [root@iZuf6gmsvearrd5uc3emkyZ soft]# java -version
    java version "1.8.0_241"
    Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
    Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
    

    二、Hadoop配置

    假设我们Hadoop的压缩包也是在/root/soft目录下,执行Hadoop的配置工作如下:

    #进入目录
    cd /root/soft
    
    #解压
    tar -zxvf hadoop-3.3.4.tar.gz
    
    #修改hadoop配置文件hadoop-env.sh
    cd /root/soft/hadoop-3.3.4/etc/hadoop
    vim hadoop-env.sh
    export HDFS_NAMENODE_USER=root
    export HDFS_DATANODE_USER=root
    export HDFS_SECONDARYNAMENODE_USER=root
    export YARN_RESOURCEMANAGER_USER=root
    export YARN_NODEMANAGER_USER=root 
    #改成你自己的JAVA_HOME地址
    export JAVA_HOME=/root/soft/jdk1.8.0_241
    
    #设置HADOOP环境变量
    vim /etc/profile
    export HADOOP_HOME=/root/soft/hadoop-3.3.4
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    source /etc/profile
    

    然后修改core-site.xml中的配置:

    <!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://172.23.24.28:8020</value>
    </property>
    
    <!-- 设置Hadoop本地保存数据路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/root/data/hadoop</value>
    </property>
    
    <!-- 设置HDFS web UI用户身份 -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>root</value>
    </property>
    
    <!-- 整合hive 用户代理设置 -->
    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>
    
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>
    
    <!-- 文件系统垃圾桶保存时间 -->
    <property>
        <name>fs.trash.interval</name>
        <value>1440</value>
    </property>
    

    然后修改hdfs-site.xml中的内容:

    <!-- 设置SecondNameNode进程运行机器位置信息 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>172.23.24.28:9868</value>
    </property>
    

    然后再修改mapred-site.xml配置文件:

    <!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
    <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>
    
    <!-- MR程序历史服务地址 -->
    <property>
      <name>mapreduce.jobhistory.address</name>
      <value>172.23.24.28:10020</value>
    </property>
     
    <!-- MR程序历史服务器web端地址 -->
    <property>
      <name>mapreduce.jobhistory.webapp.address</name>
      <value>172.23.24.28:19888</value>
    </property>
    
    <property>
      <name>yarn.app.mapreduce.am.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    
    <property>
      <name>mapreduce.map.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    
    <property>
      <name>mapreduce.reduce.env</name>
      <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    

    然后再修改yarn-site.xml

    <!-- 设置YARN集群主角色运行机器位置 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>172.23.24.28</value>
    </property>
    
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    
    <!-- 是否将对容器实施物理内存限制 -->
    <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>
    
    <!-- 设置yarn历史服务器地址 -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://172.23.24.28:19888/jobhistory/logs</value>
    </property>
    
    <!-- 历史日志保存的时间 7天 -->
    <property>
      <name>yarn.log-aggregation.retain-seconds</name>
      <value>604800</value>
    </property>
    

    然后再修改workers配置文件:

    172.23.24.28
    

    最后一步,我们需要开通到本机的ssh免密连接服务:

    # 生成公钥密钥,全部回车下一步即可
    ssh-keygen -t rsa
    ssh-keygen -t dsa
    
    ssh-copy-id 172.23.24.28
    # 输入登录密码即可
    # 然后可以ssh自己试试是否为免密登录了
    

    三、启动Hadoop

    首次启动Hadoop集群的时候,我们需要进行Namenode格式化:

    hdfs namenode -format
    

    然后就可以一键启动HDFS和YARN了:

    [root@node1 ~]# start-all.sh
    Starting namenodes on [node1]
    Last login: Fri Mar 10 13:33:24 CST 2023 from 172.23.24.28 on pts/2
    Starting datanodes
    Last login: Fri Mar 10 13:37:42 CST 2023 on pts/0
    Starting secondary namenodes [node1]
    Last login: Fri Mar 10 13:37:44 CST 2023 on pts/0
    Starting resourcemanager
    Last login: Fri Mar 10 13:37:53 CST 2023 on pts/0
    Starting nodemanagers
    Last login: Fri Mar 10 13:38:12 CST 2023 on pts/0
    

    我们发现HDFS集群和YARN集群的角色都启动起来了,然后我们试验一下示例的单词计数:

    cd /root/soft/hadoop-3.3.4/share/hadoop/mapreduce/
    hadoop jar hadoop-mapreduce-examples-3.3.4.jar pi 2 4
    

    最后执行成功出来计算结果就OK了,总体来说搭建过程和集群的搭建比较类似,不再赘述。

    相关文章

      网友评论

          本文标题:Hadoop3.x单机安装教程

          本文链接:https://www.haomeiwen.com/subject/taialdtx.html