• Hadoop的概述与安装


    Hadoop技术 —— 脱自于Google的三篇论文(大数据软件一般都要求7*24小时不宕机)

    把大数据中遇到的两个核心问题(海量数据的存储问题和海量数据的计算问题)全部解决了

    一、Hadoop内部的三个核心组件

    1、HDFS:分布式文件存储系统

    分布式思想解决了海量数据的分布式存储问题

    三个核心组件组成

    • NameNode:主节点
      • 存储整个HDFS集群的元数据(目录结构)
      • 管理整个HDFS集群
    • DataNode:数据节点/从节点
      • 存储数据的,DataNode以Block块的形式进行文件存储
    • SecondaryNameNode:小秘书
      • 帮助NameNode合并日志数据的(元数据)

    2、YARN:分布式资源调度系统

    解决分布式计算程序的资源分配以及任务监控问题

    Mesos:分布式资源管理系统(YARN的替代品)

    两个核心组件组成

    • ResourceManager:主节点
      • 管理整个YARN集群的,同时负责整体的资源分配
    • NodeManager:从节点
      • 真正负责进行资源提供的

    3、MapReduce:分布式离线计算框架

    分布式思想解决了海量数据的分布式计算问题

    4、Hadoop Common(了解即可)

    二、Hadoop技术诞生的一个生态圈

    数据采集存储

    flume、Kafka、hbase、hdfs

    数据清洗预处理

    MapReduce、Spark

    数据统计分析

    Hive、Pig

    数据迁移

    sqoop

    数据可视化

    ercharts

    zookeeper

    三、主要围绕Apache的Hadoop发行版本来学习

    官网:https://hadoop.apache.org

    apache hadoop发行版本

    • hadoop1.x
    • hadoop2.x
    • hadoop3.x
      • hadoop3.1.4

    四、Hadoop的安装的四种模式

    hadoop软件中HDFS和YARN是一个系统,而且是一个分布式的系统,同时他们还是一种主从架构的软件。

    第一种:本地安装模式:只能使用MapReduce,HDFS、YARN均无法使用 —— 基本不用

    第二种:伪分布安装模式:hdfs和yarn的主从架构软件全部安装到同一个节点上

    第三种:完全分布式安装模式:hdfs和yarn的主从架构组件安装到不同的节点上

    第四种:HA高可用安装模式:hdfs和yarn的主从架构组件安装到不同节点上,同时还需要把他们的主节点多安装两三个,但是在同一时刻只能有一个主节点对外提供服务 —— 借助Zookeeper软件才能实现

    修改配置文件:hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-env.sh、mapred-site.xml、yarn-site.xml、yarn-env.sh、workers、log4j.properties、capacity-scheduler.xml、dfs.hosts、dfs.hosts.exclude

    五、Hadoop的伪分布安装流程

    1、需要在Linux上先安装JDK,Hadoop底层是基于Java开发的

    • 环境变量的配置主要有两个地方可以配置
    /etc/profile:系统环境变量
    ~/.bash_profile:用户环境变量
    环境变量配置完成必须重新加载配置文件
    source  环境变量文件路径
    
    • 1
    • 2
    • 3
    • 4

    2、配置当前主机的主机映射以及ssh免密登录

    3、安装本地版本的Hadoop

    • 上传 —— 使用xftp将Windows下载好的hadoop-3.1.4.tar.gz传输到/opt/software目录下
    • 解压 —— tar -zxvf hadoop-3.1.4.tar.gz -C /opt/app
    • 配置环境变量
      • vim /etc/profile
      • export HADOOP_HOME=/opt/app/hadoop-3.1.4
        export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
      • source /etc/profile

    4、安装伪分布式版本的Hadoop

    修改各种各样的hadoop配置文件即可

    • hadoop-env.sh 配置Java的路径
    vim hadoop-env.sh
    #第54行
    export JAVA_HOME=/opt/app/jdk1.8.0_371
    #第58行
    export HADOOP_HOME=/opt/app/hadoop-3.1.4
    #第68行
    export HADOOP_CONF_DIR=/opt/app/hadoop-3.1.4/etc/hadoop
    #最后一行
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    image-20230718210944383

    • core-site.xml 配置HDFS和YARN的一些共同的配置项
      • 配置HDFS的NameNode路径
      • 配置HDFS集群存储的文件路径
    vim core-site.xml
    
    <configuration>
            
            <property>
                    <name>fs.defaultFSname>
                    <value>hdfs://single:9000value>
            property>
            
            <property>
                    <name>hadoop.tmp.dirname>
                    <value>/opt/app/hadoop-3.1.4/metaDatavalue>
            property>
            
            <property>
                    <name>hadoop.proxyuser.root.hostsname>
                    <value>*value>
            property>
            <property>
                    <name>hadoop.proxyuser.root.groupsname>
                    <value>*value>
            property>
    
    configuration>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    image-20230822161902347

    • hdfs-site.xml 配置HDFS的相关组件
      • 配置NameNode的web访问路径、DN的web访问网站,SNN的web访问路径等等
    vim hdfs-site.xml
    <configuration>
            
            <property>
                    <name>dfs.replicationname>
                	
                    <value>1value>
            property>
        
           <property>
              <name>dfs.permissions.enabledname>
              <value>falsevalue>
          property>
            <property>
                    <name>dfs.namenode.http-addressname>
                    <value>0.0.0.0:9870value>
     
            property>
            <property>
                    <name>dfs.datanode.http-addressname>
                    <value>0.0.0.0:9864value>
     
            property>
            <property>
                    <name>dfs.secondary.http-addressname>
                    <value>0.0.0.0:9868value>
     
            property>
        
        	<property>
                    <name>dfs.namenode.name.dirname>
                    <value>/opt/app/hadoop-3.1.4/metaData/dfs/name1,/opt/app/hadoop-3.1.4/metaData/dfs/name2value>
            property>
    configuration>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    image-20230822192047054

    • mapred-env.sh 配置MR程序运行时的关联的软件(Java YARN)路径
    vim mapred-env.sh
    #最后一行
    export JAVA_HOME=/opt/app/jdk1.8.0_371
    
    • 1
    • 2
    • 3

    image-20230718212027604

    • mapred-site.xml 配置MR程序运行环境
      • 配置将MR程序在YARN上运行
    vim mapred-site.xml
    
      <property>
          <name>mapreduce.framework.namename>
          <value>yarnvalue>
      property>
    
      
      <property>
          <name>yarn.app.mapreduce.am.envname>
          <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value>
      property>
      
      <property>
          <name>mapreduce.map.envname>
          <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value>
      property>
      
      <property>
          <name>mapreduce.reduce.envname>
          <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value>
      property>
    <property>
          <name>mapreduce.map.memory.mbname>
           <value>250value>
    property>
    <property>
          <name>mapreduce.map.java.optsname>
           <value>-Xmx250Mvalue>
    property>
    <property>
          <name>mapreduce.reduce.memory.mbname>
           <value>300value>
    property>
    <property>
          <name>mapreduce.reduce.java.optsname>
           <value>-Xmx300Mvalue>
    property>
      <property>
          <name>mapreduce.jobhistory.addressname>
           <value>single:10020value>
    property>
    <property>
        <name>mapreduce.jobhistory.webapp.addressname>
        <value>single:19888value>
    property>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    image-20230718212347926

    image-20230822192150660

    • yarn-env.sh 配置YARN关联的组件路径
    vim  yarn-env.sh
    #最后一行
    export JAVA_HOME=/opt/app/jdk1.8.0_371
    
    • 1
    • 2
    • 3

    image-20230718212518831

    • yarn-site.xml 配置YARN的相关组件
      • 配置RM、NM的web访问路径等等
    vim yarn-site.xml
    
      <property>
            <name>yarn.nodemanager.aux-servicesname>
            <value>mapreduce_shufflevalue>
      property>
    
      
      <property>
            <name>yarn.resourcemanager.hostnamename>
          	
            <value>singlevalue>
      property>
      <property>
          <name>yarn.application.classpathname>
          
          <value>
          /opt/app/hadoop-3.1.4/etc/hadoop,
          /opt/app/hadoop-3.1.4/share/hadoop/common/*,
          /opt/app/hadoop-3.1.4/share/hadoop/common/lib/*,
          /opt/app/hadoop-3.1.4/share/hadoop/hdfs/*,
          /opt/app/hadoop-3.1.4/share/hadoop/hdfs/lib/*,
          /opt/app/hadoop-3.1.4/share/hadoop/mapreduce/*,
          /opt/app/hadoop-3.1.4/share/hadoop/mapreduce/lib/*,
          /opt/app/hadoop-3.1.4/share/hadoop/yarn/*,
          /opt/app/hadoop-3.1.4/share/hadoop/yarn/lib/*
          value>
      property>
    
    
    <property>
        <name>yarn.log-aggregation-enablename>
        <value>truevalue>
    property>
    
    <property>
            <name>yarn.log-aggregation.retain-secondsname>
            <value>604800value>
    property>
    
    <property>
           <name>yarn.log.server.urlname>
           <value>http://single:19888/jobhistory/logsvalue>
    property>
    
    <property>
            <name>yarn.nodemanager.vmem-check-enabledname>
            <value>falsevalue>
    property>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    image-20230718212909109

    image-20230822192349611

    • workers/slaves 配置HDFS和YARN的从节点的主机
      • 配置DN和NM在哪些节点上需要安装
    vim workers
    
    single
    
    • 1
    • 2
    • 3

    image-20230718213001560

    • log4j.properties —— 配置Hadoop运行过程中日志输出目录
    vim log4j.properties
    #第19行
    hadoop.log.dir=/opt/app/hadoop-3.1.4/logs 
    #指定Hadoop运行过程中日志输出目录
    
    • 1
    • 2
    • 3
    • 4

    image-20230719092759757

    六、格式化HDFS集群

    hdfs namenode -format

    七、启动HDFS和YARN

    • HDFS

      • start-dfs.sh

      报错

      image-20230718213604928

      解决方案:

      vim /etc/profile
      #在最后一行加入以下内容
      # HADOOP 3.X版本还需要增加如下配置
      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
      #然后使配置文件生效
      source /etc/profile
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10

      image-20230718213809936

      image-20230718214052308

      • stop-dfs.sh
      • 提供了一个web访问网站,可以监控整个HDFS集群的状态信息
        http://ip:9870 hadoop3.x
        ip:50070 hadoop2.x
    • yarn

      • start-yarn.sh

      image-20230718214130649

      • stop-yarn.sh
      • 提供了一个web网站,可以监控整个YARN集群的状态:
        http://ip:8088

    八、Hadoop的完全分布式安装

    1、克隆虚拟机

    三台虚拟机需要配置IP、主机名、主机IP映射、ssh免密登录、时间服务器的安装同步、yum数据仓库更换为国内镜像源

    image-20230719095947238

    image-20230719095813819

    image-20230719100610519

    image-20230719101920020

    时间服务器chrony的安装同步

    yum install -y chrony
    
    • 1

    image-20230719103934985

    先配置主服务器

    vim /etc/chrony.conf

    在第7行添加allow 192.168.31.0/24

    image-20230719104240688

    再配置两台从服务器

    vim /etc/chrony.conf

    就将3 - 6行的server删除后,添加一行server node1 iburst

    image-20230719104606877

    开启服务

    image-20230719104959143

    2、安装JDK

    此处省略,如需请查看之前博客

    3、安装Hadoop完全分布式

    • hdfs.site.xml
    <configuration>
          <property>
              <name>dfs.replicationname>
              <value>3value>
          property>
          
          <property>
              <name>dfs.namenode.secondary.http-addressname>
              <value>node3:9868value>
          property>
          
           <property>
              <name>dfs.permissions.enabledname>
              <value>falsevalue>      property>
          <property>
              <name>dfs.namenode.datanode.registration.ip-hostname-checkname>
              <value>truevalue>
          property>
    configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    image-20230719112153586

    • yarn.site.xml
    <configuration>
    
          <property>
              <name>yarn.nodemanager.aux-servicesname>
              <value>mapreduce_shufflevalue>
          property>
          
          <property>
              <name>yarn.resourcemanager.hostnamename>
              <value>node2value>
          property>
          <property>
              <name>yarn.application.classpathname>
              <value>
              /opt/app/hadoop-3.1.4/etc/hadoop,
              /opt/app/hadoop-3.1.4/share/hadoop/common/*,
              /opt/app/hadoop-3.1.4/share/hadoop/common/lib/*,
              /opt/app/hadoop-3.1.4/share/hadoop/hdfs/*,
              /opt/app/hadoop-3.1.4/share/hadoop/hdfs/lib/*,
              /opt/app/hadoop-3.1.4/share/hadoop/mapreduce/*,
              /opt/app/hadoop-3.1.4/share/hadoop/mapreduce/lib/*,
              /opt/app/hadoop-3.1.4/share/hadoop/yarn/*,
              /opt/app/hadoop-3.1.4/share/hadoop/yarn/lib/*
              value>
          property>
    configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    image-20230719112649613

    • mapred-site.xml
     
          <property>
              <name>mapreduce.framework.namename>
              <value>yarnvalue>
          property>
          <property>
              <name>yarn.app.mapreduce.am.envname>
              <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value>
          property>
          <property>
              <name>mapreduce.map.envname>
              <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value>
          property>
          <property>
              <name>mapreduce.reduce.envname>
              <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}value>
          property>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    image-20230719112903402

    共需配置九个相关文件

    image-20230719113122255

    然后将node1上的/opt/app发送到node2和node3节点上的/opt上

    scp -r /opt/app root@node2:/opt

    4、格式化HDFS

    namenode所在节点格式化

    hdfs namenode -format

    5、启动HDFS和YARN

    1、 HDFS是在namenode所在节点启动(node1)

    2、YARN是在RM所在节点启动(node2)

  • 相关阅读:
    FastJson不成想还有个版本2啊:序列化大字符串报错
    Redis数据结构之——ziplist
    Fitness diary Privacy Policy
    Jmeter的使用教程(安装)
    爬虫与云服务器云数据库
    旭日3SDB,安装原版ros
    吴恩达机器学习课程笔记3-4
    CF - D. Ehab and the Expected XOR Problem(前缀异或)
    【建议背诵】软考高项考试案例简答题汇总~(7)
    详解HashMap源码解析(下)
  • 原文地址:https://blog.csdn.net/weixin_57367513/article/details/132677894