2021暑期学习第24天

前言

  • 时间:2021.8.12
  • 内容:
    • Linux总结
    • Hadoop:安装单机模式
    • Hadoop:伪分布式安装

1 Linux总结

  • 10号那篇也比较全,这里就稍微复习就好啦~

  • 改一个地方 不是ifconfig 是ipconfig
    在这里插入图片描述

2 概念

2-1 分布式和集群

  • 分布式:来了一个任务,分解成多个任务去做它。
  • 集群:来了一个任务,每个人都可以去做,每个人收到的任务都是一样的。

2-2 Hadoop

  • 四大特点
    • 数据体量巨大:PB->EB->ZB级
    • 速度要求快:数据输入输出的速度
    • 数据类型多样:文本、图像、视频、音频
    • 价值密度低、商业价值高
  • 主要有五个组件,有一个还在测试环境就不写上来了(面试会问他们之间的配合)
    • Common
    • DHFS:分布式文件系统。用于存储数据。
    • MapReduce:分布式计算框架。用于计算(Map计算、Reduce计算)。
    • YARN:资源管理框架。用于协调管理CPU、内存、硬盘,进行虚拟化管理,运行MapReduce。

2-3 YARN

  • 这是拿来干什么用的呢?

    • 形象化来说,就像老师的高级桌一张能坐2个人,学生的普通桌一张能坐1个人。那么在学区这个空间里,能坐的总人数是 2 * 高级桌数 + 1 * 普通桌 数。

    • 整个空间就是YARN,不同的CPU就是不同的房间,不同的centos就是不同的桌子,而容器数就是改空间能坐的总人数。
      在这里插入图片描述

  • 进一步理解:

    • 比方说这个块儿就是我们的电脑,这个块儿里面每一个Centos都是一个机器,每个机器上都装了个hadoop。要用的时候YARN会把每个电脑都虚拟成一个新的容器,每个电脑虚拟出来的容器数量由机器本身硬件的好坏决定,硬件抗的住就多虚拟出来一些容器。
    • 我们自己本机的电脑用virtualBox虚拟了一次,虚拟出很多虚拟机电脑,同桌也虚拟出很多虚拟电脑,这些是不一样配置的。而YARN相当于在此基础上的二次虚拟,能虚拟出一样配置的容器,虚拟出的数量是根据硬件配置来的。(虚出来的容器数量不一样,容器一样)可以把这个容器理解为一个操作系统。

2-4 DHFS架构(记的很乱…)

  • 流程

    • 先是拿到ResourceManager,按照资源情况分配给不同的节点,节点拿到之后按照容器去执行任务?????
  • NameNode和SecordaryNode关系(面试会问)

    • SecordaryNode是一个用于协助备份的东西,会同步NameNode里的数据内容。当NameNode坏了的时候,不是直接将SecondaryNode升级为NameNode,而是先把NameNode修好,再去把SecordaryNode里的数据拷贝回NameNode。
  • 进程

    • ResourceManager:是主节点,管理所有其他的NodeManagers
    • NodeManager:是从节点,管理本地的资源,把资源虚拟成容器,任务管理器,然后在任务管理器上运行????????
  • 容器

    • Docker:启动一个进程/线程,操作系统(说白了就是把操作系统虚拟化成一个进程)。
  • MapReduce(面试)

    • 分为两个阶段…(不知道为啥没记完…忘了要记啥…

3 操作

3-1 安装单机模式

  • 模式大概分如下几种:

    • 单机模式
      • 在一个Centos系统上进行安装
      • 能进行MapReduce计算
      • 不需要YARN
    • 伪分布式
      • 一个电脑模拟多个电脑
    • 完全分布式
      • 至少4台电脑
    • 其他
      • HDFS NameNode HA 5台电脑
      • HDFS NameNode联盟 7台电脑
      • YARN HA 5台
  • 安装步骤:

    • 下载,上传,解压,移动

      • 先决条件:JDK和java环境变量先搞好

        tar -zxvf xx.tar

      • 解压好hadoop-3.3.1.tar.gz文件后,进入haoop-3.3.1文件夹,再进入里面的share文件夹,会发现这里有两个文件夹(doc和hadoop),删除doc

      • 把hadoop-3.3.1这个文件夹移动到/usr/java/下

    • 测试

      • 最经典的计算:单词统计WordCount

        • 统计文本文件中的单词数量
        • select count(*) from users;
      • 关于数据

        • 结构化数据:数据库表中的数据,比如excel表。有描述信息。
        • 非结构化数据:文本文件。没有描述信息,以规则限定。
      • 测试过程

        • 在hadoop-3.3.1这个文件夹下新建一个任意名字t.a的文件,输入任意数量的单词,以空格隔开。

        • 执行指令去进行MapReduce计算,执行完后会在当前目录下生成out文件夹,注意位置为${HADOOP_HOME}/bin/hadoop [jar] [运行的jar文件位置] [jar运行程序的参数] [执行的源文件] [结果输出的目录]

          [hadoop@master-yh hadoop-3.3.1]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount ./t.a ./out
          
        • 查看out文件夹里的part-r-00000文件,可以看到单词的计数结果,仅对空格和换行作为分隔。

3-2 伪分布式操作

  • 官网: https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html

  • 先决条件:JDK安装、配置ip地址和主机名的映射、免密登录

  • 修改配置文件

    • 位置:${HADOOP_HOME}/etc/hadoop/
    • 注意以下所有操作都在hadoop-3.3.1这个文件夹目录下进行,不要在etc前面加/
    • common hdfs*2 MapReduce YARN 节点
  1. 配置Hadoop环境信息(暂时不需要,完全分布式时候就要了)
  • hadoop-env.sh
  1. 配置HDFS

    • etc/hadoop/core-site.xml

      <configuration>
          <property>
              <name>fs.defaultFS</name>
              <value>hdfs://localhost:9000</value>
          </property>
      </configuration>
      
    • etc/hadoop/hdfs-site.xml

      甚至可以让服务器放在不同的机架上。value是指的是把文件小块复制成几份备份副本。如果只有一个服务器,就没有必要加副本,1个就够。

      <configuration>
          <property>
              <name>dfs.replication</name>
              <value>1</value>
          </property>
      </configuration>
      
    • 测试

      1. 格式化NameNode

        bin/hdfs namenode -format
        
      2. 启动hdfs系统

        sbin/start-dfs.sh
        
      3. 输入jsp查看任务管理系统下跑了几个进程

        正常来说,是Jps、SecondaryNameNode、NameNode、DataNode四个进程。如果只有Jps说明前面有地方报错了,kll -9 端口号 去杀掉进程。

      4. 此时可在页面上看到网页(用自己的主机ip,端口写成9870就行)

        http://192.168.137.120:9870
        
    • 报错

      • 如果报权限问题,就去把配置文件改一下,hdfs://localhost:9000改成hdfs://master-yh:9000,也就是原来localhost的地方改成在虚拟机上创建该主机时命名的名字。然后再做第2步启动测试。

      • 发现jsp里仍然只有自己这个jsp程序在运行,接下来再用su改到root权限下之后,加个映射(用该虚拟机的ip和名字)。exit退出root权限之后再做第2步启动测试。

        su
        vi /etc/hosts
        192.168.137.120 master-yh
        
      • 发现还是不行,再加个免密登录就行了。(位置:主目录~)回到hadoop-3.3.1去启动测试下,可查看到4个进程。

        ssh-keygen -t rsa //生成密钥,回车之后,三次回车
        ssh-copy-id-i 主机名 //拷贝密钥到自己
        exit //登出
        
      • 如果jps正常,但网页无法访问,有可能是防火墙没关

        service firewalld status
        service firewalld stop
        
  2. 配置MapReduce

    • etc/hadoop/mapred-site.xml

      注意这里的$HADOOP_MAPRED_HOME要改成自己的路径哦,我的是/usr/java/hadoop-3.3.1

      <configuration>
          <property>
              <name>mapreduce.framework.name</name>
              <value>yarn</value>
          </property>
          <property>
              <name>mapreduce.application.classpath</name>
              <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
          </property>
      </configuration>
      
  3. 配置YARN

    • etc/hadoop/yarn-site.xml

      <configuration>
          <property>
              <name>yarn.nodemanager.aux-services</name>
              <value>mapreduce_shuffle</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_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
          </property>
      </configuration>
      
    • 测试:

      • 启动yarn会出现resourcemanager和nodemanagers

        sbin/start-yarn.sh
        
      • jps之后会出现6个(有3个是前面hdfs时候启动的)

        ResourceManager
        SecondaryNameNode
        NameNode
        DataNode
        NodeManager
        JPS
        
      • 此时可在页面上看到网页(用自己的主机ip,端口写成8088就行,前面测hdfs时候是9870)

        http://192.168.137.120:8088
        
  4. 配置数据节点(暂时什么都不用设置)

    worker

4 成功

  • (这里应该是打开了网页就好了,有默认的一个datanode结点,出现这么三个四个结点好像是完全分布式时候的截图)
  • 8088和9870两个端口的网页都能显示三个
  • master的能启动四个,其他的都是启动三个

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值